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-11-26消息中间件源码剖析教程
- 2024-11-26JAVA语音识别项目资料的收集与应用
- 2024-11-26Java语音识别项目资料:入门级教程与实战指南
- 2024-11-26SpringAI:Java 开发的智能新利器
- 2024-11-26Java云原生资料:新手入门教程与实战指南
- 2024-11-26JAVA云原生资料入门教程
- 2024-11-26Mybatis官方生成器资料详解与应用教程
- 2024-11-26Mybatis一级缓存资料详解与实战教程
- 2024-11-26Mybatis一级缓存资料详解:新手快速入门
- 2024-11-26SpringBoot3+JDK17搭建后端资料详尽教程