深入理解JVM
JAVA探索
对知识的贪婪是我前进的动力
展开
-
记录一个常用jvm启动参数
-Xss1m -Xms256m -Xmx512m -XX:NewRatio=4 -XX:MetaspaceSize=20.8m -XX:MaxMetaspaceSize=512m -XX:-OmitStackTraceInFastThrow -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9998 -Dcom....原创 2019-12-31 16:20:21 · 193 阅读 · 0 评论 -
深入理解JAVA虚拟机阅读随笔(一)运行时数据区域
Java虚拟机在执行JAVA程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有的区域则依赖用户线程的启动和结束而建立和销毁。根据《Java虚拟机规范(Java SE 7 版)》的规定,Java虚拟机所管理的内存将会包括以下几个运行时数据区域:jvm运行时数据区域结构图从图中我们可以看出,程序计数...原创 2019-05-08 15:25:53 · 189 阅读 · 0 评论 -
深入理解JAVA虚拟机阅读随笔(二)hotspot虚拟机对象探秘
对象的创建 Java是一门面向对象的编程语言,随时都有对象在创建。代码层面最常见的是new关键字创建,那么虚拟机是怎么执行一个对象的创建过程的呢?当虚拟机遇到一条new指令时,首先会去检查这个指令的参数在常量池中能否定位到一个类的符号引用,并且检查这个符号引用的类是否已经加载、解析和初始化过,如果没有,那么必须先执行相应的类加载过程。类加载的过程在别的文章详解。类加载通过后,虚拟机将会...原创 2019-05-15 16:06:53 · 202 阅读 · 0 评论 -
深入理解JAVA虚拟机阅读随笔(三)Java与线程
java工程师对线程一般都不难理解,我们知道线程是进程中的一条执行工作,知道多线程与单线程的区别,但很少有人知道线程的实现原理是什么,java虚拟机是怎样在服务器上创建并执行一条线程的,这就是本篇文章所要讲解的内容。 什么是线程 线程是比进程更轻量级的调度执行单位,线程的引入,可以把一个进程的资源分配和执行调度分开,各个线程既可以共享进程的资源(内存地址、文件I/O等),又可以独立调度(...原创 2019-05-17 11:58:12 · 211 阅读 · 0 评论 -
深入理解JAVA虚拟机阅读理解(四)线程安全
线程安全 当多个线程访问一个对象时,如果不用考虑这些线程在运行时环境下的调度和交替执行,也不需要进行额外的同步,或者在调用方法进行任何其他的协调操作,调用这个对象的行为都可以获得正确的结果,那这个对象是线程安全的。-----Brian Goetz笔者理解:当一个线程访问一个对象期间,不用考虑因为其他线程的访问造成该线程获取到错误的结果,那这个对象是线程安全的。 JAVA语言中的线...原创 2019-05-22 20:02:51 · 161 阅读 · 0 评论 -
jvm 参数解释
-server添加该指令,表示使用Java HotSpot Server Virtual Machine (server VM) 代替Java HotSpot Client Virtual Machine (client VM)。jvm虚拟机有两种模式,一种是server,一种是client。在64位操作系统中,jvm默认采用server模式。可以通过命令java -version查看jav...原创 2019-08-22 14:54:32 · 871 阅读 · 0 评论