随笔分类 -  JVM

摘要:1,类加载 每个编写的”.java”拓展名类文件都存储着需要执行的程序逻辑,这些”.java”文件经过Java编译器编译成拓展名为”.class”的文件,”.class”文件中保存着Java代码经转换后的虚拟机指令, 当需要使用某个类时,虚拟机将会加载它的”.class”文件,并创建对应的class 阅读全文
posted @ 2019-07-04 15:35 Chris,Cai 阅读(1173) 评论(0) 推荐(0) 编辑
摘要:Javassist优势 – 比反射开销小,性能高。–javassist性能高于反射,低于ASM运行时操作字节码可以让我们实现如下功能:– 动态生成 新的类– 动态改变某个类的结构 ( 添加 / 删除 / 修改 新的属性 / 方法 )javassist 的最外层的 API 和 JAVA 的反射包中的 阅读全文
posted @ 2019-07-03 20:32 Chris,Cai 阅读(851) 评论(0) 推荐(0) 编辑
摘要:1,Lombok 插件,类里面可以免去写getters,setters方法,加上注解@Getter @Setter 里面就是用字节码技术动态生成属性的getters,setters 方法 1,IDE 安装lombok 插件 2,项目maven 引用包 https://blog.csdn.net/yi 阅读全文
posted @ 2019-07-03 20:13 Chris,Cai 阅读(388) 评论(0) 推荐(0) 编辑
摘要:JMeter LoadRunner 压力测试工具 JConsole 是一个内置 Java 性能分析器,可以查看内存,线程,类,CPU 等的使用情况,可以通过线程去查看线程的试用情况,死锁可以被检测出来 visualVm 来监控 Java 应用程序性能和跟踪 Java 中的代码,和JConsole 差 阅读全文
posted @ 2019-07-03 19:11 Chris,Cai 阅读(127) 评论(0) 推荐(0) 编辑
摘要:1,新建web 测试项目并且发布到Tomcat,访问路径:http://127.0.0.1:8080/JvmWeb/index 2,在Jmeter 中添加项目 Step1: 在Test plan 中 Add 线程组,可以添加线程的数量,以及访问的次数 Step2: 在添加的Thread Group 阅读全文
posted @ 2019-07-03 14:20 Chris,Cai 阅读(126) 评论(0) 推荐(0) 编辑
摘要:串行与并行收集器串行回收: JDK1.5前的默认算法 缺点是只有一个线程,执行垃圾回收时程序停止的时间比较长并行回收: 多个线程执行垃圾回收适合于吞吐量的系统,回收时系统会停止运行 垃圾收集器 1,serial 收集器 串行收集器是最古老,最稳定以及效率高的收集器,可能会产生较长的停顿,只使用一个线 阅读全文
posted @ 2019-07-02 21:17 Chris,Cai 阅读(150) 评论(0) 推荐(0) 编辑
摘要:1,Java堆溢出 错误原因: java.lang.OutOfMemoryError: Java heap space 堆内存溢出 模拟:-Xms1m -Xmx10m -XX:+PrintGCDetails -XX:+HeapDumpOnOutOfMemoryError 设置堆初始内存1M 最大内存 阅读全文
posted @ 2019-07-02 20:38 Chris,Cai 阅读(156) 评论(0) 推荐(0) 编辑
摘要:-XX:+PrintGC 每次触发GC的时候打印相关日志 -XX:+PrintGCDetails 每次触发GC的时候更详细的相关日志 -XX:+UseSerialGC 串行回收 -Xms 堆初始值(要设置成和-Xmx一样大,否则会频繁的GC) -Xmx 堆最大可用值 -Xmn 新生代堆最大可用值 - 阅读全文
posted @ 2019-07-02 15:32 Chris,Cai 阅读(653) 评论(0) 推荐(0) 编辑
摘要:标记清除算法: 1,标记阶段:找到所有可以访问的对象,做个标记 2,清除阶段:遍历堆,找到未做标记的对象,进行清除 标记和清除的效率不高,尤其是要扫描的对象比较多的时候 ,(一般用于老年代,因为老年代回收的频率不高)缺点: 会造成内存碎片(会导致明明有内存空间,但是由于不连续,申请稍微大一些的对象无 阅读全文
posted @ 2019-07-01 22:05 Chris,Cai 阅读(1271) 评论(0) 推荐(0) 编辑
摘要:垃圾回收机制: 不定时去堆内存中清理不可达对象。不可达的对象并不会马上就会直接回收, 垃圾收集器在一个Java程序中的执行是自动的,不能强制执行,即使程序员能明确地判断出有一块内存已经无用了,是应该回收的,程序员也不能强制垃圾收集器回收该内存块。程序员唯一能做的就是通过调用System.gc 方法来 阅读全文
posted @ 2019-07-01 21:23 Chris,Cai 阅读(558) 评论(0) 推荐(0) 编辑
摘要:Java 堆(Java Heap): 概念:Java 堆 是Java 虚拟机管理的内存中最大的一块。是被所有线程共享的一块内存区域。在Java 虚拟机启动时候创建。 作用:所有实例对象,数组都要在堆上分配。 别名:GC 堆(garbage collected heap),因为堆是垃圾回收器管理的主要 阅读全文
posted @ 2019-07-01 20:34 Chris,Cai 阅读(444) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示