1、栈、堆1.寄存器:最快的存储区, 由编译器根据需求进行分配,我们在程序中无法控制.2. 栈:存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在堆(new 出来的对象)或者常量池中(字符串常量对象存放在常量池中。)3. 堆:存放所有new出来的对象。4.静态域:存放静态成员(s...
分类:
编程语言 时间:
2015-04-21 09:25:05
阅读次数:
163
如果要向运行时常量池中添加内容,最简单的做法就是使用 String.intern()这个 Native 方法。该方法的作用是:如果池中已经包含一个等于此 String 对象的字符串,则返回代表池中这个字符串的String 对象;否则,将此 String 对象包含的字符串添加到常量池中,并且返回此 String 对象的引用。由于常量池分配在方法区内,我们可以通过-XX:PermSize 和-XX:Ma...
分类:
编程语言 时间:
2015-04-14 19:44:21
阅读次数:
153
如何定义字符串对象?String s = "abc";只要是双引号引起的数据都是字符串对象。特点:字符串一旦被初始化,就不可以被改变,存放在方法区中的常量池中。因为String类是final修饰的----------------------------------------------------...
分类:
编程语言 时间:
2015-04-14 16:29:36
阅读次数:
155
Java虚拟机内存原型寄存器:在程序中无法控制栈:存放基本类型的数据和对象的引用,但是对象本身不存放在栈中,而是存放在堆中堆:存放用new产生的数据静态域:存放在对象中用static定义的静态成员常量池:存放变量非RAM存储:硬盘等永久存储空间Java内存分配中的栈栈的基本单位是帧(或栈帧):每当一...
分类:
编程语言 时间:
2015-04-14 16:20:48
阅读次数:
131
栈:存储基本的数据类型,和类的实例的引用(内存地址)。规则:first in,last out(先存进后取出)。局部变量在调用栈中分配内存,当方法执行完成后,这些变量就被抛弃了。堆:存放动态产生的数据,比如 new出来的对象,而且只保存对象的成员变量。常量池:例:String str = "abc"...
分类:
编程语言 时间:
2015-04-11 13:07:43
阅读次数:
146
java中的常量池技术,是为了方便快捷地创建某些对象而出现的,当需要一个对象时,就可以从池中取一个出来(如果池中没有则创建一个),则在需要重复创建相等变量时节省了很多时间。常量池其实也就是一个内存空间,不同于使用new关键字创建的对象所在的堆空间。 String类也是java中用得多的类,同样为了....
分类:
编程语言 时间:
2015-04-09 23:44:00
阅读次数:
218
(1)String ok1=new String(“ok”);(2)String ok2=“ok”;画出这两个字符串的内存示意图: String ok1=new String(“ok”)。首先会在堆内存申请一块内存存储字符串ok,ok1指向其内存块对象。同时还会检查字符串常量池中是否含有ok字符串,...
分类:
其他好文 时间:
2015-04-07 13:23:28
阅读次数:
117
1.寄存器:最快的存储区,由编译器根据需求进行分配,我们在程序中无法控制.2.栈:存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在堆(new出来的对象)或者常量池中(字符串常量对象存放在常量池中。)3.堆:存放所有new出来的对象。4.静态域:存放静态成员(static定义的)...
分类:
编程语言 时间:
2015-04-04 06:38:46
阅读次数:
204
1.寄存器:最快的存储区, 由编译器根据需求进行分配,我们在程序中无法控制.2. 栈:存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在堆(new 出来的对象)或者常量池中(字符串常量对象存放在常量池中。)3. 堆:存放所有new出来的对象。4. 静态域:存放静态成员(stati...
分类:
编程语言 时间:
2015-04-03 13:22:22
阅读次数:
125
string是java中的字符串。String类是不可变的,对String类的任何改变,都是返回一个新的String类对象。下面介绍java中的String与常量池。1. 首先String不属于8种基本数据类型,String是一个对象。因为对象的默认值是null,所以String的默认值也是null...
分类:
编程语言 时间:
2015-03-31 19:47:02
阅读次数:
118