首页
瞬间
关于
buukle
布壳儿
累计撰写
109
篇文章
累计创建
17
个标签
累计收到
9
条评论
栏目
首页
瞬间
关于
目 录
CONTENT
以下是
jdk
相关的文章
2021-06-23
jdk(8) - java 中集合的总结
1. Set 是使用Map实现的,只用了Key ,Value存储的是一个 ``new Object() `` 空对象,所以 Set的结果和Map的结构是很相似的. 2. HashTable , Vector 都是 使用的 synchronize 关键字在方法上加的锁,保证相同实例的api线程安全;
2021-06-23
373
0
0
JAVA-SE
2021-06-21
jdk(7) - JVM垃圾回收机制
1. 垃圾标记原理GC ROOT , 通过引用标记来识别哪些是垃圾GC ROOT 范围 : 被栈中声明引用的,被方法区内静态变量声明引用的 等2. 垃圾回收算法2.1 复制清除法两块内存,一块用于空闲,一块用于使用,当被使用的内存占满后,将未被标记的转移到空闲内存,互换两块内存的角色,达到循环复制,清理掉垃圾的目的;(有碎片,但是快)2.2 标记清除法标记需要被清理的,然后stw清理被标记为垃圾的内存(有内存碎片产生,造成浪费)2.3 标记整理法标记需要被清理的,然后进行整理将未被标记的内存整理到连续的内存区域,在进行清理(没有内存碎片)3. 垃圾回收器3.1 CMS (Concurrent Mark Sweep) 并发标记回收器CMS 针对老年代的回收器,主要流程为1、初始标记(CMS initial mark)。2、并发标记(CMS concurrent mark)。3、最终标记(CMS remark)。4、并发清除(CMS concurrent sweep)。其中 ,初始标记 , 最终标记 需要 STW;缺点 : 采用标记清理算法,会产生内存碎片补偿 : 可通过启动参数,指定每隔一段时间进行一次碎片整理问题 : 如何处理CMS 内存碎片问题3.2 G1 并发标记回收G1 针对老年代和年轻代的回收器,主要流程为1、初始标记只标记GC ROOT 直接引用的对象2、并发标记GC
2021-06-21
170
0
0
JAVA-SE
2021-06-18
jdk(6) - hashMap
多线程哈希冲突造成写数据丢失 , 扩容导致数据OOM 等问题引起的线程问题
2021-06-18
253
0
0
JAVA-SE
2021-06-18
jdk(5) - jvm远程监控
一. 服务端-添加启动参数,开启远程jmx服务java允许在启动时添加参数指定jvisual的启动监听配置java -Djava.rmi.server.hostname=47.xx.xx.xx -Dcom.sun.management.jmxremote -Dcom.sun.management.j
2021-06-18
250
0
0
JAVA-SE
2021-06-18
jdk(3) - jvm内存实战
当并发请求过多,或者后台任务占用堆外内存过多, 超出了系统内存的容量, linux就会对当前最占用资源的进程进行kill,以保证系统的运行.
2021-06-18
343
0
0
JAVA-SE
2021-06-18
jdk(4) - JVM内存
JVM 线程调度机制cpu很像,存储分配机制和操作系统比较像,可以理解成java是在操作系统和cpu的设计理念上的高级语言实现
2021-06-18
236
0
0
JAVA-SE
2021-06-18
jdk(2) - ThreadLocal
1. ThreadLocal原因及优化引用链 : currentThread ++> threadLocalMap <Key,Value> --> ThreadLocal一旦 ThreadLocal 不被强引用,就会被清除;相应的 Key也无法命中 (因为key是ThreadLocal的实例) ,导致 value无法清除;优化 : 将ThreadLocal作为static常量,这时候 所有线程共享同一个Key引用链 : main Thread (应用主进程) ++> ThreadLocal currentThread (web 请求进程) ++> threadLocalMap <Key,Value> --> ThreadLocalKey永远不会被清除,想删就能删value.java 四种引用直接引用 User user = new User(); softRefer (软引用): User softUser = user; user = null; System.gc(); // 可能根据不同gc策略决定 softUser 是否为null;weakRefer(弱引用) : WeakReference<People> reference = new WeakReference<People>(
2021-06-18
330
0
0
JAVA-SE
2021-06-18
jdk(1) - 锁机制
synchronized
2021-06-18
185
0
0
JAVA-SE