首页
技术小册
AIGC
面试刷题
技术文章
MAGENTO
云计算
视频课程
源码下载
PDF书籍
「涨薪秘籍」
登录
注册
第一章:String 类
1.1 概述
1.2 字面量的定义方式
1.3 String 的特点
1.4 String 的内存示意图
1.5 构造 String 对象
1.6 字符串拼接问题
1.7 字符串对象的比较
1.8 空字符串的比较
1.9 字符串的常用方法
1.10 常见正则表达式
第二章:StringBuilder 类
2.1 概述
2.2 常用方法
第三章:系统相关类
3.1 System 类
3.2 Runtime 类
第四章:数学相关的类
4.1 Math 类
4.2 大数运算类
第五章:数组的相关操作
5.1 数组的算法升华
5.2 数组工具类
第六章:日期时间API
6.1.1 概述
6.1.2 本地日期时间
6.2.3 指定时区日期时间 ZonedDateTime
6.2.4 持续日期/时间 Period 和 Duration
6.2.5 日期时间格式化 DateTimeFormat
第七章:字符编码的发展
7.1 ASCII 码
7.2 OEM 字符集的诞生
7.3 多字节字符集(MBCS)和中文字符集
7.4 ANSI 标准、国家标准以及 ISO 标准
7.5 Unicode 的出现
当前位置:
首页>>
技术小册>>
Java语言基础9-常用API和常见算法
小册名称:Java语言基础9-常用API和常见算法
① 字符串 String 类型本身是 final 修饰的,意味着我们不能继承 String。 ② 字符串的对象也是不可变对象,意味着一旦进行修改,就会产生新的对象。 注意:如果程序中涉及到了大量的字符串的修改操作,那么此时的内存消耗比较高,可能需要考虑使用 StringBuilder 或 StringBuffer 的可变字符序列。 ③ String 对象内部是用字符数组保存的。 JDK 9 之前是用 char[] 数组保存的,JDK 9 之后时用 byte[] 数组保存的。 例如:下面的代码是等价的: ```bash String str = "abc"; ``` ```bash char[] chs= {'a','b','c'}; String str = new String(chs); ``` - ④ String 类中的 char[] values 数组也是用 final 修饰的,意味着这个数组不可变,又因为是用 private 修饰的,意味着外界不能直接操作它。String 类提供的所有方法都是用新对象来表示修改后的内容的,保证了 String 对象的不可变。 - ⑤ 因为 String 对象设计为不可变,所以 String 有常量池来保存很多常量对象。 - 常量池在方法区。 - 常量池的细致划分: - JDK 6 及之前:方法区。 - JDK 7:堆。 - JDK 8:元空间。 ```bash String s1 = "abc"; String s2 = "abc"; System.out.println(s1 == s2); //true // 内存中只有一个"abc"对象被创建,同时被s1和s2所共享 ```
上一篇:
1.2 字面量的定义方式
下一篇:
1.4 String 的内存示意图
该分类下的相关小册推荐:
Mybatis合辑1-Mybatis基础入门
Java性能调优实战
Java语言基础1-基础知识
深入拆解 Java 虚拟机
SpringBoot合辑-初级篇
Java语言基础8-Java多线程
Mybatis合辑3-Mybatis动态SQL
Java高并发秒杀入门与实战
Java必知必会-Maven高级
Java语言基础13-类的加载和反射
Java语言基础6-面向对象高级
SpringBoot合辑-高级篇