1. 包装类
基本数据类型 --> 包装类
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean
自动拆装箱:
1.自动装箱 : 基本 --> 引用
2.自动拆箱 : 引用 --> 基本
-
基本类型与包装类对象比较问题 :
1.两个int类型比较,值相等就相等。 2.两个new Integer比较,肯定不相等,new就新的地址。 3.int与Integer|new Integer比较,只要值相等就相等,因为会先自动拆箱,再比值。 4.两个Integer比较,如果值 在[-128,127]之间返回缓冲区对象相等,否则返回new Integer不相等。
2. Math
static double abs(double a) 返回 double值的绝对值。
static double ceil(double a) 返回大于或等于参数且等于数学整数的最小值(最接近负无穷大) double 。
static double floor(double a) 返回小于或等于参数且等于数学整数的最大值(最接近正无穷大) double 。
static int max(int a, int b) 返回两个 int值中较大的 int 。
static int min(int a, int b) 返回两个 int值中较小的 int 。
static double pow(double a, double b) 返回第一个参数的值,该值是第二个参数的幂。
static double random() 返回带有正号的 double值,大于或等于 0.0且小于 1.0 。
static long round(double a) 返回与参数最接近的 long ,并将关系四舍五入为正无穷大。
3. 枚举
确定一种事物的所有可能|实例。
-
说明:
枚举是类,特殊的枚举类型,具有枚举类型特殊的约束。 定义枚举使用enum。 枚举类中的字段默认为当前枚举类型的实例,修饰符默认为public static final。 枚举类中可以根据需求定义成员,构造器... 枚举类中默认构造器私有化。 自定义的枚举类型默认隐式的继承自 java.lang.Enum->这是所有Java语言枚举类型的公共基类。
-
使用:
name() 枚举类字段名 ordinal() 获取枚举实例在枚举类中字段列表的序号,从开始 values() 获取当前枚举类型的所有实例 switch语句 在jdk1.5新增支持对枚举类型的数据的判断
4. 克隆
clone() 克隆,拷贝
来自Object类clone()方法
Cloneable接口 : 对象的类型要求实现Cloneable,才具有克隆的能力.
java.lang.CloneNotSupportedException : 抛出此异常表示已调用类Object中的clone方法来克隆对象,但该对象的类未实现Cloneable接口。
浅拷贝|浅克隆 : 当拷贝对象的时候,对象的属性如果为引用数据类型,属性所指向的对象不拷贝.
深拷贝|深克隆 : 当拷贝对象的时候,对象的属性如果为引用数据类型,属性所指向的对象也拷贝一份
建议: 当对象的属性是通过复杂的运算或者算法计算出来,在想要等到相同内容的对象时候可以使用clone克隆,提高效率.
-
方法重写的细节:
子类中的重写方法 父类中被重写的方法== 方法签名完全相等 返回值类型 : 基本数据类型要求完全相等 <=引用数据类型:重写方法的返回值类型<=被重写方法的返回值类型 >= 权限修饰符 : 重写方法的权限修饰符>=被重写方法的权限修饰符
5. 时间日期类型:
-
java8之前:
Date 类型
java.util包下的DateDate() 分配Date对象并对其进行初始化,使其表示分配时间,测量 Date到毫秒。 Date(long date) 分配 Date对象并初始化它以表示自标准基准时间(称为“纪元”)以来的指定毫秒数,即1970年1月1日00:00:00 GMT。 long getTime() 返回自此 Date对象表示的1970年1月1日00:00:00 GMT以来的毫秒数。 boolean after(Date when) 测试此日期是否在指定日期之后。 boolean before(Date when) 测试此日期是否在指定日期之前。 static Date from(Instant instant) 从 Instant对象获得 Date的实例。 Instant toInstant() 将此 Date对象转换为 Instant 。
-
DateFormat
DateFormat类应该用于格式化和解析日期字符串。 SimpleDateFormat是一个用于以区域设置敏感的方式格式化和解析日期的具体类。 它允许格式化(日期→文本),解析(文本→日期)和规范化。
-
java8新增时间日期API :
Date,SimpleDateFormat 线程不安全的。 JDK8当中提供的`LocalTime` 、` LocalDate` 、 `LocalDateTime`等类型,线程安全,使用简单灵活。