第10篇 Java中的常用工具类

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

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

包装类

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

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

包装类的对应关系:

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

1 int aInt = 0;
2 Integer aInteger = aInt;    //自动装箱
3 int aI2i = aInteger;        //自动拆箱

自动装箱拆箱

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

同样,String类提供了各基本数据类型转换成String的相应方法:static StringvalueOf(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 工具类

原文地址:https://www.cnblogs.com/JuanF/p/9351818.html

时间: 2024-10-24 23:38:06

第10篇 Java中的常用工具类的相关文章

JAVA中封装JSONUtils工具类及使用

在JAVA中用json-lib-2.3-jdk15.jar包中提供了JSONObject和JSONArray基类,用于JSON的序列化和反序列化的操作.但是我们更习惯将其进一步封装,达到更好的重用. 封装后的JSON工具类JSONUtils.java代码如下: JSONUtils代码,点击展开 import java.util.ArrayList;import java.util.Collection;import java.util.HashMap;import java.util.Itera

J2EE开发框架搭建(5) - Java项目开发常用工具类

工具类下项目中的目录位置: 1. 中文转化成拼音.首字母  ,ChineseCharToPinYin,使用这个类的时候必须要加入pinyin.jar,pinyin.jar已经放到hqhop-framework-web项目的lib目录中: 使用方式: ChineseCharToPinYin只提供了两个方法: public static String getPinYin(String src) {.....}      将汉字转换为全拼 public static String getPinYinH

【spring】spirng中的常用工具类

一.概述 很多时候,很多工具类其实spring中就已经提供,常用的工具类有: 参考:https://www.cnblogs.com/langtianya/p/3875103.html 内置的resouce类型 UrlResource ClassPathResource FileSystemResource ServletContextResource InputStreamResource ByteArrayResource EncodedResource 也就是Resource加上encodi

java 微信开发 常用工具类(xml传输和解析 json转换对象)

与微信通信常用工具(xml传输和解析) package com.lownsun.wechatOauth.utl; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.net.InetAddress; import java.net.MalformedURLException; import

第八章 Java中的并发工具类

等待多线程完成的CountDownLatch countDownLatch允许一个或多个线程等待其他线程完成操作. public class CountDownLatchTest { static CountDownLatch countDownLatch = new CountDownLatch(2); public static void main(String[] args) throws InterruptedException{ new Thread(new Runnable() {

Java中的并发工具类

1.等待多线程完成的CountDownLatch         CountDownLatch允许一个或多个线程等待其他线程完成操作.join用于让当前执行线程等待join线程执行结束.其实现原理是不停检查join线程是否存活,如果join线程存活则让当前线程永远等待.直到join线程中止后,线程的this.notifyAll()方法会被调用,调用notifyAll()方法是在JVM里实现的. 2.同步屏障CyclicBarrier                             Cyl

Java中的日期工具类

1 package cn.jbit.auction.util; 2 3 import java.text.SimpleDateFormat; 4 import java.util.Calendar; 5 import java.util.Date; 6 7 public class Tool { 8 /** 9 * 把日期字符串转为java.util.Date类型 10 */ 11 public static java.util.Date strToDate(String dateStr,Str

Java 中的Array工具类

1.boolean equals(array1,array2):比较两个数组是否相等.import java.util.Arrays;public class Ch03 { public static void main(String[] args) { // TODO Auto-generated method stub String[] str1={"1","2","3"}; String[] str2={"1",&quo

java中MessageDigest加密工具类

import java.security.MessageDigest; public class EncryptionKit { public static String md5Encrypt(String srcStr){ return encrypt("MD5", srcStr); } public static String sha1Encrypt(String srcStr){ return encrypt("SHA-1", srcStr); } publi