JAVA--Java常用类
Java常用类
1. Object类
Object类位于java.lang包中,编程时自动导入,我们创建一个类时,如果没有明确指明继承关系,则继承Object类 。
Object类中所定义的方法,是所有对象都具备的方法。
方法:
| 返回值类型 方法 | 方法概述 | 应用 |
|---|---|---|
| Class<?> getClass() | 返回引用中存储的实际对象类型(注意于 instanceof 区别,instanceof用来判断对象是否是某种类型) | 通常用于判断两个引用中实际存储的对象类型是否一致 |
| int hashcode() | 返回该对象的哈希码值 | 用于判断两个对象是否是同一个对象 |
| String toString() | 返回对象的字符串表示 | 可以重写 返回对象的属性 |
| boolean equals(Object obj) | 判断当前对象于其他对象是否“相等”(比较两个对象的地址) | 可以重写,判断对象的属性是否相等 |
| protected void finalize() | 当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。由JVM自动调用此方法 |
注:
- 垃圾对象:没有有效引用指向此对象时,为垃圾对象
- 垃圾回收:由GC销毁垃圾对象,释放数据存储空间
- 自动回收机制:JVM的内存耗尽,一次性回收所有垃圾对象
- 手动回收机制:使用System.gc(); 通知JVM执行垃圾回收
2.Math类
位于java.lang.Math类中
以下方法都有不同返回值类型的重写
| 方法 | 概述 |
|---|---|
| abs() | 取绝对值 |
| exp(double x) | 返回e的x次幂 |
| pow(double a, double b) | 返回a的b次幂 |
| double ceil(double a) | 向上取整 |
| double floor(double a) | 向下取整 |
| double random() | 返回0到1之间的随机数 |
| round(float f) | 四舍五入 |
3.Random类
创建一个新的随机数生成器
// 指定随机数种子创建Random对象,随机数种子固定,产生的随机数就固定
Random r = new Random(1);
// 生成int范围的随机数
r.nextInt();
// 生成[0,n-1]范围的随机数
r.nextInt(10);
// 生成[0,5]之间的数字
r.nextInt(6);
(int)(Math.random() * 5);
4.File类
5.包装类
包装类:基本数据类型所对应的引用数据类型。位于java.lang 包中
| 基本数据类型 | 包装类型 | 长度 | 数据范围 |
|---|---|---|---|
| byte | Byte | 1字节 | -2^7 ~ 2^7-1 |
| short | Short | 2字节 | -2^15 ~ 2^15-1 |
| int | Integer | 4字节 | -2^31 ~ 2^31-1 |
| long | Long | 8字节 | -2^63 ~ 2^63-1 |
| float | Float | 4字节 | 1bit(符号位) 8bits(指数位) 23bits(尾数位) -2^128 ~ +2^128 |
| double | Double | 8字节 | 1bit(符号位) 11bits(指数位) 52bits(尾数位)-2^1024 ~ +2^1024 |
| boolean | Boolean | 1位 | true / false |
| char | Character | 2字节 | 最小值是’\u0000’(即为0)最大值是’\uffff’(即为65,535) |
6.Date类
从 JDK 1.1 开始,应该使用 Calendar 类实现日期和时间字段之间转换,使用 DateFormat 类来格式化和解析日期字符串。Date 中的相应方法已废弃。
Date date1 = new Date();
System.out.print(date1.toString()); // 打印当前时间
6.1 Calendar类
构造方法是protected类型,不能使用new来创建对象。
// 创建Calendar对象
Calendar cal =Calendar.getInstance();
System.out.print(cal.getTime().toLocaleString());
// 获取年
int year = cal.get(Calendar.YEAR);
int month = cal.get(Calendar.MONTH); // 0~11
int day = cal.get(Calendar.DATE);// 参数也可以写为DAY_OF_MONTH
int hour = cal.get(Calendar.HOUR); // HOUR12小时制,HOUR_OF_DAY24小时制
int minute = cal.get(Calendar.MINUTE);
int second = cal.get(Calendar.SECOND);
6.2 SimpleDateFormat类
// 创建SimpleDateFormat对象 y表示年,M月d日 m分钟 s秒
SimpleDateFormat sdf = newSimpleDateFormat(“yyyy年MM月dd日HH:mm:ss”);
// 创建Date
Date date = new Date();
// 格式化date (把日期转成字符串)
String str = sdf.format(date);
System.out.print(str);
// 解析(把字符串转成日期)
Date date2 = sdf.parse("1990/02/01");
System.out.print(date2);
7.String类
字符串是常量,存储在字符串池中,字符串创建之后不能更改。此处的不能更改不代表不能将另外的字符串赋值给之前的变量,实例如下:
String name = "张三"; // name首先赋值“张三”,此时name对象的引用指向字符串池中的“张三”
name = "法外狂徒"; // 此时name对象的引用指向字符串池中的“李四”
// 注意name指向的字符串变了,但是“张三”这个字符串并没改变
| 方法 | 概述 |
|---|---|
| int length() | 返回字符串长度 |
| char charAt(int index) | 返回指定索引处的字符 |
| boolean contains(String str) | 判断当前字符串中是否包含str |
| char[] toCharArray() | 将字符串转换成数组 |
| int indexOf(String str) | 查找str首次出现的下标,存在,返回下标,不存在,返回-1 |
| int lastIndexOf(String str) | 查找字符串在当前字符串中最后一次出现的下标索引 |
| String trim() | 去掉字符串前后的空格 |
| String toUpperCase();String toLowerCase() | 将小写转换为大写、小写 |
| boolean endsWith(String str) | 判断字符串是否以str结尾 |
| String replace(char oldChar, char newChar) | 用新的字符或字符串替换旧的字符或字符串 |
| String[] split(String str) | 根据str做拆分。参数可以写为“ ”,表示用空格划分。写为‘’[ ,]‘’表示用空格或逗号划分 |
| String substring(int beginIndex, int endIndex) | 返回新的字符串,它是此字符串的一个子字符串 |
| String concat(String str) | 将指定字符串连接到此字符串的结尾 |
8.StringBuffer
可变长字符串,相比StringBuilder运行效率慢,线程安全
| 方法 | 概述 |
|---|---|
| StringBuffer append(..) | 追加操作 |
| StringBuffer delete(int start, int end) | 删除操作,一如既往的顾头不顾尾 |
| StringBuffer insert(int index, String str) | 插入操作 |
| StringBuffer replace(int start, int end, String str) | 替换操作,与字符串的replace不同,此处可以指定位置元素来替换 |
9.StringBuilder
可变长字符串,相比StringBuffer运行效率快,线程不安全
方法与StringBuffer相同,推荐使用
10. System 类
系统类,主要用于获取系统的属性数据和其他操作,构造方法是私有的。
| 方法 | 概述 |
|---|---|
| void arraycopy(源数组, 开始位置,目标数组, 目标数组位置,复制长度 ) | 复制数组 |
| long currentTimeMillis() | 获取当前系统时间,返回的是毫秒值,从1970年1月1日到现在的毫秒数 |
| void gc() | 建议JVM赶快启动垃圾回收器回收垃圾 |
| void exit(int status) | 退出jvm 如果参数是0表示正常退出jvm,非0表示异常退出jvm |
补充:BigDecimal
位于java.math包中 (Math类是存在与 java.lang包中的)
作用:精确计算浮点数
创建方式:BigDecimal bd = new BigDecimal("1.0") 初始化一定要使用字符串!!
float和double的精度丢失:
double d1 = 1.0;
double d2 = 0.9;
System.out.print(d1 - d2); // 0.099999999999
double result = (1.4 - 0.5) / 0.9;
System.out.print(result); // 0.9999999
| 方法 | 概述 |
|---|---|
| BigDecimal add() | 加 |
| BigDecimal subtract() | 减 |
| BigDecimal multiply() | 乘 |
| BigDecimal divide() | 除 |
浙公网安备 33010602011771号