自动拆箱和装箱
拆箱原理:把类类型拆开,变成基本数据类型
即把对象中的数据拆出来变成基本数据类型,
装箱原理:把基本数据类型的数据封装成对象数据
比如:
方式一:
Integer i=new Integer(3);
//把基本数据类型的3装箱成对象i
int ii=i.intvalue();
//把i中的数据3转换成基本数据类型的ii
方式二:
Integer k=3;//装箱
int kk=k;//拆箱
方式一的写法在任意版本都能使用
方式二的写法只能在jdk1.5及以上的版本才能使用
此方式是属于自动装箱和拆箱
增强for循环
语法:
for(数据类型 变量名: 数组名或者集合名){
//循环体代码块
}
说明:
从数组或者集合中去除第一个数据,赋值给变量名
然后从循环体代码块中使用次变量名中的数据(变量名作用范围仅在循环体范围内),执行完循环体,后再次从数组或者结合中去除第二个数据,赋值给变量名,然后在循环体中使用变量名中的数据
以此往复,知道把数组中的数据都取出,循环执行完毕
注意
变量名所对应的数据类型必须和数组或集合中的数据类型相同,
可变参数
-用…来定义
-其本质是一个数组
-可以传入任意多个的参数
-可变参数只能放在方法参数的最后一个位置(遍历使用增强for循环)
静态导入
-静态导入格式: import static 包名.类名.静态属性或者静态方法名
-提高了加载效率,静态导入的变量随着类的加载而加载到方法区
-降低了可读性,慎用,程序员不知道静态导入的属性是什么用途
-建议使用类名打点调用静态的方法和熟悉
枚举: enum
当取值为几个(有限个)固定的值,可以使用枚举类型
枚举类型是一个数据类型
普通的枚举:
public enum RequestMethod{
GET,POST,DELETE,PUT
}
public enum Week{
Monday,Tuesday,Wednesday,Thursday,Firday,Saturday,Sunday
}
枚举也可以实现接口,但是不能进行继承,枚举也可以包含抽象方法
所有自定义的枚举类型都默认继承java.lang.Enum类
String name(); 返回当前枚举类型的字符串
int ordinal(); 返回当前枚举类型在枚举类中的位置
反射:
什么是反射:
java中提供的一套类库,通过这套类库可以做:
运行时动态获取类中的信息
运行时动态调用构造函数创建对象
运行时动态访问/调用对象的方法和属性
这种运行期间动态获取类中的信息(属性,方法,包,注解)以及动态调用对象的方法和属性的功能称之为java的语言但是机制,通俗的理解就是在运行期间对类的内容进行操作
Class类:
要想使用反射们就要获取类中的所有信息(属性,方法)
在java中有一个特殊的类类类型,是Class,
此类型的对象存储的是某个类中的信息
比如:
Class clazz1=Class.forName("cn.tedu.Student");
cla