一:API:API:Application Programming Interface 应用程序编程接口二:STRING类:字符串直接复制的方式是先到字符串常量池里去查找,如果有就直接返回,没有,就创建并返回。1.String s = new String("hello") 和 String s =...
分类:
编程语言 时间:
2015-06-03 13:23:55
阅读次数:
127
在class文件中,“常量池”是最复杂也最值得关注的内容。 Java是一种动态连接的语言,常量池的作用非常重要,常量池中除了包含代码中所定义的各种基本类型(如int、long等等)和对象型(如String及数组)的常量值还,还包含一些以文本形式出现的符号引用,比如: 类和接口的全限定名; 字段...
分类:
编程语言 时间:
2015-06-01 14:30:35
阅读次数:
101
1、类加载有几种情况,怎么进行类加载答案:虚拟机加载类的途径: 1、Dog dog = new Dog();这个动作会导致常量池的解析,Dog类被隐式装载。如果当前ClassLoader无法找到Dog,则抛出NoClassDefFoundError。2、Class clazz = Class.for...
分类:
编程语言 时间:
2015-06-01 09:31:57
阅读次数:
212
深入Java核心 Java内存分配原理精讲引言:栈、堆、常量池虽同属Java内存分配时操作的区域,但其适用范围和功用却大不相同。本文将深入Java核心,详细讲解Java内存分配方面的知识。Java内存分配与管理是Java的核心技术之一,之前我们曾介绍过Java的内存管理与内存泄露以及Java垃圾回收...
分类:
编程语言 时间:
2015-05-29 11:25:40
阅读次数:
120
1、Java中内存的基本结构:栈(stack):存放局部变量、对象的引用;堆(heap):new出来的东西(对象)方法区:常量池等静态域:全局变量等变量在其生命周期结束后将出栈,此时堆中的空间因为没有栈中的变量来引用它将被系统回收2、Java中关于变量的类型:1)按照数据类型的不同:基本数据类型 &...
分类:
编程语言 时间:
2015-05-26 20:57:33
阅读次数:
183
1.寄存器:最快的存储区, 由编译器根据需求进行分配,我们在程序中无法控制.
2. 栈:存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在堆(new 出来的对象)或者常量池中(字符串常量对象存放在常量池中。)
3. 堆:存放所有new出来的对象。
4. 静态域:存放静态成员(static定义的)
5. 常量池:存放字符串常量和基本类型常量(public s...
分类:
编程语言 时间:
2015-05-26 12:43:34
阅读次数:
117
1. 在JAVA中,对象的分配一般使用new关键字。 当虚拟机遇到new指令时,会先检查该指令所包含的参数在常量池中能否找到一个符号引用,并检查该符号引用所代表的类是否被加载、解析和初始化。 如果没有,则会先执行类的加载过程。2. 类加载完成后,会为该对象分配内存空间。一个对象需要多大的内存空间在....
分类:
编程语言 时间:
2015-05-25 16:03:57
阅读次数:
92
关于网上的一个面试题,求输出结果:
/** * * @author DreamSea 2011-11-19 */ public class IntegerTest { public static void main(String[] args) { objPoolTest(); } public static void objPool...
分类:
编程语言 时间:
2015-05-24 01:25:07
阅读次数:
160
Java的堆是一个运行时数据区,类的(对象从中分配空间。这些对象通过new、newarray、 anewarray和multianewarray等指令建立,它们不需要程序代码来显式的释放。堆是由垃圾回收来负责的,堆的优势是可以动态地分配内存 大小,生存期也不必事先告诉编译器,因为它是在运行时动态分配...
分类:
编程语言 时间:
2015-05-19 18:20:02
阅读次数:
139
首先让我们了解几个概念: 栈 :由JVM分配区域,用于保存线程执行的动作和数据引用。 堆 :由JVM分配的,用于存储对象等数据的区域。 常量池constant pool :在堆中分配出来的一块存储区域,用于存储显式 的Strin...
分类:
其他好文 时间:
2015-05-18 23:15:17
阅读次数:
336