最近学习深入java虚拟机的书,照着里面的例子跑了下。 下面是demo: 程序执行效果: 我这边产生的hprof文件路径: E:\IdeaProjects\java-virtual\java_pid2432.hprof 打开这种文件的话,可以使用如下的软件: Memory Analyzer 官网:h ...
分类:
其他好文 时间:
2017-08-27 17:15:09
阅读次数:
1316
一、JAVA分类 JAVAEE——JAVA企业版,主要用于WEB开发。 JAVASE——JAVA标准版,主要用于应用程序开发。 JAVAME——JAVA移动版,主要用于移动应用开发。 二、JAVASE的安装 JAVA的运行需要JAVA虚拟机(JVM),这是它实现跨平台的根本。 JAVA的安装主要有两 ...
分类:
编程语言 时间:
2017-08-27 12:48:51
阅读次数:
147
根据《深入理解java虚拟机》这本书总结 提到java的并发和锁,第一反应可能回想到多线程、synchronized关键字等,那么对于jvm虚拟机,这些是如何实现的呢?或者用的什么思想实现的? 一、JAVA内存模型 为什么要谈到内存模型?并发编程和锁要解决的问题就是同步的问题,抛开java代码,虚拟 ...
分类:
其他好文 时间:
2017-08-26 15:04:21
阅读次数:
115
一直对String对象里面的intern()方法不是很了解,最近在读《深入理解Java虚拟机》这本书里面终于得到了一个比较清晰的解释。这个方法是可以获得一个具体的String在字符串常量池中的一个引用,书里面有一段实例代码,Stringstr1=newStringBuilder("计算机").append("软件").toSt..
分类:
其他好文 时间:
2017-08-26 04:52:02
阅读次数:
153
Java虚拟机(Java VirtualMachine 简称JVM)是运行所有Java程序的抽象计算机,是Java语言的运行环境,它是Java 最具吸引力的特性之一。 JVM内存模型 1.方法区和堆是所有线程共享的数据区 1)堆:存放对象的实例 2)方法区:存放已被虚拟机加载的类信息、常量、静态变量 ...
分类:
其他好文 时间:
2017-08-25 18:52:45
阅读次数:
114
1. 认识Java虚拟机 默认Hotspot实现 2. 类加载机制 知道双亲委派模型 3. 内存模型 4. GC 回收算法 垃圾收集器 5. 调优 6. 工具 jstack jmap jconsole ...
分类:
其他好文 时间:
2017-08-25 14:59:17
阅读次数:
166
资料来源:http://www.cnblogs.com/smile361/archive/2013/11/25/3441553.html 程序计数器: 当前线程所执行的字节码的行号指示器 本地方法栈: 为虚拟机使用的native方法服务 java虚拟机栈Stack: 描述java方法执行的内存模型, ...
分类:
编程语言 时间:
2017-08-24 14:04:53
阅读次数:
236
int 是基本类型,直接存数值 Integer是类,产生对象时用一个引用指向这个对象 Java把内存划分成两种:一种是栈内存,另一种是堆内存 在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配 而实际的对象是在存储堆内存中 即 int i = 5;//直接在栈中分配空间 Int ...
分类:
编程语言 时间:
2017-08-24 12:29:56
阅读次数:
166
【深入Java虚拟机】之五:多态性实现机制——静态分派与动态分派 方法解析 Class文件的编译过程中不包含传统编译中的连接步骤,一切方法调用在Class文件里面存储的都只是符号引用,而不是方法在实际运行时内存布局中的入口地址。这个特性给Java带来了更强大的动态扩展能力,使得可以在类运行期间才能确 ...
分类:
编程语言 时间:
2017-08-24 00:11:40
阅读次数:
231
String类是final类型的类: 为什么定义为final:final类不能被继承,其中的成员变量和方法也会隐性的被修饰为final。java虚拟机会缓存final类型的对象,而String会被频繁使用到,所以声明为final类型可以提高效率。 new String("123"),和 = “123 ...
分类:
其他好文 时间:
2017-08-23 15:56:47
阅读次数:
130