学习《深入了解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:49:04
阅读次数:
332
时光匆匆,第二周的学习 就过去了,对于java程序的编写还是不怎么熟悉 Java虚拟机JVM是Java语言最大的特点,JVM是一个可运行Java字节码的虚拟计算系统。。它有一个解释器组件,可以实现Java字节码和计算机操作系统之间的通信。还包括一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域。 J ...
分类:
编程语言 时间:
2017-09-03 22:18:08
阅读次数:
152
1.Java的工作方式:java把程序编译为字节码,字节码可以在提供了Java虚拟机的任何系统上被解释执行 。 源文件:文件名.java→字节码文件:文件名.class→java虚拟机支持程序运行 2.Java程序常用语句: (1)public class:公共的类; (2)System.out.p ...
分类:
编程语言 时间:
2017-09-03 18:48:41
阅读次数:
166
学了很久的java,是时候来一波深入思考了。比如:对象是如何在JVM中创建,并且被使用的。本文主要讲解下new对象的创建过程。要想更深入的了解建议去认认真真的看几遍《深入理解Java虚拟机》周志明写的。 首先自己想想:Person p = new Person() 这句话是干嘛的?废话,肯定是创建一 ...
分类:
编程语言 时间:
2017-09-03 17:57:19
阅读次数:
237
介绍JVM中7个区域,然后把每个区域可能造成内存的溢出的情况说明 程序计数器:看做当前线程所执行的字节码行号指示器。是线程私有的内存,且唯一一块不报OutOfMemoryError异常。 Java虚拟机栈:用于描述java方法的内存模型:每个方法被执行时都会同时创建一个栈帧用于存储局部变量表,操作数 ...
分类:
编程语言 时间:
2017-09-03 13:24:13
阅读次数:
348
几大步骤 1、加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机), 这通过java.lang.Class类的静态方法forName(String className)实现。 例: try{ //加载MySql的驱动类 Class.forName("c ...
分类:
数据库 时间:
2017-09-03 12:24:22
阅读次数:
236
JVM性能调优: JVM内存模型及垃圾收集算法 1.根据Java虚拟机规范,JVM将内存划分为: New(年轻代) Tenured(年老代) 永久代(Perm) 其中New和Tenured属于堆内存,堆内存会从JVM启动参数(-Xmx:3G)指定的内存中分配,Perm不属于堆内存,有虚拟机直接分配, ...
分类:
其他好文 时间:
2017-09-02 12:55:53
阅读次数:
184
java虚拟机内存模型是java程序运行的基础。 java虚拟机将其内存数据分为程序计数器、虚拟机栈、本地方法栈、java堆和方法区。 如果根据受访权限的不同我们可以定义上述几个区域分为线程共享和线程私有两大类。线程共享指的是可以允许被所有线程共享访问的一类内存区这类区域包括堆内存区、方法区、运行时 ...
分类:
编程语言 时间:
2017-09-02 11:23:55
阅读次数:
165
1、java运行时的数据区:程序计数器、方法区、虚拟机栈、本地方法栈、堆 ①、程序计数器:一块较小的内存空间,可看作当前线程所执行的字节码的行号指示器 ②、java虚拟机栈:与程序计数器一样,也是线程私有的,它的生命周期与线程相同,为虚拟机执行java方法服务(粗糙的讲就是栈内存) ③、本地方法栈: ...
分类:
编程语言 时间:
2017-08-31 11:11:10
阅读次数:
178