Java虚拟机
Java虚拟机
瑾析编程
这个作者很懒,什么都没留下…
展开
-
JVM性能诊断工具详解
简介本文主要是收集整理Linux系统下JVM自带的性能诊断工具(jps、jstat、jmap),包含工具的作用,用法,返回数据说明。JVM自带工具,都可以通过command -help来阅读工具的使用说明工具介绍JPS作用用来查看服务器(如果没有指定服务器,默认为本机)上运行的所有JAVA进程pid。一般情况下使用这个工具的目的只是为了找出运行的JVM进程ID,然后可以进一步使用其它的工具来监控和分析JVM。用法语法规则[root@localhost ~]# jps -helpusa原创 2020-09-20 22:37:29 · 378 阅读 · 0 评论 -
由浅入深了解synchronized关键字
简介本文主要介绍synchronized的用法,功能,原理,以及最后通过实验数据验证。用法使用synchronized关键字对方法或者代码块进行修饰,来实现多线程下加锁的目的,具体用法如下:介绍代码功能修饰静态方法public synchronized static void add() {}对类对象进行加锁修饰实例方法public synchronized void add() {}对类实例进行加锁修饰代码块-类对象synchronized (Obj.c原创 2020-08-05 15:50:27 · 240 阅读 · 0 评论 -
《深入理解Java虚拟机》之线程安全与锁优化
13.1.概述13.2.线程安全当多个线程访问一个对象时,如果不用考虑这些线程在运行时环境下的调度和交替执行,也不需要进行额外的同步,或者在调用方进行任何其他的协调操作,调用这个对象的行为都可以获得正确的结果,那这个对象是线程安全的。13.2.1.Java语言中的线程安全Brian Goetz在IBM developWorkers上发表的一篇论文中提出,可以将Java语言中各种操作共享的数...原创 2020-04-06 11:52:22 · 198 阅读 · 0 评论 -
《深入理解Java虚拟机》之Java内存模型与线程
阅读《深入理解Java虚拟机》第2版,结合JDK8的读书笔记。当前文章为书本的第12章节。12.1.概述本章节将介绍虚拟机如何实现多线程,多线程之间由于线程共享和竞争数据而导致的一系列问题以及解决方案。TPS(Transactions Per Second):它代表着一秒内服务端平均能相应的请求总数。12.2.硬件的效率与一致性计算机的存储设备和处理器的运算速度存在比较大的差异,...原创 2020-04-01 23:24:09 · 184 阅读 · 0 评论 -
《深入理解Java虚拟机》之类文件结构
阅读《深入理解Java虚拟机》第2版,结合JDK8的读书笔记。当前文章为书本的第6章节。6.1.概述越来越多的程序语言选择了与操作系统和机器指令集无关的、平台中立的格式作为程序编译后的存储格式。6.2.无关性的基石平台无关性各种不同平台的虚拟机与所有平台都统一使用的程序存储格式-字节码(ByteCode),是构成平台无关性的基石.语言无关性实现语言无关性的基础是虚拟机和字...原创 2020-03-03 23:56:57 · 162 阅读 · 0 评论 -
《深入理解Java虚拟机》之虚拟机性能监控与故障处理工具
阅读《深入理解Java虚拟机》第2版,结合JDK8的读书笔记。当前文章为书本的第2章节。4.1.概述给一个系统定位问题的时候,知识、经验是关键基础,数据是依据,工具是运用知识处理数据的手段。4.2.JDK的命令行工具window系统为可以执行运行的exe格式,linux系统为shell脚本。名称主要作用jpsJVM Process Status Tool,显示指...原创 2020-02-20 22:48:18 · 370 阅读 · 0 评论 -
《深入理解Java虚拟机》参数介绍
参数类型Java启动参数共分为三类;标准参数(-)所有的JVM实现都必须实现这些参数的功能,而且向后兼容非标准参数(-X)默认jvm实现这些参数的功能,但是并不保证所有jvm实现都满足,且不保证向后兼容;非稳定参数(-XX)此类参数各个jvm实现会有所不同,将来可能会随时取消,需要慎重使用;使用介绍标准参数可以通过:java -help 查看用法执行类ja...原创 2020-02-16 12:43:07 · 137 阅读 · 0 评论 -
《深入理解Java虚拟机》之垃圾收集器与内存分配策略
阅读《深入理解Java虚拟机》第2版,结合JDK8的读书笔记。当前文章为书本的第2章节。3.1.概述GC需要完成3件事情:哪些内存需要回收?什么时候回收?如何回收?垃圾收集器关注的是Java堆的内存回收,因为堆存放的是对象的实例,例如一个接口中不同的实现类所需要的内存可能是不一样的,一个方法中不同的分支所需要的内存可能也不一样,只有在程序处于运行期间才能知道会创建哪些对象,这部...原创 2020-02-16 00:06:50 · 286 阅读 · 0 评论 -
《深入理解Java虚拟机》之Java内存区域与内存溢出异常
阅读《深入理解Java虚拟机》第2版,结合JDK1.8的读书笔记。当前文章为书本的第2章节。2.1.概述从概念上介绍Java虚拟机内存的各个区域,讲解这些区域的作用,服务对象以及其中可能产生的问题。2.2.运行时数据区域Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。有:程序计数器,虚拟机栈,本地方法栈,堆,方法区。为了提升性能针对内存区域,分为线...原创 2020-02-06 12:10:21 · 359 阅读 · 0 评论