字符串概述
来源:互联网 发布:安全期计算器软件 编辑:程序博客网 时间:2024/06/05 14:58
String Str = “jack”创建字符串的时候,jvm首先会检查字符串常量池中是否存在该字符串的对象,如果已经存在,那么就不会在字符串常量池中再创建,直接返回该字符串在字符串常量池中的内存地址。如果该字符串还不存在字符串常量池中,那么就会在字符串常量池中先创建该字符串的对象,然后再返回。
String Str = “jack”这个语句会先检查字符串常量池是否存放这个”jack1”这个字符串对象,如果没有存在,那么就会在字符串常量池中创建这个字符串对象,如果存在直接返回该字符串的内存地址值。
new String(“jack”)jvm首先会检查字符串常量池中是否存在"jack"字符串,如果已经存在,那么就不会在字符串常量池中再创建,如果还不存在,那么就会在字符串常量池中先创建该字符串的对象,然后还会在堆内存中再创建一份字符串对象,把字符串常量池的“jack”字符串内容拷贝至堆内存中的字符串对象,然后返回堆内存中字符串对象的内存地址。
String str3 = new String(“jack”) 该语句会创建两个对象,首先会先检查字符串常量池中存不存在jack这个字符串对象,如果不存在就会创建,如果存在就返回内存地址值。创建了出来之后,new String这个语句就会在堆内存中开辟一个字符串对象。总共两个对象。
"=="用于比较引用数据类型数据的时候比较的是两个对象的内存地址,equals方法默认情况下比较也是两个对象 的内存地址。
字符串的内容一旦发生了变化,那么马上会创建一个新 的对象。
注意: 字符串的内容不适宜频繁修改,因为一旦修改马上就会创建一个新的对象。
如果需要频繁修改字符串 的内容,建议使用字符串缓冲类(StringBuffer)。
使用Stringbuffer无参的构造函数创建一个对象时,默认的初始容量是?如果长度不够使用了,自动增长多少倍?
StringBuffer 底层是依赖了一个字符数组才能存储字符数据 的,该字符串数组默认 的初始容量是16, 如果字符数组的长度不够使用 死,自动增长1倍。
字符串的比较规则:
情况一: 对应位置有不同的字符出现, 就比较的就是对应位置不同的字符。
情况 二:对应位置上的字符都一样,比较的就是字符串的长度。
Integer.parseInt(datas[i])); // 字符串转int类型数据是需要使用Integer.parseInt()
阅读全文
0 0
- 字符串概述
- 截断字符串概述
- Java字符串概述
- 字符串排序算法概述
- 1.字符串概述-String
- 字符串与编码 汇总 概述
- boost 字符串和文本处理库概述
- 字符串的概述及常用方法
- day_01_概述、字符串和字符编码
- 黑马程序员_字符串数据的操作概述
- day_01_概述、名字空间、结构体、枚举、字符串
- 概述
- 概述
- 概述
- 概述
- 概述
- 概述
- 概述
- SpringMVC + JSONP的跨域请求
- 小仙女大梦想
- HDU 6156 Palindrome Function 经典数位DP
- C#的float,double和decimal
- Git笔记
- 字符串概述
- 学习笔记TF048:TensorFlow 系统架构、设计理念、编程模型、API、作用域、批标准化、神经元函数优化
- 在linux上安装 elasticsearch-php
- PyQ4标准输入框——QInputDialog(一)
- Oracle SQL性能优化
- 容斥原理(有求区间(1-r)里面跟n互质的个数的高效方面模板)
- 数据结构导论之第二遍
- 网页查看github代码利器,Octotree
- 信息安全原理与实践学习