常用类
包装类
为了方便开发,Java为8种基本数据类型分别又提供了对应的包装类。(包装类都是引用数据类型。)
包装类中的6个数字类型都继承了Number类
Byte、Short、Integer、Long、Float、Double都继承了Number类,因此这些类中都有以下这些方法:
byteValue() shortValue() intValue() longValue() floatValue() doubleValue()
这些方法的作用就是将包装类型的数据转换为基本数据类型。
包装类转换成基本数据类型的过程我们称为:拆箱
unboxing Boolean的拆箱方法:booleanValue();
Character的拆箱方法:charValue();
Integer的常量
通过Integer提供的常量可以获取int的最大值和最小值: 最大值:Integer.MAX_VALUE 最小值:Integer.MIN_VALUE 当然,其它5个数字包装类也有对应的常量: byte最大值:Byte.MAX_VALUE byte最小值:Byte.MIN_VALUE short最大值:Short.MAX_VALUE short最小值:Short.MIN_VALUE ......
Integer的构造方法
Integer(int value) Java9之后标记已过时,不建议使用。 该构造方法可以将基本数据类型转换成包装类。这个过程我们称为装箱boxing Integer(String s) Java9之后标记已过时,不建议使用。 该构造方法可以将字符串数字转换成包装类。但字符串必须是整数数字,如果不是会出现异常:NumberFormatException 其它包装类的构造方法也是如此,
例如Boolean的构造方法 Boolean(boolean value) Boolean(String s) 以上两个构造方法也都在Java9的时候标记已过时。
Integer的常用方法
static int compare(int x, int y); 比较大小 static int max(int a, int b); 最大值 static int min(int a, int b); 最小值 static int parseInt(String s); 将字符串数字转换成数字类型。其它包装类也有这个方法:Double.parseDouble(String s) static String toBinaryString(int i); 获取数字二进制的字符串表示形式 static String toHexString(int i); 获取数字十六进制的字符串表示形式 static String toOctalString(int i); 获取数字八进制的字符串表示形式 int compareTo(Integer anotherInteger); 比较大小,可见实现了Comparable接口 boolean equals(Object obj); 包装类已经重写了equals()方法。 String toString(); 包装类已经重写了toString()方法。 int intValue(); 将包装类拆箱为基本数据类型 static String toString(int i); 将基本数据类型转换成字符串 static Integer valueOf(int i); 将基本数据类型转换成Integer static Integer valueOf(String s) 将字符串转换成Integer(这个字符串必须是数字字符串才行,不然出现NumberFormatException)
日期处理
日期相关API
long l = System.currentTimeMillis(); // 获取自1970年1月1日0时0分0秒到系统当前时间的总毫秒数。 java.util.Date 日期类 构造方法:Date() 构造方法:Date(long 毫秒) java.util.SimpleDateFormat 日期格式化类 日期转换成字符串(java.util.Date -> java.lang.String) 字符串转换成日期(java.lang.String -> java.util.Date) java.util.Calendar 日历类 获取当前时间的日历对象:Calendar c = Calendar.getInstance(); 获取日历中的某部分:int year = c.get(Calendar.YEAR); Calendar.YEAR 获取年份 Calendar.MONTH 获取月份,0表示1月,1表示2月,...,11表示12月 Calendar.DAY_OF_MONTH 获取本月的第几天 Calendar.DAY_OF_YEAR 获取本年的第几天 Calendar.HOUR_OF_DAY 小时,24小时制 Calendar.HOUR 小时,12小时制 Calendar.MINUTE 获取分钟 Calendar.SECOND 获取秒 Calendar.MILLISECOND 获取毫秒 Calendar.DAY_OF_WEEK 获取星期几,1表示星期日,...,7表示星期六
java.util.Calendar 日历类
日历的set方法:设置日历 calendar.set(Calendar.YEAR, 2023); calendar.set(2008, Calendar.SEPTEMBER,8); 日历的add方法(日历中各个部分的加减): calendar.add(Calendar.YEAR, 1); 日历对象的setTime()让日历关联具体的时间 calendar.setTime(new Date()); 日历对象的getTime()方法获取日历的具体时间: Date time = calendar.getTime();
Java8的新日期API
传统的日期API存在线程安全问题,Java8又提供了一套全新的日期API
java.time.LocalDate、java.time.LocalTime、java.time.LocalDateTime 日期、时间、日期时间 java.time.Instant 时间戳信息 java.time.Duration 计算两个时间对象之间的时间间隔,精度为纳秒 java.time.Period 计算两个日期之间的时间间隔,以年、月、日为单位。 java.time.temporal.TemporalAdjusters 提供了一些方法用于方便的进行日期时间调整 java.time.format.DateTimeFormatter 用于进行日期时间格式化和解析
LocalDate日期、LocalTime时间、LocalDateTime日期时间
获取当前时间(精确到纳秒,1秒=1000毫秒,1毫秒=1000微秒,1微秒=1000纳秒) LocalDateTime now = LocalDateTime.now(); 获取指定日期时间 LocalDateTime ldt = LocalDateTime.of(2008,8,8,8,8,8,8); // 获取指定的日期时间 加日期和加时间 LocalDateTime localDateTime = ldt.plusYears(1).plusMonths(1).plusDays(1).plusHours(1).plusMinutes(1).plusSeconds(1).plusNanos(1); 减日期和减时间 LocalDateTime localDateTime = ldt.minusYears(1).minusMonths(1).minusDays(1).minusHours(1).minusMinutes(1).minusSeconds(1).minusNanos(1); 获取年月日时分秒 int year = now.getYear(); // 年 int month = now.getMonth().getValue(); // 月 int dayOfMonth = now.getDayOfMonth(); // 一个月的第几天 int dayOfWeek = now.getDayOfWeek().getValue(); // 一个周第几天 int dayOfYear = now.getDayOfYear(); // 一年的第几天 int hour = now.getHour(); // 时 int minute = now.getMinute(); // 分 int second = now.getSecond(); // 秒 int nano = now.getNano(); // 纳秒