java释放string_Java---String总结

JAVA中的String类,不管是日常开发,或者是面试,都是常用的类之一,所以写在这里也为为了总结,方便以后的查阅与复习.

特点:1.Java中所有的类中,String是使用最多的一个类

2.是一个final类,不允许被继承

3.表示字符串常量;

4.它们的值在创建之后不能改变。

5.因为 String 对象是不可变的,所以可以共享它们。

内存分析:

栈(Stack) :存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在堆(new 出来的对象)或者常量池中(字符串常量对象存放在常量池中),就是说

栈中放对象名或者基本数据类型.

堆(heap):存放所有new出来的具体对象。

常量池(constant pool):在堆中分配出来的一块存储区域,存放储显式的String常量和基本类型常量(float、int等)。另外,可以存储不经常改变的东西(public static final)。常量池中的数据可以共享。

字符串池是堆中的一个特殊的区域,专用用来存储String类型的字符串,每次使用字符串的字面值时,例如 String s=“hello”;,先去字符串池中查找,如果找到,返回这个对象的引用,如果找不到,则在池中创建一个新的字符串,并返回此引用。

静态存储:存放静态成员(static定义的)。

堆和栈的区别:

栈用的是一级缓存,调用完立即释放,系统自动控制.

堆用的是二级缓存,由垃圾回收机制来管理.

举个例子:

String a="aa";创建两个对象,一个是

你可能感兴趣的:(java释放string)