JAVA ------ JVM
DoYa~
这个作者很懒,什么都没留下…
展开
-
JVM:调优相关
常见垃圾回收器组合参数设定(1.8)-XX:+UseSerialGC = Serial New (DefNew) + Serial Old小型程序。默认情况下不会是这种选项,HotSpot会根据计算及配置和JDK版本自动选择收集器-XX:+UseParNewGC = ParNew + SerialOld这个组合已经很少用(在某些版本中已经废弃)https://stackoverf...原创 2019-12-14 15:17:15 · 246 阅读 · 0 评论 -
JVM:GC算法 && 垃圾回收器
对象是否存活引用计数算法给对象添加一个引用计数器,每当有一个地方引用他时,计数器 +1;当引用失效时,计数器 -1存在的问题:很难解决循环引用的问题可达性分析算法基本思想:通过一系列的 GC Roots 对象作为起始点,从这些节点向下搜索,搜索所走过的路径成为引用链,当一个对象到GC Roots没有任何引用链相连时,则证明此对象是不可用的,如图,Object5和Object6为可回收的...原创 2019-12-08 20:33:36 · 281 阅读 · 0 评论 -
JVM:Java内存区域 && 内存溢出异常
Java 内存区域Heap线程公有存放实例对象是GC主要管理区域,因此可以更细致的划分为:新生代、老年代再细致一点划分:Eden区、From Survivor区、To Survivor区内存空间:可以物理上不连续、逻辑上连续即可。Method Area线程公有主要存储:类信息、常量、静态变量、编译后的代码运行时常量池主要存储:编译期的字面量以及符号引用具有动态性,即可以在...原创 2019-12-08 20:35:40 · 941 阅读 · 0 评论 -
JVM:类加载
加载过程Loading1、双亲委派为什么要做双亲委派:主要是出于安全考虑。举个例子如果没有双亲委派,我们自定义一个类加载器,再定义一个类名字为java.lang.String,直接把oracle定义的String类覆盖,并把它交给我们自定义的类加载器,让它去加载。我们把自定义的类加载器和java.lang.String打包为一个jar,交给客户。这时,我们就可以动手脚获取用户的敏感信...原创 2019-11-03 15:59:15 · 170 阅读 · 0 评论 -
JVM:JVM介绍和class文件格式
java的运行机制首先,我们简单看下java运行机制首先XX.java文件由javac执行生成TT.class文件,ClassLoader加载进来,此时我们自己写的java类里边由于会引入一些java类库,所以ClassLoader同样会把java类库一同加载进来,然后交给字节码解释器或者是JIT即时编译器,进行解释或者编译,接着交给执行引擎来执行,执行引擎再往下就是操作系统了。图中表明了JV...原创 2019-11-02 18:33:43 · 308 阅读 · 0 评论