深入理解java虚拟机 精华总结(面试) 一、运行时数据区域 Java虚拟机管理的内存包括几个运行时数据内存:方法区、虚拟机栈、本地方法栈、堆、程序计数器,其中方法区和堆是由线程共享的数据区,其他几个是线程隔离的数据区 1.1 程序计数器 程序计数器是一块较小的内存,他可以看做是当前线程所执行的行号 ...
分类:
编程语言 时间:
2018-04-23 18:50:15
阅读次数:
174
第一部分 走进Java 一、走进Java 1、概述 java广泛应用于嵌入式系统、移动终端、企业服务器、大型机等各种场合,摆脱了硬件平台的束缚,实现了“一次编写,到处运行”的理想 2、java技术体系结构 按照功能来划分 包括以下几个组成部分:Java程序设计语言,各种硬件平台的java虚拟机,Ja ...
分类:
编程语言 时间:
2018-04-22 18:11:35
阅读次数:
154
内存分配: 为对象分配内存有两种方式,第一种是“指针碰撞”,也就是把内存分为两边,一边是已使用区域,另一边是未分配区域,分界线用指针记录,当要分配内存时,只需把指针向未分配区域移动需要的空间即可,通常compact算法的垃圾回收会使用“指针碰撞”,如Serial、ParNew;另一种是空闲列表记录, ...
分类:
编程语言 时间:
2018-04-22 10:49:57
阅读次数:
168
今后一段时间会全面读一下《深入理解Java虚拟机》 在这里先记一下在网上看到的几篇介绍 类加载器 的文章,等读到虚拟机类加载机制再详细介绍。 超详细Java中的ClassLoader详解 深入理解Java类加载器 贴一个自己写的类加载器。 Hello类。 把编译后的class文件放到别的路径下。 W ...
分类:
编程语言 时间:
2018-04-17 16:49:48
阅读次数:
159
简述 今天继续写《深入理解java虚拟机》的对象创建的理解。这次和上次隔的时间有些长,是因为有些东西确实不好理解,就查阅各种资料,然后弄明白了才来做记录。 (此文中所阐述的内容都是以HotSpot虚拟机为例的。) 对象的创建 java程序在运行过程中无时无刻都有对象被创建出来,那么创建对象是个怎么样 ...
分类:
其他好文 时间:
2018-04-15 20:57:49
阅读次数:
175
网络带来的挑战和机遇: 平台无关性、安全性和网络移动性,Java体系的这三方面共同使得Java和发展中的网络计算环境相得益彰 Java体系结构包括四个独立但相关的技术: Java程序设计语言 Java class文件格式 Java应用编程接口 Java虚拟机 1、Java虚拟机 Java虚拟机是一台 ...
分类:
编程语言 时间:
2018-04-13 14:26:29
阅读次数:
201
一、概述 虚拟机把描述类的数据从class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。 二、类加载的时机 类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载(Loading)、验证(Verifica ...
分类:
编程语言 时间:
2018-04-09 23:09:34
阅读次数:
281
对于常见的GC算法,我们都应该知道,例如:标记清除算法、复制算法、标记整理算法等。标记清除算法由于回收之后存在大量的内存碎片,存在效率和空间问题!为了解决效率问题,引出了复制算法!熟悉GC算法的小伙伴应该都看过周志明老师的《深入理解Java虚拟机》这本书。因此,这里不再讨论这几种GC算法的区别,这里 ...
分类:
其他好文 时间:
2018-04-07 22:42:28
阅读次数:
192
一、运行时数据区域 Java虚拟机管理的内存包括几个运行时数据内存:方法区、虚拟机栈、本地方法栈、堆、程序计数器,其中方法区和堆是由线程共享的数据区,其他几个是线程隔离的数据区 1.1 程序计数器 程序计数器是一块较小的内存,他可以看做是当前线程所执行的行号指示器。字节码解释器工作的时候就是通过改变 ...
分类:
编程语言 时间:
2018-04-02 16:03:26
阅读次数:
175
一、类加载机制 类加载器将类的.class文件中的二进制数据读入到内存中,将其放在方法区内,然后在堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据结构。类的加载的最终产品是位于堆区中的Class对象,Class对象封装了类在方法区内的数据结构,并且向Java程序员提供了访问 ...
分类:
编程语言 时间:
2018-03-29 19:09:30
阅读次数:
161