一、JVM内存空间概览 Java虚拟机使用的内存块包含 栈空间Stack 、堆空间 Heap Memory 、永久区 Perm Gen(related to method area) 堆空间(Heap Memory)包含 初生代Eden Gen、两个幸存代Survivor Gen (S1 S2)、老 ...
分类:
其他好文 时间:
2017-06-25 18:35:23
阅读次数:
165
看了深入理解JAVA虚拟机已经有一段时间了 发现很多东西如果不总结 脑子里总是没有一条线贯穿起来,也比较模糊混乱,所以还是有必要利用逻辑思维图总结下。 JVM看了下 大致比较重要的分内存区域划分、垃圾收集器与内存分配策略、类加载机制、高并发这几块。其中其实都有比较紧密的联系 ...
分类:
其他好文 时间:
2017-06-25 12:42:47
阅读次数:
114
1. JVM简介 初识JVM JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。 Java语言的一个非常重要的特点就是与平台的无关性。而使用Java虚拟机是实现这一 ...
分类:
其他好文 时间:
2017-06-24 20:50:54
阅读次数:
124
大三下学期刚考完,把一个商城项目匆匆做完了,开始捧起这本书,但是感觉内容繁多,为了便于以后复习,这里总结一些笔记,大部分都是直接copy书上的,这本书还没看完也不知道自己能看到哪里,慢慢看吧 第一章 走进java 1.java优点:1)它摆脱了硬件平台的束缚,实现了“一次编写,到处运行”的理想 。 ...
分类:
编程语言 时间:
2017-06-24 18:39:06
阅读次数:
112
NO9.类中引用到的field字段在常量池中是如何描写叙述的?(CONSTANT_Fieldref_info, CONSTANT_Name_Type_info) 一般而言。我们在定义类的过程中会定义一些 field 字段。然后会在这个类的其它地方(如方法中)使用到它。有可能我们在类的方法中仅仅使用f ...
分类:
编程语言 时间:
2017-06-24 17:28:44
阅读次数:
259
为什么要分代 为什么需要把堆分代?不分代不能完成他所做的事情么?其实不分代完全可以,分代的唯一理由就是优化GC性能。你先想想,如果没有分代,那我们所有的对象都在一块,GC的时候我们要找到哪些对象没用,这样就会对堆的所有区域进行扫描。而我们的很多对象都是朝生夕死的,如果分代的话,我们把新创建的对象放到 ...
分类:
编程语言 时间:
2017-06-24 17:16:24
阅读次数:
212
一:java概述: 1,JDK:Java Development Kit,java的开发和运行环境,java的开发工具和jre。 2,JRE:Java Runtime Environment,java程序的运行环境,java运行的所需的类库+JVM(java虚拟机)。 3,配置环境变量:让java ...
分类:
编程语言 时间:
2017-06-23 12:50:11
阅读次数:
155
Class文件二进制字符流通过类加载器和虚拟机加载到内存(方法区)完成在内存上的布局和初始化后,虚拟机字节码执行引擎就可以执行相关代码实现程序所定义的功能。虚拟机执行引擎执行的对象是方法(均特指非本地方法),方法是 着一个程序所定义的一个功能的载体,实现预定的业务功能或者特定的功能等。 Java虚拟... ...
分类:
编程语言 时间:
2017-06-22 23:48:23
阅读次数:
295
读了《深入理解Java虚拟机》之后,当时理解了,过段时间又忘记了,在此做下记录,方便自我回顾,也希望能帮到想要学习虚拟机的同学。 Java虚拟机在执行java程序时会把它所管理的内存分为5个不同的数据区域(也可以细分为7个不同的区域,后续做介绍):程序计数器、Java虚拟机栈、本地方法栈、Java堆 ...
分类:
编程语言 时间:
2017-06-22 00:15:46
阅读次数:
184
1、Java语言的特性 Java代码经过编译器编译成Class文件(字节码)后,就需要虚拟机将其加载到内存里面执行字节码所定义的代码实现程序开发设定的功能。 Java语言中类型的加载、连接(验证、准备、解析)、初始化都是在程序运行期间内完成的与C++不同(C++在编译期就需要进行连接),这样也使得J... ...
分类:
编程语言 时间:
2017-06-21 22:55:08
阅读次数:
205