JavaSE-常用类(Object、String、Math、Date、Calendar、SimpleDateFormat)
Posted on 2021-03-09 15:40 MissRong 阅读(123) 评论(0) 收藏 举报JavaSE-常用类
Java.lang包是java语言体系中其他所有类库的基础,已经内嵌到java虚拟机中,而且以对象的形式创建好了。
所以,在使用java.lang包时不需要再使用import将其导入,可以直接使用java.lang包中的所有类以及直接引用某个类中的常量、变量和操作方法。
一、Object
Object类是所有类的父类
1、equals()
Object类中定义了equals方法【 public boolean equals(Object obj) 】,用来比较两个对象的虚地址。
如果虚地址相同则返回true,否则返回false。
Object类中的equals方法的作用,与==相同,都是比较两个对象的虚地址。
重写equals方法:
目的:用来比较两个对象的属性值,如果属性值相同,则认为两个对象相等。
自动生成equals方法:
@Override public boolean equals(Object o) { //1、比较地址是否相同,如果相同就直接返回true if (this == o) return true; //2、查看另一个类是否为空、两个类的字节码--getClass() 是否相同 if (o == null || getClass() != o.getClass()) return false; //将另一个对象进行强转,转换成本类 Course course = (Course) o; //3、查看属性price、title是否相等 if (Double.compare(course.price, price) != 0) return false; return title.equals(course.title); }
2、hashCode()
Object类中定义了hashCode方法【 public int hashCode() 】,用来返回对象的哈希码。
hashCode方法主要为了配合基于哈希的集合类一起工作,例如HashSet、HashMap等。
默认情况下【即没有重新hashCode方法时】,当两个引用的虚地址相同时,hashCode返回相同的值,否则返回不同的值。

3、toString()
Object类中定义了toString方法【 public String toString() 】,可以把任意类型对象转换成字符串返回;
默认情况(没有重写Object类中的toString方法)下,返回字符串的格式为:对象类型@对象调用hashCode方法的返回值。
这表示方式很晦涩,因此可以重写toString(),可选择自定生成的模板。
二、String
Java语言使用Unicode字符集,默认使用UTF-8格式;
因此Java的字符串也使用UTF-8编码;
UTF-8是一种针对Unicode的可变长度字符编码,用1到4个字节编码Unicode字符;
Java语言中的字符串实际上是使用字符型数组char[]存储。
1、子串截取的相关方法

2、检索相关方法

其中:
.indexOf() 是:从指定位置向右查找,找不到就返回-1
如果指定查找的起始位置是-1,该方法会将其改成0,也就是从最左侧开始。
.lastIndexOf() 是:从指定位置向左查找,找不到就返回-1
.charAt() 如果string未赋值的话,会报NullPointerException异常。
3、类型转换方法

4、其他方法

.replace() 可以把指定的字符换成新的字符。但是不改变原字符串。
三、Math
Math类位于java.lang包中,是一个final类,不能被继承。
Math类中所有方法都是static方法,可以直接使用类名Math调用。
Math中定义了大量与数学运算有关的方法,包括求绝对值、三角函数、平方根等。
//返回最小的double数,这个数大于等于参数,并等于某个参数 System.out.println(Math.ceil(4.57)); //返回最大的double数,这个数小于等于参数,并等于某个参数 System.out.println(Math.floor(4.57)); //返回最接近参数的long System.out.println(Math.round(5.98f)); //返回最接近参数的int System.out.println(Math.round(5.98)); //随机返回一个 [0.0, 1.0) 区间内的正数(double类型的) System.out.println(Math.random());
四、Date
java.util.Date类表示时间,不过由于对国际化支持有限,所以JDK1.1之后推荐使用java.util.Calendar类。
java.util.Date类中很多构造方法和方法已经过时(Deprecated),不推荐使用,此处只列出两个没过时的构造方法。

public static void main(String[] args) { Date date = new Date(); //输出当前日期 System.out.println(date); //传入一个距离1970.1.1.00:00:00以来的毫秒数 Date date1 = new Date(10 * 24 * 60 * 60 * 1000); System.out.println(date1); //输出距离1970.1.1.00:00:00以来的毫秒数 System.out.println(System.currentTimeMillis()); //获取当前时间 Date date2 = new Date(System.currentTimeMillis()); System.out.println(date2); }
五、Calendar
JDK1.1版本开始,增加Calendar类,建议使用Calendar类代替Date类。
Calendar是抽象类,不能直接使用new创建对象。
1、Calendar类中定义了获得实例的方法:

2、设置年月日时分秒:

注意:月份是从0开始的,即:1月是0,12月是11
3、返回Calendar字段:

4、修改Calendar的字段值:
![]()
EG-1:
Calendar calendar1 = Calendar.getInstance(); //将当前所处年份 + 2 calendar1.add(Calendar.YEAR, 2);
EG-2:
Calendar calendar1 = Calendar.getInstance(); System.out.println(calendar1.getTime()); System.out.println(calendar1.get(Calendar.YEAR)); //得到年份 System.out.println(calendar1.get(Calendar.MONTH)); //得到月份 //设置年月日时分秒 calendar1.set(2022, 2, 2, 2, 2, 2); System.out.println(calendar1.getTime());
六、SimpleDateFormat
SimpleDateFormat中定义了对时间进行格式化的方法,该类继承了抽象父类DateFormat。
可以自定义一个模式字符串来构建SimpleDateFormat对象:

1、通常使用format方法进行格式化

EG:
Calendar calendar1 = Calendar.getInstance(); //HH是大写的,表示24进制的,下午时间是双位 SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss"); String format = simpleDateFormat.format(calendar1.getTime()); System.out.println(format);
2、parse() 解析时间字符串
如果得到的是字符串,需要解析成日期时间类型进行处理,SimpleDateFormat类不仅能够格式化时间,还能解析时间字符串。

EG:
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String strTim = "2021-3-23 12:25:39"; try { Date parse = simpleDateFormat.parse(strTim); System.out.println(parse); } catch (ParseException e) { e.printStackTrace(); }
//结果:Tue Mar 23 12:25:39 CST 2021
注意:月份由数字转换的话,是正常的,1就是1月。

浙公网安备 33010602011771号