![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java成神之路
文章平均质量分 96
沁海棠
1169280791@qq.com
展开
-
史上最详细JVM笔记
文章目录简介指令架构寄存器指令架构栈指令架构生命周期虚拟机启动运行退出概览图类加载类加载子系统加载链接验证准备解析初始化类加载器分类引导类加载器扩展类加载器应用类加载器加载路径运行时数据区概览程序计数器虚拟机栈概述栈帧局部变量表操作数栈动态链接方法返回地址附加信息本地方法栈什么是本地方法为什么要使用 Native Method堆概述结构划分堆内存设置参数显示堆内存大小设置新生代老年代占比Eden 空间占比TLAB占比新生代年龄年轻的与老年代对象分配MinorGC,MajorGC,FullGCMinorGC原创 2021-04-12 15:19:41 · 917 阅读 · 2 评论 -
Java成神之路——JVM垃圾回收概览
如何确认对象可以被回收枚举根节点,来确认, 搜索对象的引用链. 当一个对象的引用不能到达根节点,那么就认为这个对象是垃圾.根节点可以为: 虚拟机栈中引用的对象,方法区中类静态属性引用的遍历,方法区中常量引用的对象,本地方法栈中JNI 也就是native方法 引用的对象常见的垃圾回收算法标记清除:首先标记出需要回收的对象,然后进行清除,效率不高,会产生大量的内存碎片,内存碎片太多可能在分...原创 2019-09-14 11:22:54 · 294 阅读 · 0 评论 -
Java成神之路——javaAgent(插桩,attach)
javaAgentJavaagent 是什么?javaAgent运行类加载器在加载类之前对类做出动态的修改.运行java命令执行时添加参数 -javaagent指定打包好的agent的jar即可以. 可以定义多个agent,按指定顺序执行java -javaagent:agent1.jar -javaagent:agent2.jar -jar MyProgram.jar字节码插桩,bT...原创 2019-09-10 11:43:37 · 9687 阅读 · 0 评论 -
Java成神之路——ASM,Javassist,cglib区别。
class文件简介及加载 Java编译器编译好Java文件之后,产生.class 文件在磁盘中。这种class文件是二进制文件,内容是只有JVM虚拟机能够识别的机器码。JVM虚拟机读取字节码文件,取出二进制数据,加载到内存中,解析.class 文件内的信息,生成对应的 Class对象: ...转载 2019-09-10 10:59:17 · 677 阅读 · 0 评论 -
Java成神之路——String长度限制
字符串还有长度限制?是的没错。先看简单的情况。// 并不是显示的在类中new,请看后面注意String str = new String("str");如果通过new的方法来创建String,可以通过String的另一个构造方法得出,长度的限制是Integer.MAX_VALUEpublic String(char value[], int offset, int count) 给...原创 2019-08-19 21:29:30 · 838 阅读 · 0 评论 -
Java成神之路——CountDownLatch、CyclicBarrier
CountDownLatchCountDownLatch 计数器,初始化是指定count初始值,await()方法将造成阻塞,直到调用 countDown()方法将count值减为零,这是将释放所有阻塞在await()处的线程。CountDownLatch 是一次性的不能重置count值。 // 倒计数10 CountDownLatch countDownLatch = n...原创 2019-08-10 16:36:13 · 98 阅读 · 0 评论 -
Java成神之路——重入锁、公平非公平锁、自旋锁、读写锁
你知道的Java锁有哪些? synchronized?Lock?它们又有什么区别?锁可分为哪些种类?锁是如何实现的?锁类型原创 2019-08-10 14:34:41 · 306 阅读 · 1 评论 -
Java成神之路——一文搞懂CAS
CAS是什么CAS(Compare And Set)比较与替换。在高并发编程中大量使用。为什么需要CAS在多线程环境下对一个变量进行并发修改是不能保证原子性的。例如多线程下对一个int类型变量进行++操作,线程A读取int i = 0; 对 i 进行++操作,线程B在线程A修改更新 i 之前去读取 i = 0; 也进行++ 操作;期待的结果为2,但最终结果却是1。有人可能会问这不是可见行问题...原创 2019-08-02 11:29:14 · 741 阅读 · 0 评论 -
Java成神之路——volatile是什么?
Volatile 是什么?java虚拟体提供的轻量级同步机制,可以保证内存可见性,不能保证原子性,禁止指令重排序内存可见性java内存模型java memory model。java内存模型一种抽象概念或规范,通过这组规范定义了程序访问变量(实力字段,静态字段,数组元素等)的访问方式。JVM运行程序的实体是线程,每个线程在创建是JVM都会为其创建一个工作内存或称栈空间,工作内存是每个线程...原创 2019-07-28 13:44:24 · 160 阅读 · 0 评论 -
Java成神之路——UML类关系图
UML使用类图分为三层 ,第一层显示类的名称,如果是抽象类斜体显示。第二层类的属性。第三层类的操作。方法属性前面的 ” + “ 代表public修饰,” - “ 代表private修饰,” # “ 代表protected修饰,” ~ “ 代码默认修饰。继承关系继承关系使用空三角实线连接实现关系实现关系使用空三角虚线连接聚合关系聚合表示一种弱的拥有关系,体现的是A对象可以包含 B对...原创 2019-07-29 19:34:01 · 253 阅读 · 0 评论