欢迎各位点赞👍 评论**✍收藏⭐**
目录
[1. 包装类](#1. 包装类)
[1.1 基本类型对应的包装类](#1.1 基本类型对应的包装类)
[1.2 装箱和拆箱](#1.2 装箱和拆箱)
[1.3 自动装箱和拆箱](#1.3 自动装箱和拆箱)
[2. 泛型](#2. 泛型)
[2.1 泛型的写法](#2.1 泛型的写法)
[2.2 泛型的上界](#2.2 泛型的上界)
[3. 小结](#3. 小结)
1. 包装类
Java 中有一句话,万物皆可以为类,同样整型 int a = 10 ; 这个时类吗?显然它为整型,并不属于对象的范畴,那要把整型转为对象时,就要用到包装类了
1.1 基本类型对应的包装类
只有 char 类型 和 int 类型 的包装类为 Character 和 Integer ,其他的都为自身首字母大写
1.2 装箱和拆箱
java
public class Test {
public static void main(String[] args) {
//装箱操作-把整型数据(int)转换为 Integer 类型对象
Integer a = Integer.valueOf(10);
//装箱操作- Integer 类型对象 a 转换为 整型(int)
int b = a.intValue();
}
}
1.3 自动装箱和拆箱
java
public class Test {
public static void main(String[] args) {
int a = 10;
Integer b = 20;
//可直接赋值,编译器自动转化
Integer A = a;
int B = b;
}
}
自动装箱和拆箱是编译器自动完成的,不需要手动去完成
下面有一道面试题
java
public class Test {
public static void main(String[] args) {
Integer a = 127;
Integer b = 127;
Integer A = 128;
Integer B = 128;
System.out.println(a==b);
System.out.println(A==B);
}
}
这里可以看源码分析
因为 整型 的数据范围是 [-128 ~ 127] ,根据源码,如果在这个范围,就返回相同的对象地址,如果超过这个范围,就返回一个创建新的对象,所以,上述结果不一样
2. 泛型
泛型:就是适用于许多类型,对类型实现了参数化
泛型的主要作用:就是指定当前容器要储存什么的类型,需要什么类型,就传入什么类型
2.1 泛型的写法
java
class 泛型类名<参数列表> {
//.....
}
class 泛型类名<参数列表> extends 继承类 {
//.....
}
举例:存储前 10 位学生的成绩
java
class Score<T> {
public Object[] array = new Object[10];
public T getPos(int pos) {
return (T) this.array[pos];
}
public void setPos(int pos,T val) {
this.array[pos] = val;
}
}
public class StudentScore {
public static void main(String[] args) {
//指定泛型的类型为整型
Score<Integer> score = new Score<>();
score.setPos(0,90);
score.setPos(1,70);
score.setPos(2,90);
System.out.println(score.getPos(2));
}
}
2.2 泛型的上界
在定义泛型时,可以加入一些特定的约束
java
class 泛型名称<类型形参 extends 类型边界> {
//.......
}
比如:
java
class MyArray<T extends Number> {
//.......
}
这里的 T 只接受 Number类的子类,如果为其他的,则报错
3. 小结
以上就是对泛型和包装类的了解,具体还需宝子们去实践,如果觉得该博客对你有用的话,希望一键三连,点个关注不迷路,谢谢支持 !