类装载过程由JVM类装载子系统负责,主要包括一下三个步骤: 1)装载:查找并装载类型的二进制数据到虚拟机中 1.通过某些途径,产生一个代表该类型的二进制数据流 2.解析二进制数据流为方法区的内部数据结构 3.在堆...
分类:
编程语言 时间:
2015-04-06 15:51:55
阅读次数:
178
一、static概述: 1.是一种修饰符,静态修饰符,用于修饰成员(成员变量和成员函数)不能修饰局部 2. 当成员被修饰了之后就多了一种调用方式,除了被对象调用之外还可以直接被类名调用用法是:类名.静态成员 3. 被静态修饰的属性存放在方法区(类中的方法),共享区,数据区中。这样可以节省...
分类:
其他好文 时间:
2015-04-05 18:52:43
阅读次数:
111
JVM内存组成结构JVM由堆、栈、本地方法栈、方法区等部分组成,结构图如下所示:1)堆所有通过new创建的对象的内存都在堆中分配,其大小可以通过-Xmx和-Xms来控制。堆被划分为新生代和旧生代,新生代又被进一步划分为Eden和Survivor区,最后Survivor由From Space和To S...
分类:
其他好文 时间:
2015-04-02 15:04:37
阅读次数:
119
深入理解Java虚拟机/classloader,类的加载机制;new过程;父亲委托机制;内存区域:堆栈方法区、程序计数器线程、常量池、运行时常量池、new string、内存溢出Java编程思想/2015.03.26_不确定对象的个数,如何存储多个对象;arraylist的add、size、get方...
分类:
其他好文 时间:
2015-03-28 01:08:11
阅读次数:
187
JAVA类的生命周期,java类通过编译为.class文件,是字节码文件,然后放入虚拟机里面。
只有这种字节码文件才能够在java虚拟机中运行,java类的生命周期就是指一个class文件从加载到卸载的全过程。
(1)、关于JVM(java虚拟机):
· 方法区:在java的虚拟机中有一块专门用来存放已经加载的类信息、常量、静态变量以及方法代码的内存区域,叫做方法区。
· 常量池:常量...
分类:
其他好文 时间:
2015-03-21 14:08:00
阅读次数:
95
【容器API】J2SDK所提供的容器位于java.util包内。注:在图中左边的是一个个存储数据,右边的Map是一对对存储数据。 这里定义为接口,即定义每个接口应该满足的存储方法和参数,但是不关注具体的实现方法。【区别】
分类:
编程语言 时间:
2015-03-20 21:48:54
阅读次数:
131
①java类的成员变量有俩种:一种是被static关键字修饰的变量,叫类变量或者静态变量另一种没有static修饰,为成员变量②通俗点说:类的静态变量在内存中只有一个,java虚拟机在加载类的过程中为静态变量分配内存,静态变量位于方法区,被类的所有实例共享。静态变量可以直接通过类名进行访问,其生命周...
分类:
编程语言 时间:
2015-03-20 01:22:06
阅读次数:
168
1. 进程与线程 进程:正在运行中的程序。每个进程拥有自己的一整套变量。 线程:进程中一条执行路径。线程共享数据。每个线程在栈区中都有自己的执行空间,自己的方法区、自己的变量。2. 多线程 一个进程中至少有一个线程在运行,当一个进程中出现多个线程时,就称这个应用程序是多线程应用程序。 线程运行必须....
分类:
编程语言 时间:
2015-03-19 21:37:13
阅读次数:
275
概述程序计数器,本地方法栈,虚拟机栈随线程而生,随线程而灭. Java堆和方法区则不一样,这部分内存分配和回收的都是动态的,垃圾收集器所关注的是这部分内存.判断对象是否是垃圾的算法JVM没有选用引用计数算法来管理内存,最主要的是引用计数很难解决对象之间相互循环引用的问题.JVM采用了可达性分析算法来判断对象是否能回收.用GC Roots对象作为起点,向下搜索,搜索走过的路劲称为引用链(referen...
分类:
编程语言 时间:
2015-03-19 10:15:47
阅读次数:
168
类的生命周期:
在一个类编译完成之后,下一步就需要开始使用类,如果要使用一个类,肯定离不开JVM。在程序执行中JVM通过装载,链接,初始化这3个步骤完成。
类的装载是通过类加载器完成的,加载器将.class文件的二进制文件装入JVM的方法区,并且在堆区创建描述这个类的java.lang.Class对象。用来封装数据。 但是同一个类只会被类装载器装载以前
链接就是把二进制数据组装为可以运行的状...
分类:
编程语言 时间:
2015-03-17 12:25:16
阅读次数:
222