随笔分类 -  [01] JVM原理

摘要:虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型。 Java类型的加载、连接和初始化过程都是在程序运行期间完成的。这种策略虽然会令类加载时稍微增加一些性能开销,但是会为Java应用程序提供高度的灵活性,Java语言的动态扩 阅读全文
posted @ 2018-09-05 18:28 一线大码 阅读(276) 评论(0) 推荐(1) 编辑
摘要:1、Class文件是一组以8位字节为基础单位的二进制流。文件格式统一采用一种类似于C语言结构体的伪结构来存储数据,这种伪结构中只有两种数据类型:无符号数和表。 2、无符号数属于基本的数据类型,以u1、u2、u4、u8来分别表示1/2/4/8个字节的无符号数。无符号数可以用来描述数字、索引引用、数量值 阅读全文
posted @ 2018-09-03 16:12 一线大码 阅读(237) 评论(0) 推荐(0) 编辑
摘要:上图展示了7种作用于不同分代的收集器,如果两个收集器之间存在连线,就说明它们可以搭配使用,收集器所处的区域,则表示它是属于新生代还是老年代收集器。 并行(Parallel):指多条垃圾收集器线程并行工作,但此时用户线程仍然处于等待。 并发(Concurrent):指用户线程与垃圾收集器线程同时执行( 阅读全文
posted @ 2018-07-20 16:17 一线大码 阅读(568) 评论(0) 推荐(0) 编辑
摘要:背景 垃圾收集(Garbage Collection,GC),GC的历史比Java久远,1960年诞生于MIT的Lisp是第一门真正使用内存动态分配和垃圾收集技术的语言。 对于Java来说,运行时区域:程序计数器,虚拟机栈,本地方法栈。这三个区域分配多少内存在类结构确定下来时就已知了(编译期可知)。 阅读全文
posted @ 2017-10-30 10:48 一线大码 阅读(760) 评论(0) 推荐(0) 编辑
摘要:在Java虚拟机规范的描述中,除了程序计数器外,虚拟机内存的其他几个运行时区域都有发生 OutOfMemoryError 异常的可能。 在Eclipse中进行JVM参数设置 可以直接通过上方菜单栏的 Run 下的 Run Configurations... 或者 Debug Configuratio 阅读全文
posted @ 2017-07-03 15:58 一线大码 阅读(456) 评论(0) 推荐(0) 编辑
摘要:堆中存储的内容:在程序运行时,动态创建的对象。 创建对象的四种方式:new,clone(浅复制),反射,反序列化。 浅复制:只能复制当前对象本身,如果当前对象(A)引用了另外的对象(B),则引用对象(B)不复制,新的对象(A1)也会指向该引用对象(B) new对象的创建过程 1、虚拟机遇到一条new 阅读全文
posted @ 2017-05-10 17:06 一线大码 阅读(184) 评论(0) 推荐(0) 编辑
摘要:Java虚拟机运行时数据区 整个程序执行过程中,JVM会用一段空间来存储程序执行期间需要用到的数据和相关信息,这段空间一般被称作为Runtime Data Area(运行时数据区),也就是我们常说的JVM内存。因此,在Java中我们常常说到的内存管理就是针对这段空间进行的管理(如何分配和回收内存空间 阅读全文
posted @ 2017-04-05 11:08 一线大码 阅读(304) 评论(1) 推荐(0) 编辑

点击右上角即可分享
微信分享提示