常用类
Arrays: 操作数组的工具类
静态工厂
1.deepToSting(): 深层打印指导数组内容
2.deepEquals():深层比较
3.copeOf static int[] copyOf(int[] original, int newLength)
使用零复制指定的数组,截断或填充(如有必要),以使副本具有指定的长度。
4.arraycopy static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
将定源数组中的数组从指定位置开始复制到目标数组的指定位置。目的地新数组由自己指定
5.copyOfRange static int[] copyOfRange(int[] original, int from, int to)
将指定数组的指定范围复制到新数组中。
String StringBuffer StringBuilder
String 不可变长的字符序列 StringBuffer 可变长的字符序列|线程安全的|效率较低 StringBuilder 可变长的字符序列|线程不安全,相对效率高
一个可变的字符序列。 此类提供与StringBuffer兼容的API,继承相同的父类AbstractStringBuilder,但不保证同步|线程不安全。 此类设计用作StringBuffer替代品,用于单个线程使用字符串缓冲区的位置(通常情况下)大量操作字符串。 在可能的情况下,建议使用此类优先于StringBuffer因为在大多数实现中它会更快。] 执行效率: StringBuilder > StringBuffer > String
jdk1.8之前String底层是char [ ]
jdk11之后是byte[ ]
String , StringBuilder , StringBuffer 区别: 共同点: 都是字符序列,表示子串 底层都是字节数组(老版本jdk字符数组)
区别 : 1.String 不可变长字符序列 StringBuffer|StringBuilder 可变长字符序列 2.执行效率: StringBuilder > StringBuffer > String 3.同步方面: StringBuilder 线程不安全 StringBuffer 同步
包装类
基本数据类型 --> 包装类 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不相等 基本类型与包装类对象比较问题 : 1.两个int类型比较,值相等就相等 2.两个new Integer比较,肯定不相等,new就新的地址 3.int与Integer|new Integer比较,只要值相等就相等,因为会先自动拆箱,再比值 4.两个Integer比较,如果值 在[-128,127]之间返回缓冲区对象相等,否则返回new Integer不相等 //自动装箱 Integer in = i; //Integer.valueOf(i) //自动拆箱 int i2 = in; //in.intValue()
Math
Math 数学相关类
静态工厂
类math包含用于执行基本数字运算的方法,列如基本指数对数平方根和三角函数
枚举:
1.枚举是类,特殊的枚举类型,具有枚举类型特殊的约束 2.定义枚举enum 3.枚举:确定事务的所有可能|实例 4.枚举类的字段默认为public static final 5.枚举类中可以根据需求定义成员,构造器,成员方法 6.自定义枚举类型默认继承自 java.lang.Enum->这是所有Java语言枚举类型的公共基类
public static void main(String[] args) { //枚举类字段名 System.out.println(EnumTest.DAY1); System.out.println(EnumTest.DAY1.name()); //调用成员方法 System.out.println(EnumTest.DAY1.getDay()); //获取枚举实例在枚举类中字段列表的序号,从0开始 System.out.println(EnumTest.DAY1.ordinal()); //获得枚举类型所有实例 System.out.println(Arrays.toString(EnumTest.values())); }
clone
1.clone() 克隆,拷贝 来自Object类的clone()方法 2.方法重写的细节,子类中重写的方法 父类中被重写的方法
-
java.lang.CloneNotSupportedException : 抛出此异常表示已调用类Object中的clone方法来克隆对象,但该对象的类未实现Cloneable接口。
-
方法签名完全相同 2.<= 返回值类型
3.=权限修饰符
4.被clone的类需要实现Cloneable接口 5.浅拷贝|浅克隆:当拷贝对象的时候,对象的属性如果为引用数据类型,属性所指向的对象不 拷贝 6.深拷贝|深克隆:当拷贝对象的时候,对象的属性如果为引用数据类型,属性所指向的对象也 拷贝一份
-
日期类
java8新增时间日期API : Date,SimpleDateFormat 线程不安全的 JDK8当中提供的LocalTime
、LocalDate
、 LocalDateTime
等类型,线程安全,使用简单灵活