理解Java中的String

本文深入探讨了Java中String类型的特性,包括String不是基本类型而是Object,默认值为null;String对象的不可变性及其带来的内存使用特点;通过new关键字创建String实例与常量池中的字符串处理方式的区别;以及intern()方法如何帮助优化内存使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

1.String不是8种基本类型中的一种,String是Object,其默认值是null

2.String不可变,是final的,当对 String的对象进行拼接等操作的时候都是生成的新的String对象

3.new String( )或者new String(”")是创建了一个空字符串,其值并不是null

4.常量池中的字符串常量解析期间确定,且只有一份拷贝;new String( )出来的字符串不是常量,不放在常量池中,有自己的地址空间

5.String的intern( )方法扩充常量池:当一个String实例调用intern方法时,如果常量池中有相同unicode的字符串常量,则返回其引用;如果没有,增加一个unicode为该实例的String常量, 并返回其引用

6.一个实例:

String str0 = “flynewton”;
String str1 = “flynewton”;
String str2 = “fly” + “newton”;
String str3 = new String(”flynewton”);

System.out.println(str0 == str1);  //true
System.out.println(str0 == str2);  //true
System.out.println(str0 == str3);  //false

str3.intern();
System.out.println(str0 == str3);  //false
System.out.println(str0 == str3.intern());  //true

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值