Object类
toString方法默认返回:类名+@+16进制哈希值。
equals方法默认比较对象引用
hashcode方法调用的是原生函数实现
Objects类
提供检查数组越界、比较对象是否相等、判断对象是否为空,hash等静态方法。
Math类
提供自然对数和圆周率,提供取绝对值、取对数、指数、平方根、计算三角函数和反三角函数、取[0,1)区间内的随机数、四舍五入(先加0.5,再向下取整,所以可以看做是向0取整)、向上取整和向下取整
Arrays类
所有方法都是静态的,提供二分查找、比较两个数组、复制数组、填充数组(数组初始化)、计算数组哈希值、找出两个数组指定范围内第一个不匹配的元素的索引、排序数组等方法。
BigDecimal类
更高精度,提供加减乘除等方法,常用构造方法:1.BigDecimal BigDecimal(double d);2.BigDecimal BigDecimal(String s); 3.static BigDecimal valueOf(double d)。
Date类
构造函数。现在只使用Date()和Date(long date)两个构造函数,分别是使用当前时间创建日期对象和使用自1970年1月1日00:00:00 GMT以来的毫秒数创建日期对象。创建某个日期的日期对象已经被Calendar.set(year + 1900, month, date)或GregorianCalendar(year + 1900, month, date)取代。使用字符串来创建日期对象已经由DateFormat.parse(String s)取代。
提供判断是否在某个日期之前、之后,直接和另一个日期比较、是否和另一个日期相等。可以看出,Date类的基本作用:1.获取当前日期。2.格式化地输出日期。由于SimpleDateFormat或System.out.printf()等格式化输出日期的方式只支持Date,不支持Calendar,可以借助Date格式化输出Calendar。
DateFormat类
DateFormat类是一个抽象类。构造方法都是静态方法。构造方法:创建默认格式的对象、给定样式、给定语言环境的对象。
提供以默认方式解析字符串为日期,以默认方式格式化日期的方法。
SimpleDateFormat类
是DateFormat类的子类。构造方法:1.SimpleDateFormat();2.SimpleDateFormat(String pattern);3.SimpleDateFormat(String pattern, Locale locale)
提供设置模式字符串、格式化日期为字符串、解析日期字符串为日期等方法。
Calendar类
Calender类在java.util包下,是一个抽象类。
创建对象的方法都是静态的。可使用默认的、指定的区域Locale指定的时区TimeZone创建对象。Calendar设置好日期之后,时间戳就固定下来了,通过直接设置变换时区TimeZone不会导致时间戳自动变换,但如果变换时区之后再设置相同日期,时间戳会变化。从中可以看出,Calendar默认使用本地时区,它维护的是时间戳,修改时区只是修改了一个字段,只有再修改日期才会导致时间戳变化。看了源码确实如此,Calendar.setTimeZone仅仅修改了一个字段,此外什么都没做。
1.设置日期(set(int year, int month, int date, int hourOfDay, int minute, int second)和set(int field, int value)等)。
2.获取日期的某一字段get(int field)。
| 字段 | 含义 |
|---|---|
| YEAR | 真实年份 |
| MONTH | 0表示1月 |
| WEEK_OF_YEAR | 一年的周数,和第一周怎么算有关 |
| WEEK_OF_MONTH | 当前月的第几周,本月第一天所在的周是第一周,12个月的WEEK_OF_MONTH加起来应该是大于WEEK_OF_YEAR的 |
| DAY_OF_YEAR | 本年的第几天,1月1日是第一天 |
| DAY_OF_MONTH | 本月的第几天,1日是第一天 |
| DAY_OF_WEEK | 指星期几,1表示星期天,2表示星期一,这和一周的第一天是哪一天无关 |
| DAY_OF_WEEK_IN_MONTH | DAY_OF_MONTH的1至7始终对应DAY_OF_WEEK_IN_MONTH中的1,8到14对应于DAY_OF_WEEK_IN_MONTH的2,即按7天为一个周期,获取位于一个周期的第几天 |
| HOUR | 小时,范围0~11 |
| HOUR_OF_DAY | 小时,范围0~23 |
| MINUTE | 分钟,范围0~59 |
| SECOND | 秒,范围0~59 |
| MILLISECOND | 秒,范围0~999 |
3.获取一周的第一天(getFirstDayOfWeek(),只和地区有关,返回值1表示星期天,2表示星期一)。
4.获取第一周的最小天数。getMinimalDaysInFirstWeek(),返回值只有1和7.若第一年允许跨年,显然最小天数为1(一周最后一天是一年的第一天),否则为7.
5.获取年份getWeekYear()。get(Calendar.Year)指当前年份,而getWeekYear()指所在的周是在哪一年。例:若2021年1月1日所在周属于2020年,则返回值为2020,若2020年12月31日所在周属于2021年,则返回值为2021。跨年的周属于哪一年和FirstDayOfWeek、MinimalDaysInFirstWeek有关。
6.获取这一年的周数getWeeksInWeekYear(),同样的,和第一周怎么算有关。
7.①getMaximum(int Field)、②getActualMaximum(int Field)和③getLeastMaximum(int Field)。③<=①<=②。①表示当前实例该字段的可能的最大值;②表示该字段任何可能的最大值;③表示该字段在各个实例的最大值中最小的。最小值同理。
8.获取Date对象getTime(),获取距离Epoch的毫秒数getTimeInMillis(),由Date对象创建Calender实例setTime()。
System类
提供err标准错误输出流、in标准输入流、out标准输出流。
提供arraycopy复制数组、currentTimeMillis获取当前时间戳(从1970.01.01至今的毫秒数)、gc()运行垃圾回收器、exit(int status)终止虚拟机(会结束当前程序)等方法。
String类(重点)
所有字符串都是String类的实例。字符串是不变的,它们的值在创建后无法更改。
所有创建的字符串常量都会保存到字符串常量池(永久代,现在永久代已经被元空间代替)中,永远不会被垃圾回收。String s1=“123”;String s2=“123”;String s3=new String(“123”);则s1==s2为true,而s1==s3为false。
字符串常用方法:indexOf():返回指定字符的索引。charAt():返回指定索引处的字符。replace():字符串替换。trim():去除字符串两端空白。split():分割字符串,返回一个分割后的字符串数组。getBytes():返回字符串的 byte 类型数组。length():返回字符串长度。toLowerCase():将字符串转成小写字母。toUpperCase():将字符串转成大写字符。substring():截取字符串。equals():字符串比较。
字符串拼接常用StringBuilder和StringBuffer,区别是StringBuffer是线程安全的,效率低一点。
本文详细介绍了Java中的Object类,包括toString、equals和hashCode方法。同时讲解了Objects类的实用静态方法,如比较和空值检查。Math类提供了数学运算,如随机数生成和四舍五入。Arrays类包含数组操作,如排序和比较。深入讨论了BigDecimal类的高精度运算,Date类的时间处理,以及DateFormat和SimpleDateFormat类的日期格式化。Calendar类用于日期和时间的精细管理,包括时区和日期字段的操作。此外,还探讨了System类的系统级功能,如标准输入输出流和时间戳获取。String类的重点在于其不可变性和常用方法,如字符串拼接和比较。

571

被折叠的 条评论
为什么被折叠?



