- 博客(11)
- 收藏
- 关注
原创 JAVASE - Vector详解
Vector是线程安全的集合,它的安全是由于所有方法上添加了synchronized关键词,由于synchronized锁的是方法,如果在使用Vector集合时产生了复合操作还是会出现安全问题。:支持随机访问,即下标访问。......
2022-08-16 17:59:29
146
原创 JAVASE-ArrayList详解
fail-fast机制是java集合中的一种错误机制。当使用迭代器迭代时,如果发现集合有修改,则快速失败做出响应,抛出ConcurrentModificationException异常。这种修改有可能是其它线程的修改,也有可能是当前线程自己的修改导致的,比如迭代的过程中直接调用remove()删除元素等。另外,并不是java中所有的集合都有fail-fast的机制。比如,像最终一致性的ConcurrentHashMap、CopyOnWriterArrayList等都是没有fast-fail的。...
2022-08-15 17:59:35
118
原创 JVM-垃圾收集器G1 & ZGC详解 & 安全点与安全区域(5)
很明显,在NUMA下,CPU访问本地存储器的速度比 访问非本地存储器快一些。-XX:G1HeapWastePercent(默认5%): gc过程中空出来的region是否充足阈值,在混合回收的时候,对Region回收都 是基于复制算法进行的,都是把要回收的Region里的存活对象放入其他Region,然后这个Region中的垃圾对象全部清 理掉,这样的话在回收过程就会不断空出来新的Region,一旦空闲出来的Region数量达到了堆内存的5%,此时就会立 即停止混合回收,意味着本次混合回收就结束了。....
2022-08-12 21:52:20
578
原创 JVM-垃圾收集器ParNew&CMS与底层三色标记算法详解(4)
就是当灰色对象要删除指向白色对象的引用关系时, 就将这个要删除的引用记录下来, 在并发扫描结束之后, 再将这些记录过的引用关系中的灰色对象为根, 重新扫描一次,这样就能扫描到白色的对象,将白色对象直接标记为黑 色(目的就是让这种对象在本轮gc清理中能存活下来,待下一轮gc的时候重新扫描,这个对象也有可能是浮动垃圾) 以上无论是对引用关系记录的插入还是删除, 虚拟机的记录操作都是通过写屏障实现的。黑色的对象代表已经扫描 过, 它是安全存活的, 如果有其他对象引用指向了黑色对象, 无须重新扫描一遍。......
2022-08-09 11:57:37
322
1
原创 JVM-对象创建与内存分配机制深度剖析(3)
1.jdk1.6 update14开始,在64bit操作系统中,JVM支持指针压缩2.jvm配置参数:UseCompressedOops,compressed压缩、oop(ordinary object pointer)对象指针3.启用指针压缩:XX:+UseCompressedOops(默认开启),禁止指针压缩:XX:UseCompressedOops。...
2022-08-04 14:47:33
155
原创 JVM-整体结构深度解析(2)
上图:同时局部变量的a和b的index是相同的,说明了a和b用的是同一个槽位,而一个槽位怎么可能放两个变量,所以肯定有个变量失效了,然后另一个变量才能够做到复用失效变量的槽位,这里就是局部变量a超出了作用域,失效了,然后局部变量b就复用了a的槽位,所以二者的index才会相同。:栈帧当中的局部变量表的槽位时可以重用的,如果一个局部变量过了其作用域,那么在其作用域之后申明的局部变量就很可能会复用过期局部变量的槽位。我们知道java栈是java虚拟机的一个重要的组成部分,在栈里进行线程操作,存放方法参数等等。.
2022-08-02 18:01:55
117
原创 JVM-从JDK源码级别剖析JVM类加载机制(1)
为何要使用双亲委派机制?1.沙箱安全机制自己写的java.lang.String.class类不会被加载,这样便可以防止核心API库被随意篡改。
2022-08-02 15:46:09
107
原创 并发编程之深入理解JMM&并发三大特性(一)
并发编程之深入理解JMM&并发三大特性(一)前提知识并发并行并发三大特性原子性可见性有序性前提知识什么是并发?什么是并行?它们最终的目标是什么?并发并发某一时间段内,存在多个任务一起无顺序的交替执行,由于任务与任务之间的切换时间极短用户不容易感知,这种情况叫做并发并行并行某一时间段内,多个任务一起执行,这种情况叫并行最终的目标最大化CPU使用率并发三大特性并发编程BUG的根源就是三大特性:原子性、可见性、有序性原子性原子性则是一个操作或者多个操作之间不可被打断,要么
2022-03-16 10:18:42
685
原创 tomcat 前言 (数据传输流程)
tomcat 前言 (数据传输流程)传输层服务器与服务器是如何进行传输可靠的数据?数据传输的流程HTTP协议传输层服务器与服务器是如何进行传输可靠的数据?OS实现了TCP协议,经过三次握手,就可以实现数据传输通信。三次握手第一次第一次握手:建立连接时,客户端发送syn包(seq=j)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)。第二次第二次握手:服务器收到syn包,必须确认客户端的SYN(ack=j+
2021-10-11 16:02:54
284
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人