第10篇 Java中的常用工具类

Posted juanf

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第10篇 Java中的常用工具类相关的知识,希望对你有一定的参考价值。

整理下这一周的最后一些内容。虽然东西不多,但以后也可以常回来看看。

个人感觉还是代码最好表达自己想要记忆的东西,不够的话再把注释加上。乱七八糟的概念百度上大同小异,只有代码是属于你自己的,是唯一的,也是你应该留下的。

包装类

我们所使用的一般数据类型,又称为值类型。这种数据类型存储在栈中,不属于对象的范畴。但Java是一门面向对象的语言,万物皆对象,自然不能把这些值类型排除在外,所以有了包装类。

所谓包装类,就是把我们所用到的值类型变量进行一个包装,使我们能通过对象的方式对其进行操作,让其有自己的属性和方法。把值类型数据包装成引用数据类型的这一过程又称为装箱,而这一逆过程则称之为拆箱。

包装类的对应关系:

技术分享图片

一般情况,我们的编译器会对数据进行自动装箱拆箱:

技术分享图片
1 int aInt = 0;
2 Integer aInteger = aInt;    //自动装箱
3 int aI2i = aInteger;        //自动拆箱
自动装箱拆箱

常用的一些方法及与字符串之间的相互转换(以Integer为例)

同样,String类提供了各基本数据类型转换成String的相应方法:static String valueOf(int i)

日期工具类

1、类 Date

常用的方法:

  • Date(long date)  默认无参构造函数就不说了,其获取的是系统当前时间。这个带参构造函数传入一个long类型的值,代表着时间戳,即1970.1.1开始计算的毫秒数
  • after(Date when)  跟另外一个Date对象比较,返回是否在when之后。
  • before(Date when) 跟另外一个Date对象比较,返回是否在when之前。
  • getTime()  返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。

Date类的操作方法十分之少,主要是由于Calendar类和DateFormat类的出现,使其只作为一个很鸡肋的存在,除了获取毫秒数,基本没有别的功能,对Date对象的操作都交由DateFormat来处理。

2、类 SimpleDateFormat

从名字我们就可以看出,这是一个对时间进行格式化处理的类,通过该类我们可以指定Date对象以特定的格式显示,也可以使特定格式的字符串转成一个Date对象。

一些模式字母:

  • y    年
  • M    月
  • d    天
  • w    年中的周数
  • W    月中的周数
  • E    (星期中的天数)星期
  • H    小时(0~23)
  • h    小时(1~12)
  • s    秒数
  • S    毫秒数

常用到的方法:

  • SimpleDateFormat() 用默认的模式和默认语言环境的日期格式符号构造 SimpleDateFormat
  • SimpleDateFormat(String pattern) 用给定的模式和默认语言环境的日期格式符号构造 SimpleDateFormat
  • applyPattern(String pattern) 将给定模式字符串应用于此日期格式。
  • format(Date date) 将日期格式化成日期/时间字符串。(jdk1.8)
  • parse(String text) 从给定字符串的开始解析文本以生成日期。(jdk1.8)
技术分享图片
1 Date date = new Date();
2 //实例化SimpleDateFormat对象并传入特定格式
3 SimpleDateFormat spdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss E");    
4 //将date格式化后转成字符串
5 String nowDateString = spdf.format(date);
6 //打印格式化日期字符串    
7 System.out.println(nowDateString);
通过SimpleDateFormat实现Date转String
技术分享图片
1 2018-07-22 20:20:24 星期日
打印结果1
技术分享图片
 1 //将spdf应用新的格式
 2 spdf.applyPattern("yyyy-MM");
 3 try {
 4     //将特定格式字符串转成Date对象,抛出ParseException
 5     Date str2Date = spdf.parse("2018-9");
 6     //获取转换后的时间戳
 7     long str2DateMills = str2Date.getTime();
 8     System.out.println(str2DateMills);
 9 } catch (ParseException e) {
10     System.out.println("日期格式错误!");
11 }
通过SimpleDateFormat实现String转Date
技术分享图片
1 1535731200000
打印结果2

3、类 Calendar(abstract)

日历类比日期类功能要丰富很多,它提供了很多对时间字段的获取和操作方法,但它不能被SimpleDateFormat操作,所以只能自己写算法实现对其时间的格式输出和与字符串之间的相互转换。

一些事件字段(静态常量,在get、set等方法中被使用):

常用方法:

  • add(int field, int amount)  对某个时间字段进行增减操作
  • get(int field) 返回给定日历字段的值
  • getActualMaximum(int field)  返回给定时间字段的当前最大值
  • getActualMinimum(int field)  返回给定时间字段的当前最小值
  • getInstance()  返回一个Calendar实例。由于Calendar是抽象类,不能被实例化,所以只能通过该方法来获取实例
  • getTime()  返回一个与当前Calendar对象时间相同的Date对象
  • getTimeInMillis() 返回时间戳
  • set(int field, int value) 将给定的日历字段设置为给定值
  • setTime(Date date) 使用给定的 Date 设置此 Calendar 的时间
  • setTimeInMillis(long millis) 用给定的 long 值设置此 Calendar 的当前时间值

使用比较简单,这里只演示一个将字符串转换为Calendar格式方法: 先通过SimpleDateFormat将字符串转成Date对象,再通过setTime方法来对Calendar进行设置。

技术分享图片
1 System.out.println("请输入一个日期(xxxx-xx-xx):");
2 String str = scanner.next();
3 try {            
4     //字符串转Date并通过Date设置Calendar
5     calendar.setTime(sdf.parse(str));
6 } catch (ParseException e) {
7     System.out.println("时间格式错误!");
8     return;
9 }
通过控制台输入设置Claendar对象

Arrays 工具类

 

Collections 工具类

 


以上是关于第10篇 Java中的常用工具类的主要内容,如果未能解决你的问题,请参考以下文章

第4篇 Java中的String类

elasticsearch代码片段,及工具类SearchEsUtil.java

第9篇-JAVA面向对象-常用类Ⅴ

第9篇-JAVA面向对象-常用类Ⅴ

Python代码阅读(第13篇):检测列表中的元素是否都一样

solr分布式索引实战分片配置读取:工具类configUtil.java,读取配置代码片段,配置实例