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()
posted @ 2021-04-18 14:00  大明举重冠军  阅读(60)  评论(0)    收藏  举报