JavaBasic-3-常用类
String
String类代表字符串,Java程序中所有字符串文字(例如“abc”)都被实现为此类的实例,也就是说,Java程序中所有的双引号字符串,都是String类的对象
字符串不可变,他们的值在创建后不能被更改
使用双引号创建字符串对象和使用new创建字符串对象的区别
- 使用双引号创建字符串对象时,系统检查该字符串是否存在于字符串常量池中,如果不存在则创建,如果存在则复用
- 使用new来创建字符串对象,每一次new都会申请一个内存空间,虽然字符串内容相同,但是地址值不同
- 双引号创建的字符串对象在字符串常量池中存储,构造方法创建的字符串对象在堆内存中存储
==
- ==用于比较基本数据类型时,比较的是内容
- ==用于比较引用类型时,比较的是地址
比较地址
1 | String s1 = "abc"; |
1 | String s1 = "abc"; |
1 | String s1 = "abc"; |
1 | String s1 = "abc"; |
- 使用 equals() 方法来比较内容,严格区分大小写,返回true或者false
- 如果比较字符串时需要忽略大小写,则可以使用 equalsIgnoreCase() 方法
StringBuilder
- StringBuilder是一个可变的字符串类,可以将它看成一个容器
- StringBuilder可以提高字符串操作效率,体现在字符串拼接上
方法 | 介绍 |
---|---|
append | 完成字符串拼接,返回值是自己本身 |
reverse | 返回相反的字符串序列 |
toString | 把StringBuilder类型转为String类型 |
Math
有关数学运算的类,构造方法被私有化所以不能被实例化,提供的方法全是静态方法
方法名 | 说明 |
---|---|
abs(int a) | 返回参数的绝对值 |
ceil(double a) | 向上取整 |
floor(double a) | 向下取整 |
round(float a) | 四舍五入 |
max(int a,int b) | 返回两个参数值最大的 |
min(int a,int b) | 返回两个参数值最小的 |
pow(double a,double b) | 返回a的b次幂的值 |
random() | 返回值为double类型的正值,[0.0,1.0) |
System
与系统相关的类,构造方法私有化所以不能被实例化,提供的方法都是静态方法
方法名 | 说明 |
---|---|
exit(int status) | 终止当前运行的Java虚拟机,参数非零表示异常终止 |
currentTimeMillis() | 返回当前距离1970年1月1日 00:00:00的毫秒值 |
arraycopy(源数组,起始索引,目的数组,起始索引,拷贝个数) | 数组copy |
Object
所有类的超类,所有的对象(包括数组)都实现这个类中的方法
toString()方法
- 直接打印一个对象就是打印这个对象的toString()方法的返回值
- Object类的toString()方法得到的是这个对象的字符串表示
全类名+@+哈希值的十六进制
- 一般情况下会对toString()方法进行重写,建议所有子类都重写该方法
equals()方法
- 与另一个对象比较
- 默认是比较地址
- 重写可以比较内容,例如String类和Integer类
1 | String s1 = "abc"; |
BigDecimal
两种构造方法
BigDecimal bd1 = new BigDecimal(数值参数);
BigDecimal bd2 = new BigDecimal(字符串);
四则运算(精确)
方法名 | 说明 |
---|---|
add(BigDecimal b) | 加法 |
subtract(BigDecimal b) | 减法 |
multiply(BigDecimal b) | 乘法 |
divide(BigDecimal b) | 除法 |
一种特殊的方法
- 语法:
public BigDecimal divide(参数1,参数2,参数3);
- 用于D除不尽的情况
- 参数1表示另一个参与运算的数,参数2表示小数点后精确到的位数,参数3表示舍入模式
- 舍入模式有
BigDecimal.ROUND_UP
,进一法BigDecimal.ROUND_FLOOR
,去尾法BigDecimal.ROUND_HALF_UP
,四舍五入
总结
- BigDecimal用于精确计算
- 创建BigDecimal对象,构造方法使用参数类型为字符串的
- 除法除不尽使用三个参数的方法
包装类
八个包装类
基本数据类型 | 包装类 |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Character |
boolean | Boolean |
注意:在使用包装类型时如果有对应的操作,最好先判断是否为空
日期时间
- 计算机中的时间原点是1970年1月1日 00:00:00
Date
构造方法
方法名 | 说明 |
---|---|
Date() | 创建一个Date对象,表示默认事件(计算机当前时间) |
Date(long date) | 创建一个Date对象,表示指定时间(从时间原点开始,过了指定毫秒的时间,需要考虑时差问题) |
常用方法
方法名 | 说明 |
---|---|
getTime() | 获取时间对象的毫秒值 |
setTime(long time) | 设置时间为参数内指定的时间 |
SimpleDateFormat
- 可以对Date对象进行格式化和解析
常用模式字母以及对应关系
字母 | 含义 |
---|---|
y | 年 |
M | 月 |
d | 日 |
H | 时 |
m | 分 |
s | 秒 |
构造方法
方法名 | 说明 |
---|---|
SimpleDateFormat() | 构造一个默认格式的对象 |
SimpleDateFormat(String pattern) | 构造一个指定格式的对象 |
格式化和解析的方法
方法名 | 说明 |
---|---|
public final String format(Date date) | 将日期格式化为指定格式的字符串 |
public Date parse(String source) | 将字符串解析为日期类对象 |
JDK8新增的时间日期类
- LocalDate日期类、LocalTime时间类、LocalDateTime时间日期类,使用方法类似
LocalDateTime创建方法
方法名 | 说明 |
---|---|
public static LocalDateTime now() | 获取当前计算机的时间 |
public static LocalDateTime of(年,月,日,时,分,秒) | 使用指定的年月日时分秒创建一个对象 |
LocalDateTime的格式化和解析
方法名 | 说明 |
---|---|
public String format(指定格式) | 将LocalDateTime对象格式化为指定的字符串 |
public static LocalDateTime parse(待解析的字符串,解析格式) | 将时间日期字符串解析为LocalDateTime对象 |
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
Comment