
jvm
文章平均质量分 72
缘丶沐逸尘
技术热爱者
展开
-
使用java -jar指令时遇到的一些坑
笔者今天根据之前学的JVM调优课程对自己的应用程序做了一下调优,但是没想到一开始就碰到坑了,就是那个java -jar指令,笔者在其中配置jvm参数的时候出了问题目录BUG1:Unrecognized VM option 'NewSize512M'BUG2:Improperly specified VM option 'NewRatio=0.5'BUG3:Unrecognized option: --server.port=7003补充一下JVM参数的放置位置BUG1:Unrecognized V.原创 2021-04-07 16:39:44 · 1091 阅读 · 0 评论 -
java中的常量池
常量池是java开发过程中经常使用到的,但java中有几种类型的常量池,而且这些常量池分别是用来做什么工作的,对jvm的性能有什么影响,这些就是笔者接下来要记录的。目录一、什么是常量池?它是用来干什么的?二、java中有几种类型的常量池?三、字符串的两种创建方式有什么区别?四、字符串的intern()方法五、常量池对jvm的性能有哪些影响?一、什么是常量池?它是用来干什么的?一般来说我们所说的常量池都是运行时常量池,它是用来存储字符串(数字)字面量、类、方法等信息的,存储位置是在方法区。二.原创 2021-04-05 21:48:02 · 572 阅读 · 0 评论 -
jvm调优工具——Arthas
笔者最近试了一下,在linux上使用jvisualvm指令,发现根本没用,只能靠原生的指令去查询一些想要的信息,而且还要自己去分析判断具体用那些指令,太不方便了,后面学了一个阿里的开源调优工具Arthas来满足linux环境下的一些数据整合工作,现在记录下。下面是一个快速入门的地址,笔者想了下,自己写的还是没有官网来的权威,所以就直接把官方文档地址放在下方了,有兴趣的朋友可以点击链接看看。Arthas 3.5.0——快速入门文档...原创 2021-04-05 20:50:50 · 200 阅读 · 0 评论 -
jvm的监控指令
笔者今天学习了一下jvm中的监控工具,顺便就记录了下,如有不足或不对之处希望各位看官老爷多多指点。目录一、jps指令二、jmap1、jmap -histo PID指令2、jmap -heap PID指令三、jstack1、jstack PID指令四、jinfo1、jinfo -flags PID指令2、jinfo -sysprops PID指令五、jstat1、jstat -gc PID 指令2、jstat -gc PID 1000 10 指令六、jvisualvm指令一、jps指令通过jps.原创 2021-04-03 21:13:20 · 596 阅读 · 0 评论 -
G1常用参数配置指令
参数配置说明-XX:+UseG1GC启用G1-XX:ParallelGCThreads配置并发的GC线程数-XX:G1HeapRegionSize指定Region分区大小(1M~32M,必须是2的N次幂),默认将整堆划分为2048个区-XX:MaxGCPauseMillis指定最大停顿时间(默认是200ms)-XX:G1NewSizePercent新生代内存初始空间(默认为整堆的5%,值配置整数,单位是%)-XX:MaxG1NewSizePerce...原创 2021-03-21 17:28:27 · 3502 阅读 · 4 评论 -
JVM 垃圾收集器
目录1、Serial收集器2、Serial Old收集器3、ParNew收集器4、Parallel收集器5、Parallel Old收集器6、CMS收集器7、G1收集器1、Serial收集器使用指令:-XX:+UseSerialGC最基本的,也是历史最悠久的单线程串行垃圾回收器。它的单线程不仅仅意味着只有一条线程去执行垃圾收集工作,还意味着它进行垃圾收集工作时会停止其它所有的工作线程,也就是STW(stop the world),直到它完成收集工作。单核CPU推荐使用。2、Serial O原创 2021-03-20 22:11:37 · 99 阅读 · 0 评论 -
垃圾收集器底层算法实现
文章目录一、三色标记二、漏标处理办法1、增量更新2、原始快照三、读写屏障1、写屏障2、读屏障讲具体的底层算法前,先说明一个概念–三色标记一、三色标记根据可达性分析,将“是否访问过”作为条件标记成以下三种颜色:黑色:表示对象已经被垃圾收集器访问过,而且这个对象的所有引用都已经扫描过。黑色的对象代表已经扫描过,它是安全存活的,如果有其他对象引用指向了黑色对象,无序重新扫描一遍。黑色对象不可能直接(不经过灰色对象)指向某个白色对象。灰色:表示对象已经被垃圾收集器访问过,但这个对象上至少存在一个原创 2021-03-20 22:07:54 · 121 阅读 · 1 评论 -
CMS常用参数配置指令
参数配置说明-XX:+UseConcMarkSweepGC启用CMS-XX:ConcGCThreads配置并发的GC线程数-XX:+UseCMSCompactAtFullCollectionFullGC后做压缩整理(减少碎片)-XX:CMSFullGCsBeforeCompaction多少次FullGC后压缩一次,默认是0,代表每次FullGC后都会压缩一次-XX:CMSInitiatingOccupancyFraction当老年代使用达到该比例时会触发...原创 2021-03-20 20:26:37 · 1552 阅读 · 0 评论 -
Java学习笔记--零碎知识点
目录一、Java指令中的-、-x、-xx等等开头的修饰符有什么含义?二、Object对象使用finalize()方法进行自救的机会有几次?三、一、Java指令中的-、-x、-xx等等开头的修饰符有什么含义?x越多表明这个指令越不稳定,在JDK版本迭代的过程中会被替换的几率越高。像是java -version这个指令就不会随着JDK版本的迭代而改变。二、Object对象使用finalize()方法进行自救的机会有几次?一次,一个对象的finalize()方法只会被执行一次,所以通过调用finaliz原创 2021-03-20 14:25:10 · 297 阅读 · 0 评论 -
JVM创建对象
目录一、JVM对象创建的过程1、创建对象的过程①、类加载检查②、分配内存Ⅰ、如何分配内存?Ⅱ、如何防止并发状态下指针被同时调用的问题?③、初始化④、设置对象头⑤、执行init方法2、堆内存中存储的对象实例是什么样的结构?3、对象指针压缩①、为什么要进行指针压缩?②、如何禁用指针压缩 ?二、JVM对象的内存分配1、2、3、一、JVM对象创建的过程1、创建对象的过程①、类加载检查判断有无加载过该类,有则直接进入下一步、没有则加载类对象。②、分配内存分配内存主要有两个问题:Ⅰ、如何分配内存?原创 2021-03-13 18:58:03 · 557 阅读 · 0 评论 -
JVM面试题
目录一、说一下 JVM 的主要组成部分?及其作用?二、说一下 JVM 运行时数据区?三、JVM为什么要设置STW机制?四、说一下堆栈的区别?五、队列和栈是什么?有什么区别?六、栈是用来干什么的?它的结构是怎么样的?七、什么是双亲委派模型?八、说一下类装载的执行过程?九、怎么判断对象是否可以被回收?十、Java 中都有哪些引用类型?十一、说一下 JVM 有哪些垃圾回收算法?十二、说一下 JVM 有哪些垃圾回收器?十三、详细介绍一下 CMS 垃圾回收器?十四、新生代垃圾回收器和老生代垃圾回收器都有哪些?有什么区原创 2021-02-28 13:23:18 · 1138 阅读 · 2 评论 -
Java类加载机制--双亲委派机制
双亲委派机制其实并不复杂,其实就是子类(应用程序加载器)查询自己所管理的区域类有没有加载过需要加载的类,没有的话就要父类(扩展类加载器)去查,然后父类(扩展类加载器)没有找到的话原创 2021-02-25 14:18:42 · 352 阅读 · 2 评论