JNI,Java Native Interface,是 native code 的编程接口。JNI 使 Java 代码程序可以与 native code 交互——在 Java 程序中调用 native code;在 native code 中嵌入 Java 虚拟机调用 Java 的代码。JNI 编程 ...
分类:
编程语言 时间:
2017-08-15 17:22:09
阅读次数:
236
ClassLoader负责把类从磁盘加载进内存,交给虚拟机处理。 标准Java虚拟机的ClassLoader体系结构如下(都是抽象类ClassLoader的子类) ClassLoader使用双亲委派机制,加载一个类,先看上边一系列父类有没有加载,如果没有的话父类再传给下边的一系列子类让其自己加载。这 ...
分类:
移动开发 时间:
2017-08-14 21:25:54
阅读次数:
169
判断对象是否存活的算法: 简单版:给对象添加一个引用计数器,每当有一个地方引用它时,计数器值就加1,当引用失效时,计数器值就减1。任何时刻计数器为0的对象就是不可能再被使用的。 但主流的Java虚拟机都没有引用计数算法来管理内存,最重要的原因就是它很难解决对象之间相互循环引用的问题。 可达性分析算法 ...
分类:
编程语言 时间:
2017-08-14 18:57:53
阅读次数:
251
注: 此篇文章可以算是读《深入理解Java虚拟机:JVM高级特性与最佳实践》一书后的笔记总结加上我个人的心得看法。 整体总结顺序沿用了书中顺序,但多处章节用自己的话或直白或扩展的进行了重新的理解总结,而非单纯摘录。 Java内存区域简介 运行时数据区域 程序计数器 又称“PC”。是一块很小的内存空间 ...
分类:
编程语言 时间:
2017-08-14 17:59:51
阅读次数:
160
JVM笔记——技术点汇总 目录 · 初步认识 · Java里程碑(关键部分) · 理解虚拟机 · Java虚拟机种类 · Java语言规范 · Java虚拟机规范 · 基本结构 · Java堆(Heap) · Java栈(Stacks) · 方法区(Method Area) · 直接内存(Direc ...
分类:
其他好文 时间:
2017-08-14 14:19:20
阅读次数:
182
目录 · 初步认识 · Java里程碑(关键部分) · 理解虚拟机 · Java虚拟机种类 · Java语言规范 · Java虚拟机规范 · 基本结构 · Java堆(Heap) · Java栈(Stacks) · 方法区(Method Area) · 直接内存(Direct Memory) · 本 ...
分类:
其他好文 时间:
2017-08-14 10:01:46
阅读次数:
121
关于垃圾回收的一些基本原理及技术解析 什么是垃圾,为什么要垃圾回收? 垃圾回收是很大一块,在java虚拟机一些资料描述中,jvm大致干三件大事儿,1>加载class 2>分配存储空间 3>执行垃圾回收;可见垃圾回收在高级语言中所占的分量。(不好意思,扯远了~),简单点儿说就是:在程序运行时刻,产生的 ...
分类:
其他好文 时间:
2017-08-14 00:33:26
阅读次数:
151
# Java 虚拟机 ## Java 虚拟机概述和基本概念 ### 类加载子系统、方法区、Java堆、直接内存、Java栈、本地方法栈、垃圾回收系统、PC寄存器、执行引擎 + 类加载子系统:负责从文件系统或者网络中加载 Class 信息,加载的信息存放在一块称之为方法区的内存空间。 + 方法区:就是... ...
分类:
编程语言 时间:
2017-08-14 00:25:02
阅读次数:
160
jps工具 jps(Java Virtual Machine Process Status Tool)是JDK 1.5提供的一个显示当前所有Java进程pid的命令,简单实用,非常适合在Linux/unix平台上简单察看当前java进程的一些简单情况。jps(java Virtual Machine ...
分类:
其他好文 时间:
2017-08-12 17:09:31
阅读次数:
135
运行时数据区域 1.程序计数器 程序计数器(Program Counter Register)是一块较小的内存空间,它可以看作是当前线程所执行的字节码的行号指示器。字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖这 ...
分类:
编程语言 时间:
2017-08-12 11:52:30
阅读次数:
199