JavaSE学习:第二十三章、String类
2022/3/20 14:27:48
本文主要是介绍JavaSE学习:第二十三章、String类,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1、认识:
1、String 对象用于保存字符串,也就是一组字符序列。
2、字符串的字符使用Unicode编码,一个字符占两个字节。
3、String有很多构造器,构造器重载。
4、String类实现了Serializable接口【可以串行化:可以在网络传输】。
Comparable接口【可以比较大小】
5、String是finall类,不可被继承。
6、String有属性 private final char value[]; 用于存放字符串内容。
7、value是一个final类型,表示不可以修改【即value不能指向新的地址,但是字符内容可变】
2、string创建方法:
方法一:
String s = "hsf";
方法二:
String s2 = new String("hsf");
区别:
方法一:先从常量池看是否有有"hsf"数据,如果有直接指向,没有则重新创建,然后指向。s最终返回的是常量池的地址空间。
方法二:先在堆中创建空间,里面有value属性,指向常量池;如果常量池有"hsf",直接指向,没有则创建,最终返回的是堆中的地址空间。
测试题1:
public class Test1 { public static void main(String[] args) { String a = "hsf"; String b = new String("hsf"); System.out.println(a.equals(b)); // t 比较内容是否相等 System.out.println(a == b); // f 比较地址值是否相等 System.out.println(a == b.intern()); // t System.out.println(b == b.intern()); // f } }
1、intern();方法:如果常量池中已经有一个等于String对象的字符串,则直接返回池中字符串地址;如果池中没有,则创建并返回此String对象引用。
2、intern():直接从池中返回地址。
测试题2:
public class Test1 { public static void main(String[] args) { Person p1 = new Person(); p1.name = "hsf"; Person p2 = new Person(); p2.name = "hsf"; System.out.println(p1.name.equals(p2.name)); // t System.out.println(p1.name == p2.name); // t:比较值 System.out.println(p1.name == "hsf"); // t } }
测试题三:
这篇关于JavaSE学习:第二十三章、String类的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 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新特性