java学习笔记-String相关知识点
来源:互联网 发布:淘宝纸箱机器 编辑:程序博客网 时间:2024/06/14 18:45
- java的类成员变量,java会自动初始化,默认初始化类型的零值。局部变量必须显式初始化才能使用,否则编译器会报错。
- java对String的”+”运算符提供了特别支持,使用的是StringBuilder或StringBuffer的append()方法
- Arrays.copyOf(char []original,int newLength); 复制char数组的方法,复制original数组到一个新数组并返回新数组,newLength为新数组的长度,若newLength大于原数组长度,返回新数组多余部分填充空值,若小于则截断。
- 凡用字面量创建的字符串对象存储在虚拟机方法区的常量池中,如
String s = "abc"
。而通过new
创建的对象储存在java堆中。
public class TestString { public static void main(String[] args) { String str = "abcd"; //字符串常量,在编译期就确定了 String s = "d"; String str1 = "abc"+"d"; //多个字符串常量连接,结果也为字符串常量,在编译期确定 System.out.println(str1==str); //true String str2 = "abc"+new String("s"); //后部分在编译期不能确定,str2为在java堆新创建的对象 System.out.println(str==str2); //false String str3 = "abc"+s; //s引用在编译期仍不能确定,str3为在java堆新创建的对象 System.out.println(str==str3); //false //str.intern() String的intern方法:当String实例调用intern方法时, // 到常量池查找是否有该实例的常量,若有返回常量引用,若无,创建该实例常量并返回其引用。 String str4 = str.intern(); System.out.println(str==str4); //true,str指向字面量,两者指向常量池同一内存。 System.out.println(str2==str4); //false ,str2的对象在java堆上,不在常量池 System.out.println(str3==str4); //false ,str3同样在java堆,不相等 //String类的不可变性带来的结果就是,每一次"+"连接操作都会生成一个String对象, // 具体在java堆生成还是常量池生成取决于是否能在编译期确定,如str在常量池生成,str2、str3在java堆中 String str5 = "welcome "+"to "+"java "+"world"; //除4个直接量对象和最终的str5对象,还生成了 //"welcomet to"、"welcome to java "2个临时对象。因此,存在多个字符串连接时使用StringBuilder //补充 //基本数据类型常量及经final修饰过的字段也能在编译期确定 String string = "abc1"; String str6 = "abc"+1; System.out.println(string==str6); //true,1为基本数据类型,可在编译期确定 final String d = "d"; String str7 = "abc"+d; System.out.println(str==str7); //true,final修饰的变量在编译期可确定 }}
0 0
- java学习笔记-String相关知识点
- String相关知识点的学习
- 【Java学习笔记】String相关语句
- string相关学习笔记
- 【学习笔记】View相关知识点
- java学习笔记 反射reflection相关知识点小结
- java中string的相关知识点
- Java学习知识点笔记
- java String date,相关笔记
- String相关知识点总结
- String相关知识点
- Hibernate学习笔记之相关知识点整理
- Java笔记(1)-数据类型的相关知识点
- Java学习笔记:String
- Java String学习笔记
- java学习笔记-常见知识点
- Java基础知识点学习笔记
- Java基础知识点学习笔记
- 开源软件在商业世界中的十大最佳应用领域
- Leetcode 409. Longest Palindrome (Easy) (cpp)
- 存储过程语法(MySQL)
- C语言代码3(打印乘法表)
- mysql字段类型decimal和int类型运算,结果精度问题
- java学习笔记-String相关知识点
- [从头学绘画] 第22节 十二式易筋经
- 关于const的使用
- linux yum 命令
- Pioneer 3-AT 中文数据表
- win10优化
- Py第九问 python 变量命名规范
- NOIP2016模拟-1014T2 Rabbit Number
- 异常没有输出到日志