一、Object类
1、hashcode()
获取变量的hashcode值
变量名.hashcode();
2、toString()
获取对象相应的String类型对象
int a = 123;
System.out.println(a.toString());
这样输出的结果是123,但输出的是一个String类型的值。
3、clone()
完完全全复制一个对象,但是地址不同。
Person p = new Person(23, "zhang");
Person p1 = (Person) p.clone();
p1和p的地址是不一样的。
4、getClass()
获取对象的Class类,如:
Class c1 = person.getClass();
5、notify()
唤醒通过wait()进入阻塞的对象。
notifyAll
可以唤醒某个线程的所有对象。
6、wait()
释放对象的锁,使其进入阻塞。
7、equals()
比较两个对象是否完全一样。
二、Math类
名称 | 说明 |
---|---|
Abs() | 返回数字的绝对值。 |
Acos(Double) | 返回余弦值为指定数字的角度。 |
Asin(Double) | 返回正弦值为指定数字的角度。 |
Atan(Double) | 返回正切值为指定数字的角度。 |
Atan2(Double, Double) | 返回正切值为两个指定数字的商的角度。 |
BigMul(Int32, Int32) | 生成两个 32 位数字的完整乘积。 |
Ceiling() | 返回大于或等于指定的数的最小整数值。 |
Cos(Double) | 返回指定角度的余弦值。 |
Cosh(Double) | 返回指定角度的双曲余弦值。 |
DivRem(Int, Int, Int) | 计算两个 有符号整数的商,并通过输出参数返回余数。 |
Exp(Double) | 返回 e 的指定次幂。 |
Floor() | 返回小于或等于指定数的最大整数。 |
IEEERemainder(Double, Double) | 返回一指定数字被另一指定数字相除的余数。 |
Log(Double) | 返回指定数字的自然对数(底为 e)。 |
Log(Double, Double) | 返回指定数字在使用指定底时的对数。 |
Log10(Double) | 返回指定数字以 10 为底的对数。 |
Max(数1,数2 ) | 返回两个数中较大的一个。 |
Min(数1,数2) | 返回两个数中较小的一个。 |
Pow(Double, Double) | 返回指定数字的指定次幂。 |
Round(数) | 将数值舍入到最接近的整数值。 |
Round(数, Int32) | 将小数值按指定的小数位数舍入。 |
Sign(数) | 返回一个整数,表示这个数的符号。 |
Sin(Double) | 返回指定角度的正弦值。 |
Sinh(Double) | 返回指定角度的双曲正弦值。 |
Sqrt(Double) | 返回指定数字的平方根。 |
Tan(Double) | 返回指定角度的正切值。 |
Tanh(Double) | 返回指定角度的双曲正切值。 |
Truncate(数) | 计算一个数字的整数部分。 |
三、Random类
先定义一个Random对象
Random random = new Random(seed);
Random类有含参的构造器,可填入种子值,默认以当前时间戳作为种子。
random对象调用方法,如:random.nextInt();
方法 | 说明 |
---|---|
nextInt() | 随机产生int类型的数 |
nextInt(数) | 随机产生[0,数)的int类型的数 |
nextFloat() | 随机产生float类型的数 |
nextFloat(数) | 随机产生[0,数)的float类型的数 |
nextLong() | 随机产生long类型的数 |
nextLong(数) | 随机产生[0,数)的long类型的数 |
nextDouble() | 随机产生double类型的数 |
nextDouble(数) | 随机产生[0,数)的double类型的数 |
nextBoolean() | 随机产生布尔类型的数 |
nextBoolean(数) | 随机产生[0,数)的布尔类型的数 |
随机产生UUID
uuid就是通用唯一识别码 ,类似于我们的身份证,独一无二 。
先导包
import java.util.UUID;
随机产生一个uuid
UUID.randomUUID();
尝试一个,结果是这样:aa5c51f1-4ec7-4eb1-b9af-9c8cffa68e76
将它转成字符串,去 - ,并字母小写,再输出。
String s = UUID.randomUUID().toString().replace("-", "").toLowerCase();
System.out.println(s);
再次尝试一个,结果是:39b68bced0e4475588f6c31850b733a1
四、File类
1、构造器
new File()可以使用3种构造器。
第一种是传路径的字符串:
File file = new File("D:\\1.txt");
第二种是指定父路径和文件对象
File file1 = new File("D:\\a","1.txt");
第三种是指定父对象和文件对象
File parent = new File("D:\\a");
File file2 = new File(parent, "1.txt");
2、创建和删除
createNewFile()
指定路径不存在该文件时创建文件,返回true,否则falsemkdir()
当指定的单级文件夹不存在时创建文件夹并返回true,否则falsemkdirs()
但指定的多级文件夹在某一级文件夹不存在时,创建多级文件夹并返回true,否则falsedelete()
删除文件或者删除单级文件夹
3、获取数据
String getPath()
获取File对象中封装的路径
File getAbsoluteFile()
获取文件的绝对路径,返回File对象
long length()
返回文件的字节数
boolean exists()
判断指定路径的文件或文件夹是否为空
boolean isDirectory()
判断对象是不是一个目录
boolean isFile()
判断对象是不是一个文件
boolean isHidden()
判断当前对象是否是一个隐藏文件
五、包装类
基本数据类型 | 包装类 |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
boolean | Boolean |
char | Character |
包装类的自动装箱、自动拆箱机制
自动装箱
Integer num1 = 1;
自动拆箱
int num2 = num1;
六、Date类
1、Date
构造器
无参构造:获取当前系统时间和日期
Date date = new Date();
System.out.println(date);
输出:Sat Jan 15 18:13:02 CST 2022(星期六 一月 15日 18:13:02 中国标准时间 2022年)
含参构造:参数为毫秒数
将基准时间 (1970年1月1日8时0分0秒) 加上参数的毫秒数。
常用方法
public long getTime()
日期转毫秒
Date date = new Date();
long time = date.getTime();
System.out.println(time);
输出:1575554152316
2、SimpleDateFormat
包位置: java.text.SimpleDateFormat ,继承了抽象类DateFormat,用于日期和文本之间的转换。
构造器
有参构造,参数为模式:public SimpleDateFormat(String pattern)
pattern是String类型的,表示格式,如:yyyy-MM-dd HH:mm:ss
DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
对应的日期格式如:2022-01-15 20:44:38,标识字符是区分大小写的。
常用方法
public String format(Date date)
:将Date对象转化为字符串
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yy年MM月dd日 HH时mm分ss秒");//设置时间格式
Date date = new Date();//获取当前时间
String format = simpleDateFormat.format(date);//按格式转换时间
System.out.println(format);//打印
输出的结果类似于:22年01月15日 20时56分01秒
public Date parse(String source)
:将字符串解析为Date对象。这个方法会产生ParseException
异常,需捕获。
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yy年MM月dd日 HH时mm分ss秒");
String parseDate = "22年01月15日 20时56分01秒";
try {
Date parseResult = simpleDateFormat.parse(parseDate);
System.out.println(parseResult);
} catch (ParseException e) {
e.printStackTrace();
}
输出结果类似于:Sat Jan 15 20:56:01 CST 2022
3、Calendar(建议使用)
字段 | 解释 |
---|---|
YEAR | 年 |
MONTH | 月 |
DATE | 日 |
AM_PM | 0是上午,1是下午 |
HOUR_OF_DAY | 时 |
MINUTE | 分 |
SECOND | 秒 |
MILLISECOND | 毫秒 |
DAY_OF_WEEK | 周几 |
获取对象
Calendar calendar = Calendar.getInstance();
类似于Date date = new Date();
结果类似于与:Tue Feb 15 21:16:31 CST 2022
常用方法
public void set
设置 年月日 、年月日时分秒
public int get
获取参数的字段值
month月 是从0开始的,所以月份要按-1算。
七、String
1、String
不可变字符串
常用方法
方法 | 用法 | 参数 |
---|---|---|
length() | 获取长度 | 无 |
charAt() | 获取指定下标的字符 | (int)下标 |
contains() | 是否包含指定字符串 | (String)指定字符串 |
toCharArray() | 转成字符数组 | 无 |
indexOf() | 指定字符串首次出现的下标 | (String)指定字符串 |
lastIndexOf() | 反向查找指定字符串首次出现的下标 | (String)指定字符串 |
trim() | 去除字符串两端的空格 | 无 |
toUpperCase() | 全大写 | 无 |
toLowerCase() | 全小写 | 无 |
endsWith() | 是否以某个字符串结尾 | (String)某个字符串 |
startsWith() | 是否以某个字符串开头 | (String)某个字符串 |
replace(A, B) | 字符串B替换字符串A | (String)字符串A和B |
split() | 按某个字符串拆分成字符数组 | (String)某个字符串 |
substring() | 截取字符串 | (int)起始位置(包含),结束位置(默认最后) |
2、StringBuffer
可变长字符串,线程安全,效率低
构造器
无参构造
StringBuffer stringBuffer = new StringBuffer();
有参构造,参数为对象初始包含的字符串,也可以用来String转StringBuffer
StringBuffer stringBuffer = new StringBuffer("abc");
常用方法(String的方法也可以用)
方法 | 用法 | 参数 |
---|---|---|
append() | 字符串末尾增加字符串 | (String)增加的字符串 |
insert() | 在索引位置插入字符串 | (int)(String)索引、插入的字符串 |
indexOf() | 指定字符串首次出现的下标 | (String)指定字符串 |
deleteCharAt() | 删除索引位置的字符 | (int)索引 |
reverse() | 逆序排列 | 无 |
toString() | 转字符串 | 无 |
3、StringBuilder
可变长字符串,线程不安全,效率高
JDK5新增,适用于单线程、频繁修改的字符串。
(用法和StringBuffer几乎一样)
上一篇 异常