包装类
byte(Byte)、short(Short)、int(Integer)、long(Long)
float(Float)、double(Double)、char(Character)、boolean(Boolean)
- java.lang包,不需要import
- 6个和数字相关的包装类,默认继承 Number
- 8个包装类都实现了 Serializable,Comparable
- 构造函数重载 – 包装类(int\String)
常用方法
intValue()、Integer.parseInt(“123”)、new Integer(“123”)
1.5版本以后,自动拆装包
1 | Integer i1 = 10; |
Math 类
1、java.lang包
2、构造方法私有
3、提供的属性、方法都是私有
4、常用方法
abs() random()
ceil() floor() rint() 返回值 double
round() 返回值 int
max(a,b)
pow(a,b) squrt(a) 返回值 double
1 | //0~9 之间的随机数 |
Random 类
1、java.util 需要 import 导包
2、没有任何继承关系,默认继承 Object
3、常用方法
nextInt()
nextInt(bound) //bound 不可以去负值 IllegalArgumentException
1 | Random r = new Random() |
UUID 类
1、java.util 需要 import 导包
2、没有任何继承关系,默认继承 Object
3、无参数构造方法
4、常用方法
1 | //32位随机元素,每个位置16进制数 作为ID Key 使用 |
BigInteger 类大整数,超出 long 范围
本质 动态数组
1、java.math 需要 import 导包
2、继承自 Number
3、BigInteger bi = new BigInteger(“123”) 常使用 String 参数构造函数
4、常用方法
add()
subtract()
multiply()
divide()
BigDecimal 类大小数,超出 double 范围
同 BigInteger
setScale(newScale, BigDecimal.ROUND_DOWN) //小数点后数据处理方式(位数,设置模式)
DecimalFormat
格式化数据,四舍五入
1、java.text 需要 import 导包
1 | DecimalFormat df = new DecimalFormat("000.###"); //0 必须存在 # 可有可无 |
System 类
1、java.lang包
2、不需要创建对象
3、常用属性、方法
out、in、err
gc()、exit(0)、currentTimeMillis():当前时间的毫秒值
Date 类
1、java.util 需要 import 导包
2、常用方法
before()、after()
setTime()、getTime() —> long
DateFormat 类
Date 日期格式化
1、java.text 需要 import 导包
2、抽象类,需要使用子类 SimpleDateFormat
1 | SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); |
Calendar 类
1、java.util 需要 import 导包
2、受保护的类,需要使用 getInstance
3、常用方法
1.1 版本
before()、after()
setTime()、getTime() —> Date
getTimeInMillis() —> time
getTimeZone() —> 时区
get()、set()
1 | Calendar calendar = Calendar.getInstance(); //系统当前时间的 calendar 对象 |
String 类
1、java.lang包 不需要导包
2、String sa = “abc”
String sa = new String(“abc”)
3、实现接口 Serializable、CharSequence、Comparable
1 | String s1 = "abc"; |
3、String 的不可变特性
长度、地址、内容不可变
String类中包含一个char[] 修饰符为 private final char[] value,存储 String 中的每一个字节
4、常用方法
equals()、hashCode() //继承 Object 重写,前者返回值 boolean 后者返回值 int
compareTo() //实现 Comparable 接口
toString()
charAt(index)
codePointAt(index) //获取 code 码
length()
concat(String)
contains()
startsWith()
endsWith()
getBytes() // 字符串转成数组 byte[]
toCharArray() char[]
indexOf()
isEmpty()
replace()
matches(regex)
split(regex)
substring()
trim()
StringBuffer/Builder
1.0 版本/1.5 版本
1、java.lang包 不需要导包
2、实现接口 Serializable、Appendable、CharSequence
3、可变字符串 char[] 动态扩容
1 | StringBuilder sb = new StringBuilder(); //默认长度 16 |
4、常用方法
append()
200000次拼接字符串操作,“+”:10000ms “contact”:5000ms “StringBuilder–append”:7ms
substring(int,int) //需要接受返回值
delete(int,int)
deleteCharAt()
setCharAt()
insert()
reverse()
正则表达式
1 | Pattern p = Pattern.compile("regex"); |
集合
java.util包 需要导包
用来存储一组元素
Collection \ Map
存储 value对象 \ 存储 Key-Value
List,Queue,Set
List:有序可重复
Set:无序无重复
Map:Key 无序无重复,Value 无序可重复
List 集合
- ArrayList \ Vector
常用方法:add、remove、get、set、size、addAll、contains、indexOf
iterator(迭代器)、retainAll、subList、toArray
ArrayList 底层是一个 Object[] 什么类型都可以存进去,取值多态,使用不方便
JDK 1.5 增加泛型
泛型类、泛型接口、泛型方法、高级泛型(规范边界、extends super)
1 | ArrayList list = new ArrayList(); |
- Stack 类 继承 Vector
1、构造方法只有无参数的
2、常用方法
push(压入栈顶)、pop(取出并删掉)、peek(查看栈顶元素,不删除)、empty、search
- Queue 接口
1、通常子类 LinkedList、ArrayDeque
2、构造方法只有无参数的
3、常用方法
add、element、remove
offer、peek、poll //和上面方法用法一致,不同点在于异常时不会抛出
- LinkedList 类
1、实现 List、Queue 接口
2、底层使用双向链表的数据结构存储
3、常用方法
List、Queue 的方法都可以使用
ArrayList 200000次操作 向后追加 5ms 向前插入 4000ms 遍历轮询 3ms 删除 4000ms
LinkedList 200000次操作 向后追加 4ms 向前插入 4ms 遍历轮询 3ms 删除 3ms
Set 集合
发现重复数据拒绝存入,存储的是第一个
1、常用方法
add、clear、clone、contains、isEmpty、remove、size
- HashSet 类
底层 HashMap
*无法修改值*
*无重复:equals、hashCode 重写*
1 | //取元素 |
- TreeSet 类
底层 TreeMap
*无法修改值*
*无重复:compareTo 重写*
Map 集合
映射 通过 Key 直接查找到 Value 的值
发现重复数据直接覆盖
- HashMap 类
底层数据结构 (数组+链表)散列表
1、常用方法
containsKey、containsValue、put、get、keySet、entrySet、size、replace、remove、getOrDefault
putIfAbsent(如果 key 存在则不覆盖)
- treeMap 类
底层数据结构 (数组+链表)二叉树
Entry 实现 comparable 接口,key 比较,小放左边,大放右边,一致就覆盖
1、常用方法
subMap、tailMap
红黑二叉树 左旋右旋
- Properties 类(读取文件中的信息)