首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Hotpot 年轻代GC 源代码分析

:将 接收的参数是 T * (其实也就是 oop *) , 是指向 oop 的指针 oop 本身就是 oopDesc * 的缩写,也就是 java 在 C++ 层面的对象的指针,所以修改 T* 指向的内存单元...本oop_iterate是使用 not_older_gens 的 closure 去处理oop的引用类型 3.第二个循环的 younger_refs_iterate  是用来遍历脏卡表的,上面用的是 older_gens...,FastScanClosure的处理逻辑如下:把 oop * 的值引用的 oopDesc 复制到 to 老年代(年龄够了的情况下) 注意 oop * 是 oopDesc 的指针的指针,也就是...关于 f :do_oop 会调用 do_oop_work 下面的逻辑是,如果对象没有被复制到别的地方,也就是 forwardee 指针是空,就尝试把对象复制到 to 区, promote 到 老年代...old->is_forwarded(), "shouldn't be scavenging this oop"); size_t s = old->size(); oop obj

47020
您找到你想要的搜索结果了吗?
是的
没有找到

Java 基础(三)——集合源码解析 Collection

什么是集合 我们再来回顾一下集合解决了什么问题:在编译期间不知道要多少个对象,但是数组必须在申明的时候明确指明数组长度,如果使用数组,申请太多的空间就会造成资源浪费,如果申请太少空间,就不够用,所以引出了一个概念叫...isEmpty();是否为空 boolean contains(Object var1);是否包含指定元素 Iterator iterator();获取迭代器 Object[] toArray();转换成数组 T[...] toArray(T[] var1);转换成数组,指定类型 boolean add(E var1);添加一个元素 boolean remove(Object var1);删除一个元素 boolean...从类结构上来看,List、Set 系列的集合都继承自 AbstractCollection。 AbstractCollection 没有太多的代码,主要实现了 Collection 接口方法。...我想这就是面向对象编程 OOP 的魅力所在吧。 预告 接下来我会根据 List、Set、Queue 三个 Collection 接口的继承接口来学习 Collection 集合的各种实现。

26350

13谈谈接口和抽象类有什么区别?

idea的小伙伴不要到处找文章,如果遇到问题可以私信我,作者有时间可以帮大家伙解决问题,毕竟我也是从新手一步步升级打怪抗过来的,经验还是有的,请认准b站灬沙师弟,另外如果作者的步骤有问题还请及时指出,我及时修正...Java标准类库中,定义了非常多的接口,比如java.util.List。抽象类是不能实例化的类,用abstract关键字修饰class,其目的主要是代码重用。...比如,我们熟知的java.util.Collection,它是collection体系的root interface,在Java 8中添加了一系列default method,主要是增加Lambda、Stream...OOP原则实践中的取舍值得注意的是,现代语言的发展,很多时候并不是完全遵守前面的原则的,比如,Java 10中引入了本地方法类型推断和var类型。...OOP原则在面试题目中的分析我在以往面试中发现,即使是有多年编程经验的工程师,也还没有真正掌握面向对象设计的基本的原则,如开关原则(Open-Close)。

25820

C++核心准则编译边学-F.22 使用T*onwer指明唯一对象

F.22: Use T* or owner to designate a single object(使用T*owner指明唯一对象) Reason(原因) Readability...译者注 译者注:owner是gsl(准则支持库)提供的一个功能,从编译的角度来看和T*的含义一致,但是附加了所有权语义,可以帮助程序员理解代码和工具检查。...that a T* obtained from a smart pointer to T (e.g., unique_ptr) points to a single element....参考:假定T*是从指向T的智能指针(例如unique_prt)获取,指向单一对象的指针。 See also: Support library 参考:支持库。...See also: Do not pass an array as a single pointer 参考:不要使用单一指针传递数组 Enforcement(实施建议) (Simple) ((Bounds

43120

浅谈 Css 规范

元素可以使用小写字母命名,例如 .header、.main、.footer等。 修饰符(modifier)是针对块元素的特定状态行为进行配置的方法。...使用小写字母命名元素和修饰符。 修饰符必须紧跟着元素块。 修饰符可以使用中划线(_)破折号(-)进行命名。...OOCSS 基本概念 OOCSS(Object-Oriented CSS)即面向对象的 CSS,它借鉴了 OOP(面向对象编程,OOP 已在 JavaScript 和 后端语言中得到广泛使用,不止是 JS...一个项目的新手可以重用他们的前辈已经抽象出来的东西,而不是堆积在 CSS 上。 维护性: 添加重新排列 HTML 标记不再需要您重新考虑整个 CSS 流程。这对于正在进行的大型项目尤其有用。...缺点: 学习曲线: 对于新手来说,可能需要一定时间来适应SMACSS的规范和约定,学习曲线较陡。 增加复杂性: 有时候遵循SMACSS的规范可能会增加代码的复杂性,特别是在项目较小简单的情况下。

6510

Scala学习笔记

List[T]、Set[T]、Map[T])             -1:都是泛型                 类型而言,具体业务具体对待(看存储的数据)             -2:分为可变和不可变...._                 不可变的集合:                     scala.collection.immutable._                 默认使用的集合类型...,是不可变得,但是可以在程序中导入包即可使用         1)List             scala> val lst = List(1,2,3,5)             lst:...是数字集合的时候,不能使用fold,使用foldLeft或者foldRight             scala> list.fold("Hello")(_+_)             <console...        使用泛型类,通常需要对类中某些成员,比如某些field或者method的参数变量,进行统一的类型限制,这样可以保证程序更好健壮性和稳定性         如果不适用泛型进行统一的类型限制

2.6K40

5分钟搭建一个粗粒度「视频去重」系统

我们用到了以下工具: Towhee : 用于构建模型推理流水线的框架,对于新手非常友好。 Milvus : 用于存储向量并创建索引的数据库,简单好上手。...Pandas:一个基于 Python 的快速、灵活且易于使用的开源数据分析和操作工具。...我们从中选取的视频描述了 20 个事件,每个事件包含大约 5 个内容相同相似的视频,总共约占 1.3G。...dsp_res_list[0] query for t-mac_13_points_in_35_seconds 我们接着再看第二个视频的检测结果:第二个视频选取自奥巴马的一场演讲视频。...dsp_res_list[2] query for troy_achilles_and_hector 从上面的结果可以发现,我们的「视频去重」系统都能准确地查找出相似重复的视频!

93220

Java面试集锦

集合 Collection List: List: 线程不安全                 特点:以线性方式存储,可以存放重复对象 , 有序【存入与取出顺序一致】 ArrayList:长度可变的数组...虽然使用OOP可以通过组合或者继承的方式来达到代码的重用,但如果要实现某个功能(如日志记录),同样的代码仍然会分散到各个方法中。...AOP采取横向抽取机制,将分散在各个方法中的重复代码提取出来,然后在程序编译运行时,再将这些提取出来的代码应用到需要执行的地方。...这种采用横向抽取机制的方式,采用传统的OOP思想显然是无法办到的,因为OOP只能实现父子关系的纵向的重用。虽然AOP是一种新的编程思想,但却不是OOP的替代品,它只是OOP的延伸和补充。...Jsp视图解析器默认使用jstl(标准标签库)。 SpringMvc的控制器是不是单例模式,如果是,有什么问题,怎么解决?

78020
领券