哈 偶尔复习,查漏补缺。 不可变对象 不可变对象常用在 参数共享/参数传递 上,好处很多,一是可以使用字符串池来节省空间,二是该对象可以安全地共享/传递,不会造成误修改问题。 1. numbers 2. string 3. tuple 3. frozenset a. 问题 在使用 作为重复运算符时, ...
分类:
编程语言 时间:
2018-06-03 17:31:29
阅读次数:
182
字符串常量池:字符串常量池在方法区中 为了优化空间,为了减少在JVM中创建的字符串的数量,字符串类维护了一个字符串池,每当代码创建字符串常量时,JVM会首先检查字符串常量池。如果字符串已经存在池中,就返回池中的实例引用。如果字符串不在池中,就会实例化一个字符串并放到池中。Java能够进行这样的优化是 ...
分类:
编程语言 时间:
2018-04-10 21:48:23
阅读次数:
247
转载自:http://www.cnblogs.com/ydpvictor/archive/2012/09/09/2677260.html String str=new String("abc"); 紧接着这段代码之后的往往是这个问题,那就是这行代码究竟创建了几个String对象呢? 相信大家对这道题 ...
分类:
其他好文 时间:
2018-03-30 17:25:21
阅读次数:
175
如上例所述,变量a,b和它们的值10,20都是存在栈里面,声明的所以String类型的引用也都是存在栈里。而字符串abc是存在字符串常量池中,new出来的String对象则是存在堆里。 上面这行代码被执行的时候,JVM先到字符串池中查找,看是否已经存在值为”abc”的对象,如果存在,则不再创建新的对 ...
分类:
编程语言 时间:
2018-03-21 20:02:52
阅读次数:
172
1. String的两个构造函数 2. new String中创建几个String对象? 1)创建两个String对象 内存模型如下: 2)创建一个String对象 内存模型如下: 3. String的intern方法 String类私有地维护着一个初始为空的字符串池,当调用intern方法时: 1 ...
分类:
编程语言 时间:
2018-01-16 13:53:45
阅读次数:
175
出自 http://www.cnblogs.com/fangfuhai/p/5500065.html 在工作中,String类是我们使用频率非常高的一种对象类型。JVM为了提升性能和减少内存开销,避免字符串的重复创建,其维护了一块特殊的内存空间,这就是我们今天要讨论的核心,即字符串池(String ...
分类:
编程语言 时间:
2017-07-19 14:20:38
阅读次数:
101
问题:判断一个字符串s是否为空字符串 “” 错误方法:s!=“”或s==“” 字符串s为空字符串时,s!=“”还是返回true ==与equals的区别 结论:字符串是对象类型,不能用==判断是否相等 equals()比较的是对象的内容(区分字母的大小写格式),但是如果使用“==”比较两个对象时,比 ...
分类:
编程语言 时间:
2017-06-20 17:54:28
阅读次数:
134
--reference Java Heap Memory vs Stack Memory Difference 在数据结构中,堆和栈可以说是两种最基础的数据结构,而Java中的栈内存空间和堆内存空间有什么异同,以及和数据结构中的堆栈有何关系? 一、Java 堆存储空间 堆内存(堆存储空间)会在Jav ...
分类:
编程语言 时间:
2017-05-29 09:54:39
阅读次数:
173
创建字符串有两种方式:两种内存区域(字符串池,堆)1." " 引号创建的字符串在字符串池中2.new,new创建字符串时首先查看池中是否有相同值的字符串,如果有,则拷贝一份到堆中,然后返回堆中的地址;如果池中没有,则在堆中创建一份,然后返回堆中的地址(注意,此时不需要从堆中复制到池中,否则导致浪费池 ...
分类:
其他好文 时间:
2017-05-23 10:15:01
阅读次数:
173
intern public String intern() 返回字符串对象的规范化表示形式。 一个初始时为空的字符串池,它由类 String 私有地维护。 当调用 intern 方法时,如果池已经包含一个等于此 String 对象的字符串(该对象由 equals(Object) 方法确定),则返回池 ...
分类:
其他好文 时间:
2017-05-09 14:52:45
阅读次数:
183