Java中的包装类(Interage和String)
包装类的分类
包装类的特点
包装类有了类的属性就可以调用类中的方法,更有了类的特点,还可以进行类型的互相转换,更方便我们使用。
包装类和基本数据类型的转换
- jdk5前的手动装箱和拆箱方式,装箱:把基本数据类型--->包装类型。反之拆箱:包装类型--->基本数据类型
- jdk5以后就是自动拆箱和装箱
- 自动装箱调用的是底层的valueOf方法
Integer 和 String 转换
Integer的创建机制
-
第一
1 2 3 4 5 6 7 8 9 | public class Integer_Mechanism { public static void main(String[] args) { Integer integer = new Integer( 1 ); Integer integer1 = new Integer( 1 ); System.out.println(integer == integer1); //false //解释:因为==是判断引用数据类型是判断是不是同一个对象,因为是 new 的所以不是同一个对象 } } |
-
第二种
public class Integer_Mechanism {
public static void main(String[] args) {
/**
* 底层源码:
* public static Integer valueOf(int i) {
* if (i >= IntegerCache.low && i <= IntegerCache.high)
* return IntegerCache.cache[i + (-IntegerCache.low)];
* return new Integer(i);
* }
*
* 解释:判断i的范围是不是在-127 ~ 128之间,如果在就创建对象
* 很显然下面的a和m都在这个范围, 并没有new一个对象,所以他们是同一个对象
* 如果不是在-127 ~ 128这个范围就new 一个对象
*/
Integer a = 1;//底层 Integer.valueOf(1);
Integer m = 1;//底层 Integer.valueOf(1);
System.out.println(a == m);//true
Integer a1 = 128;//底层 Integer.valueOf(128);
Integer m1 = 128;//底层 Integer.valueOf(128);
System.out.println(a1 == m1);flase
}
}
-
第三种
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | public class Intager_ { public static void main(String[] args) { //主要只要有基本数据类型就是判断值是否相等 Integer a = 128 ; int i = 128 ; System.out.println(a == i); //T //主要只要有基本数据类型就是判断值是否相等 Integer a1 = 128 ; int i1 = 128 ; System.out.println(a1== i1); //T } } |
String
- String 是 final 类,不能被其他的类继承
- value 是一个 final 类型, 不可以修改(需要功力):即 value 不能指向新的地址,但是单个字符内容是可以变化
创建String 对象的两种方式
区别
字符串的特性
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器