贴图: 一、程序计数器(Program Counter Register) 程序计数器就是记录当前线程执行程序的位置,改变计数器的值来确定执行的下一条指令,比如循环、分支、方法跳转、异常处理,线程恢复都是依赖程序计数器来完成。 Java虚拟机多线程是通过线程轮流切换并分配处理器执行时间的方式实现的。 ...
分类:
其他好文 时间:
2017-08-01 23:11:55
阅读次数:
213
java的引用类型分四种:强引用-软引用-弱引用-虚引用 1、强引用: java默认的引用就是强引用,尽管jvm内存不足,在gc的时候也不会进行回收,会抛出内存溢出的异常。 Person p = new Person();就是一个强引用 2、软引用: 软引用在jvm内存充足的时候,不会被回收,在不充 ...
分类:
其他好文 时间:
2017-08-01 15:42:40
阅读次数:
127
JVM自身结构物理图: Java代码编译和执行的整个过程包含了以下三个重要的机制: 1.java源码编译机制 1)分析和输入到符号表 class文件结构包含: 结构信息。包括class文件格式版本号及各部分的数量与大小的信息 元数据。对应于Java源码中声明与常量的信息。包含类/继承的超类/实现的接 ...
分类:
其他好文 时间:
2017-08-01 10:15:04
阅读次数:
120
1. 启动Jetty Server:运行命令:Java -jar start.jar 保持jetty后台启动命令, 在命令后+ & : Java -jar start.jar& 制定JVM内存运行 如想启用远程调试(端口8000) 2. 为了保证关闭服务的安全,可以设置密码 启动命令:java -D ...
分类:
其他好文 时间:
2017-07-31 14:32:17
阅读次数:
144
JVM 概念 类载入器子系统 装载 链接 初始化 JVM 内存模型 方法区Method Area 堆区Heap Area 栈区Stack Area 程序计数器Program Counter Register 本地方法栈Native Method Stacks 运行引擎 Java Native Int ...
分类:
其他好文 时间:
2017-07-31 14:31:17
阅读次数:
220
直接缓冲区与非直接缓冲区的概念: 1)非直接缓冲区:通过 创建的缓冲区,在JVM中内存中创建,在每次调用基础操作系统的一个本机IO之前或者之后,虚拟机都会将缓冲区的内容复制到中间缓冲区(或者从中间缓冲区复制内容),缓冲区的内容驻留在JVM内,因此销毁容易,但是占用JVM内存开销,处理过程中有复制操作 ...
分类:
编程语言 时间:
2017-07-31 13:21:57
阅读次数:
264
一、概述 Java GC(Garbage Collection,垃圾收集,垃圾回收)机制,是Java与C++/C的主要区别之一,作为Java开发者,一般不需要专门编写内存回收和垃圾清理代码,对内存泄露和溢出的问题,也不需要像C程序员那样战战兢兢。经过这么长时间的发展,java GC机制已经日臻完善, ...
分类:
其他好文 时间:
2017-07-30 11:39:46
阅读次数:
195
1、GC日志分析 除了CMS的日志和其他GC的日志差别较大外,它们都可以抽象成如下格式 [GC [<collector>:<starting occupancy1>-><ending occupancy1>(total size1), <pause time1> secs] <starting oc ...
分类:
其他好文 时间:
2017-07-29 16:26:42
阅读次数:
169
Java运行时数据区域划分 Java JVM 内存 堆 栈 1、 概述 对于Java程序员来说,在虚拟机自动内存管理机制下,不容易出现内存泄漏和内存溢出现象。但如果不了解虚拟机是如何使用内存的,一旦出现了内存泄漏和溢出方面的问题,那么排错就无从下手了。 2、 运行时数据区域 Java虚拟机在执行Ja ...
分类:
编程语言 时间:
2017-07-29 10:16:38
阅读次数:
183
(根据《深入理解java虚拟机》这本书总结) 本文主要解释jvm内存模型,以及各个部分的作用。都是自己总结的给自己看的通俗语言,未用专业术语的见谅。 一、为什么要了解jvm内存模型? 在了解一个类的编译-加载-内存分配-初始化所有过程前,要先了解jvm的内存模型。这样对整个java体系可能会更加便于 ...
分类:
其他好文 时间:
2017-07-26 23:39:01
阅读次数:
166