笔者最近在学习周志明老师编写的《深入理解Java虚拟机》一书,书中第一章的实战部分就是“自己编译JDK”,不过书中提到的是OpenJDK 7的编译。由于现在Java开发主流的JDK基本都是1.8的版本,所以,笔者就进行了OpenJDK 8的编译。 (本文为博主原创文章,转载请注明出处) 一、环境准备 ...
分类:
系统相关 时间:
2017-09-06 22:12:32
阅读次数:
518
jstatd,即虚拟机的jstat守护进程,主要用于监控JVM的创建与终止,并提供一个接口允许远程监控工具依附到在本地主机上运行的JVM。 用法摘要 描述 jstatd工具是一个RMI服务器应用程序,主要用于监控HotSpot Java 虚拟机的创建与终止,并提供一个接口以允许远程监控工具附加到本地 ...
分类:
Web程序 时间:
2017-09-06 12:50:38
阅读次数:
219
JRE顾名思义是java运行时环境,包含了java虚拟机,java基础类库。是使用java语言编写的程序运行所需要的软件环境,是提供给想运行java程序的用户使用的。 JDK顾名思义是java开发工具包,是程序员使用java语言编写java程序所需的开发工具包,是提供给程序员使用的。JDK包含了JR ...
分类:
其他好文 时间:
2017-09-05 23:07:53
阅读次数:
162
一.jmm内存模型 1.程序计数器:当前线程所执行的字节码的行号指示器。通过改变计数器的值来确定下一条要执行的字节码指令。 2.java虚拟机栈:java方法执行的内存模型,每个java方法执行时会创建一个栈帧用于存储局部变量表、操作数栈、动态链接、方法出口等信息。 3.本地方法栈 4.java堆: ...
分类:
编程语言 时间:
2017-09-05 18:58:11
阅读次数:
201
原文链接,译文链接,原文作者: Sarma Swaranga,本文最早发表于deepinmind,校对:郑旭东 这篇文章里我们主要讨论下如何在Java里实现一个对象池。最近几年,Java虚拟机的性能在各方面都得到了极大的提升,因此对大多数对象而言,已经没有必要通过对象池来提高性能了。根本的原因是,创 ...
分类:
其他好文 时间:
2017-09-05 13:25:56
阅读次数:
218
什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”? 参考答案 Java虚拟机是一个可以执行Java字节码的虚拟机进程。Java源文件被编译成能被Java虚拟机执行的字节码文件。 Java被设计成允许应用程序可以运行在任意的平台,而不需要程序员为每一个平台单独重写或者是重新编译。Ja ...
分类:
编程语言 时间:
2017-09-05 00:14:24
阅读次数:
188
写在前面:与之前主流程序语言(c/c++等)直接使用物理硬件和操作系统的内存模型不同,java虚拟机为了屏蔽各种硬件和操作系统的内存访问差异定义了一种java内存模型。其主要定义程序中各个变量的访问规则(在虚拟机中将变量存储到内存和从内存中取出变量的底层细节)。 线程、主内存、工作内存之间的交互关系 ...
分类:
编程语言 时间:
2017-09-05 00:08:16
阅读次数:
249
#为了防止自己忘记,先记着,之前我一直以为《深入理解JAVA虚拟机》写错了来着。 在HotSpot虚拟机中,对象在内存中存储的布局可以分为3块区域:对象头(Header),实例数据(Instance Data)和对齐填充(Padding)。 也就是说 JAVA对象 = 对象头 + 实例数据 + 对象 ...
分类:
编程语言 时间:
2017-09-04 22:38:41
阅读次数:
498
http://blog.csdn.net/ye1992/article/details/9344807 Tomcat本身不能直接在计算机上运行,需要依赖于硬件基础之上的操作系统和一个Java虚拟机。Tomcat的内存溢出本质就是JVM内存溢出,所以在本文开始时,应该先对Java JVM有关内存方面的 ...
分类:
其他好文 时间:
2017-09-04 13:13:37
阅读次数:
177
学习《深入了解java虚拟机》,按照书上的步骤试着自己编译了个jdk,耗时大半个下午,中间遇到不少问题,在这记录下。一、环境说明linux版本[root@localhostopenjdk_compile]#lsb_release-a
LSBVersion::base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch
Distrib..
分类:
其他好文 时间:
2017-09-03 23:51:18
阅读次数:
450