关于java:密集知识点

7次阅读

共计 1915 个字符,预计需要花费 5 分钟才能阅读完成。

重载:一个办法多种签名。重写:子类从新实现父类办法。多态:调用的是子类还是父类中的办法只有运行时能力判断。Stringbuffer 线程平安,stringbuilder 不平安。代理模式:代理对象代替实在对象,不批改原对象提供额定性能。动态代理,动静代理,jdk 动静代理,cglib 动静代理。IO:用户空间、内核空间。Bio:同步阻塞,在线等,read,return。NIO: 同步非阻塞:重复询问。Io 多路复用:select,筹备好了告诉我,ready,read,return。AIO:异步:回调。Arraylist:线程不平安,底层是数组,尾部有空余空间,可 randomAcess,尾部增删 O(1),两头增删 O(n),JDK7 new 无参 arrayList 时间接创立 10 长度 Object[]数组 elementData,单例饿汉式,类加载时就初始化,jdk8 懒汉式,第一次调用时才初始化。插入扩容过程:1 对插入地位合法性检查,2. 判断残余空间足够大,3 给街坊挪地位,4 插入,size 减少。如空间不够,位运算扩容到 max(10,1.5 倍 n)。hashMap:非线程平安,初始容量 16(定位筒快),负载因子 0.75,拉链法(tree)解决 hash 抵触,扩容:每次扩容成 2 倍,1 计算新容量和新阈值,创立新数组,节点映射到新数组里,如果有树要拆。内存治理:堆,线程共享,new 进去的对象和数组,gc 区域。虚拟机(本地办法)栈:线程公有,局部变量表(根本数据类型,对象援用地址)。程序计数器:循环。办法区:线程共享,已加载的类信息(构造函数、字段办法),常量,动态变量,运行时常量池(1.7 挪到堆里)。IOC:让 spring 框架来创建对象,简化开发,不须要搞清底层类构造函数。AOP: 基于动静代理。gc:如何判断对象是否死亡,援用计数法,可达性剖析算法,Gcroot,虚拟机栈中援用的对象,本地办法栈中援用的对象,办法区中类动态属性援用的对象,办法区中常量援用的对象,所有被同步锁持有的对象?标记 - 革除算法就,标出来的留着。剩下的回收。效率不高,会导致内存空间不间断。标记 - 复制算法,一半一半的应用内存空间,把右边存活的都挪到左边,而后把右边清空。标记 - 整顿算法,把留下的挨个排好,剩下的内存区域清空。针对老年代。分代收集算法,分成新生代老生代抉择不同算法。步骤:新生代分为 eden 区,s0(from),s1(to)区。分配比例是 8:1:1,可通过参数动静调整。对象首先在 eden 区调配(如果太大就间接在老年代调配)。当新生代空间不够时,发动 minorGC。在一次新生代垃圾回收后,如果对象还存活,年龄 + 1 并进入 survivor 区,当年龄达到阈值(有的默认 15,为什么是 15,因为记录年龄的字段只有 4 位,CMS 默认 6)会进入老生代。通过一次 minorGC 后,eden 区和 from 区曾经被清空,to 区可能有对象存活,而后替换 from 和 to。等 to 区被填满,所有对象挪动到老生代中。动静年龄计算:hotspot 遍历所有对象,依照年龄大小对其所占用的大小进行累计,累计到 survivor 区的一半时,取这个年龄 MaxTenuringThreshold 中更小的值作为新的降职年龄。fullGC:当统计数据说 youngGC 之前降职的均匀大小比目前 oldGen 残余空间大,则会触发 FullGC,收集整个 java 堆和办法区。收集器:serial,仅应用一个线程去收集。收集的时候暂停其余所有工作线程。新生代标记复制,老年代标记整顿。没有线程交互的开销,简略高效。Parnew,多线程版本的 serial。收集的时候暂停其余所有工作线程。新生代标记复制,老年代标记整顿。parallel scanvage,和 parnew 简直一样
关注吞吐量:cpu 中用于运行用户代码工夫与总耗费工夫的比值。serial old,parallel old,cms,concurrent mark sweep 谋求最短进展工夫,根本实现垃圾收集线程和用户线程同时工作。
标记 - 革除
初始标记:极短。暂停所有线程,标记可达对象对象。
并发标记:长。开启用户线程,记录可达对象和用户线程这段时间产生的援用更新。
从新标记:短。暂停所有线程。解决并发标记期间的援用更新。
并发革除:开启用户线程,打扫未标记的区域。?并发革除阶段产生的援用更新怎么办
g1 收集器
针对多核大内存机器,进展低吞吐高。
充分利用多核,和用户线程并行。
分代
整体看标记整顿,局部看标记复制。
进展工夫可预测
保护优先列表,依据收集工夫,优先选择回收价值最大的 region 回收。名字 garbage first 的由来。
zgc 收集器
标记 - 复制算法,进展工夫更少

正文完
 0