一,枚举
1,枚举的简介
指由一组固定的常量组成的类型
2.枚举的语法
枚举类型类的定义
访问修饰符 enum 类名{
//枚举类型的值
}
public enum Genders{
Male,Female
}
枚举类型的测试类成员变量引用
public class Student{
private Genders sex;
}
3、代码示例
类的代码:
public enum Week {
/**
* 日期
*/
MON,TUE,WED,THU,FRI,SAT,SUN
}
4、枚举的优势
- 枚举可以使代码易于维护,保证类型安全。
- 枚举易于输入,使用枚举赋值,只需要输入枚举名,然后输入点操作符就能将所有的值显示出来。
- 枚举使代码更清晰,允许使用描述性的名称表示数据,使用时直观方便。
二、包装类
1、包装类简介
Java语言是面向对象的,但是Java中的基本数据类型却不是面向对象的,这在实际开发中存在很多的不便。为了解决这个不足,在设计类时为每个基本数据类型设计了一个对应的类,称为包装类。
2、包装类的作用
提供了一系列实用的属性和方法,方便对象的操作。集合不允许存放基本数据类型数据,存放数字时,要用包装类型。
3、包装类与基本数据类型的对应关系
三,简述装箱与拆箱
1.装箱
基本类型转换为包装类的对象
Integer intObj = 5; //装箱
2.拆箱
基本类型转换为包装类的对象
Integer intObj = 5; //装箱
3.包装类的特点
- 所有包装类都是final类型,不能创建它们的子类
- Java 5.0版本以后,程序员不需要编码实现基本数据类型和包装类之间的转换,编译器会自动完成。
- JDK1.5后,允许基本数据类型和包装类型进行混合数学运算。
- 包装类并不是用来取代基本数据类型的,在基本数据类型需要用对象表示时使用
“==”和equals()有什么区别
==:判断两个字符串在内存中的地址,即判断是否是同一个字符串对象
equals():检查组成字符串内容的字符是否完全一致
StringBuffer的特点
- StringBuffer类位于java.util包中,是String类的增强类。
- 对字符串频繁修改时,使用StringBuffer类可以大大提高程序执行效率
String类、StringBuffer类和StringBuilder类的区别
Q:String是不可变对象,在每次对String类型进行改变时其实都等同于生成了一个新的String对象,然后再指向新的String对象。
A:经常改变内容的字符串最好不要使用String,因为每次生成对象都会对系统性能产生影响。 Q:StringBuffer是可变的字符串,在每次对StringBuffer对象进行改变时,会对StringBuffer对象本身进行操作,而不是生成新的对象。
A:字符串经常改变的情况可使用StringBuffer,执行效率要比String类高。
Q:JDK5.0后提供了StringBuilder,等价StringBuffer 。
A:区别:StringBuffer类是线程安全的, StringBuilder类是单线程,不提供同步,理论上效率更高