Java笔记(十五)

本文详细介绍了Java中的包装类如何处理基本数据类型,包括它们的方法如拆箱和装箱,以及Java8引入的日期处理API,如LocalDate、LocalTime和LocalDateTime的用法。
摘要由CSDN通过智能技术生成

常用类

包装类

为了方便开发,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(); // 纳秒

  • 12
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值