Java常用类1
2022/2/11 22:13:07
本文主要是介绍Java常用类1,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Java常用类1
字符串相关的类
String(代表字符串)
理解String的不可变性
-
String是一个final类,代表不可变的字符序列(不可变性)
-
字符串是常量,用“”引起来。在创建后不能更改(不可继承)
-
String对象的字符串内容是存储在一个字符数组value[]中的(final char[] valve)
-
String实现了Serializable接口:表示字符串是支持序列化的
实现了Comparable接口:表示String可以比大小-
-
通过字面量赋值(不同于new),此时的字符串值是在字符串常量池中(不会右有两个相同的常量)
public static void main(String[] args) { String s1 = "abc";//字面量的定义方法 String s2 = "abc"; System.out.println(s1==s2);//比较s1和s2的地址是否相等 s1 = "hello";//当对字符串重新赋值时,要重写指定内存区赋值 System.out.println(s1); System.out.println(s2); System.out.println(s1==s2); System.out.println("====================================="); String s3 = "abc"; s3 += "def";//当对现有的字符串进行连接操作时,也要重写指定内存区赋值 System.out.println(s3); System.out.println(s2); System.out.println("====================================="); String s4 ="abc"; String s5 = s4.replace("a","m");//当调用String的replace方法修改,也要重写指定内存区赋值 System.out.println(s4); System.out.println(s5); }
String对象的创建
String的实例化
- 字面量定义
- new+构造器
public static void text2(){ //通过字面定义:此时的S1,S2的数据JavaEE声明在方法区的字符串常量池中 String s1 = "javaEE"; String s2 = "javaEE"; //通过new:此时的s3,s4保存的地址值,是在堆空间中开辟空间以后对应的地址值 String s3 = new String("javaEE"); String s4 = new String("javaEE"); System.out.println(s1==s2);//true System.out.println(s1==s3);//flase System.out.println(s1==s4);//flase System.out.println(s3==s4);//flase }
p1和p2的地址是一样的(”Tom“是字面量赋值)
注:String s = new String("abc")在内存中创建了2个对象
-
堆空间中new的
-
另一个char[]对应常量池中的"abc"
String的拼接
结论:
- 常量与常量的拼接结果在常量池
- 有变量参与,结果在堆中
- intern()方法,返回值在常量池中
public static void text3(){ String s1 = "javaEE"; String s2 = "hadoop"; String s3 = "javaEEhadoop"; String s4 = "javaEE"+"hadoop"; /*有变量参与在堆空间中*/ String s5 = s1+"hadoop"; String s6 ="javaEE"+s2; String s7 = s5.intern(); System.out.println(s3==s4); System.out.println(s3==s5); System.out.println(s3==s6); System.out.println(s5==s6); System.out.println(s7==s3); }
未完。。。
这篇关于Java常用类1的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-06-05做软件测试需要懂代码吗?
- 2024-06-0514-ShardingSphere的分布式主键实现
- 2024-06-03为什么以及如何要进行架构设计权衡?
- 2024-05-31全网首发第二弹!软考2024年5月《软件设计师》真题+解析+答案!(11-20题)
- 2024-05-31全网首发!软考2024年5月《软件设计师》真题+解析+答案!(21-30题)
- 2024-05-30【Java】百万数据excel导出功能如何实现
- 2024-05-30我们小公司,哪像华为一样,用得上IPD(集成产品开发)?
- 2024-05-30java excel上传--poi
- 2024-05-30安装笔记本应用商店的pycharm,再安排pandas等模块,说是没有打包工具?
- 2024-05-29java11新特性