包装类及其日期类详细总结,希望大家能给小姐姐三联支持,感谢大家

  • 1. 基本类型包装类
    • 1.1 概述
    • 1.2 Integer类的概述与使用
    • 1.3 int和String的相互转换
    • 1.4 案例-字符串中数据排序
    • 1.5 自动装箱和拆箱
  • 2. Date类
    • 2.1 Date常用方法
  • 3. SimpleDateFormat类
    • 3.1 案例-日期工具类
  • 4. Calendar类-日历
    • 4.1 Calendar 的常用方法

)

1. 基本类型包装类

1.1 概述

它用于基本数据类型与字符串之间的转换

举例:

public class IntegerDemo {public static void main(String[] args) {//判断数据是否在int范围内System.out.println(Integer.MAX_VALUE);//最大范围System.out.println(Integer.MIN_VALUE);//最小范围}
}

1.2 Integer类的概述与使用

这里只介绍Integer,其他的可自行查看帮助文档。

那么我们重点看构造方法
它的构造方法,建议以后用Integer的方法,用valueOf()来使用
过时的方法当然也可以用,不过它会提示已经过时,如下图所示:
但是如果是字符串类型的字母,就会运行错误,它识别的是字符串类型的数字

Integer i3=new Integer("asd");//这里就会运行错误

不建议使用上面的两种形式,建议使用这种格式:Integer i1=Integer.valueOf();

public class IntegerDemo {public static void main(String[] args) {Integer i1=Integer.valueOf(123);//数字类型System.out.println(i1);Integer i2=Integer.valueOf("123");//字符串类型}
}

1.3 int和String的相互转换

  • 简单的方式:“字符串”+数字,得出来的是拼接的字符串
int number=100;
String s1=""+number;
  • 方式二官方版
    这里可以用官方文档给我们提示的进行,这里用的是valueOf进行转换
  • 数字转换为字符串String s1=String.valueOf(num);
  • 字符串转换为数字
    方式一:先将String转换为Integer再转化为int
    String—>Integer—>int
    方式二:Integer.parseInt();
public class IntegerDemo {public static void main(String[] args) {int num=100;String s1=String.valueOf(num);//int转换为字符串类型System.out.println(s1);System.out.println("----------");//字符串转换为intString s2="100";// 方式一://String--->Integer--->intInteger i1=Integer.valueOf(s2);//通过帮助文档发现,// intValue()用来返回Integer// 作为int的值,正好符合要求int x=i1.intValue();//返回值用int接收System.out.println(x);//方式二:使用parseInt静态方法int y=Integer.parseInt(s2);System.out.println(y);}
}

1.4 案例-字符串中数据排序

需求:有一个字符串:“91 27 46 38 50”,请写程序最终输出的结果是:“27,38,46,50,91”.
思路

代码展示:

public class IntegerDemo {public static void main(String[] args) {//定义字符串String s="91 27 46 38 56";//将字符串中数据抽离出来,以空格作为分割点String[] s1 = s.split(" ");//定义一个int数组,用于存这些数据int []arr=new int[s1.length];//以s1的长度//转换为int类型for (int i = 0; i < s1.length; i++) {arr[i] = Integer.parseInt(s1[i]);//赋值}//进行排序Arrays.sort(arr);//字符串拼拼接StringBuilder sb=new StringBuilder();for(int i = 0; i < arr.length; i++){if(i==arr.length-1){sb.append(arr[i]);}else{sb.append(arr[i]).append(" ");}}String result = sb.toString();System.out.println("排序后的:"+ result);}
}

1.5 自动装箱和拆箱

  • 装箱: 把基本数据类型转换为对应包装类型
  • 拆箱: 把包装类型转换为基本数据类型
    先看装箱:通过定义我们可以看出,装箱把基本数据类型转化为对应包装类型,例如:
Inter i=Integer.valueOf(100);//这里先把100转化为Inter类型,赋值
Integer i1=100;//这里java5之后就在jdk内部
//已经潜移默化的为我们包装好了
//它等同于上步

拆箱:与装箱执行相反的步骤

Integer i1=100;
//拆箱:转换为int型,用intValue()这个方法
//然后进行基本类型的运算后再赋值给i1
//完成自动拆箱
i1=i1.intValue()+200;//最后赋值是自动装箱

自动拆箱:省去了转化为int类型的基本数据类型,直接进行运算

Integer i1=100;
i1+=200;//内部隐含了自动拆箱和自动装箱

注意
如果定义时,定义的Integer i=null;那么i进行运算时会运行错误,这里要注意,引用类型的最好要判断是否为null只要是对象,就必须判断是否为空

2. Date类

要注意,Date类导包时要清楚自己导的哪个包


构造方法:
Date 代表了指定时间,精确到毫秒

举例:注意!在这里导入的util包下的

public class DateDemo {public static void main(String[] args) {Date d=new Date();//按道理输出的应该是地址,结果输出了时间,因为重写了toString方法System.out.println(d);//有参构造long data=1000*60*60;//毫秒*1000->秒->*60->分钟->*60->小时Date d2=new Date(data);System.out.println(d2);}
}
运行结果:
Wed Dec 15 17:51:04 CST 2021
Thu Jan 01 09:00:00 CST 1970//其中09:00:00是时区

2.1 Date常用方法

  • public long getTime() 获取的是日期对象,从1970年1月1日00:00:00到现在的毫秒
  • public void setTime(long time) 设置时间,给的是毫秒值

getTime:
public class DateDemo {public static void main(String[] args) {Date d=new Date();//获取时间System.out.println(d.getTime()*1.0/1000/60/60/24/365+"年");}
}

运行结果:

51.99024939979706年//从1970到现在
setTime
public class DateDemo {public static void main(String[] args) {Date d=new Date();long date=1000*60*60;d.setTime(date);System.out.println(d);}
}
运行结果:
Thu Jan 01 09:00:00 CST 1970

3. SimpleDateFormat类

概述

  • SimpleDateFormat是一个具体的类,用于以区域设置敏感的方式格式化解析日期。重点学习日期格式化和解析化
  • 日期和时间格式由日期和时间模式字符串指定,在日期和时间模式字符串中,从‘A’到‘Z’以及从‘a’到‘z’引号的字母被解释为表示日期或时间字符串的组件的模式字母
    常用模式字母对应关系
  • y…年
  • M…月
  • d…天
  • H…时
  • m…分
  • s…秒
    构造方法

    SimpleDateFormat格式化与解析日期
  • 格式化(从Date到String)public final String format(Date date):将日期格式化成日期/时间字符串
  • 解析(从String到Date)public Date parse(String souce):从给定字符串的开始解析文本以生成日期
    举例
    格式化
import java.text.SimpleDateFormat;
import java.util.Date;public class SimpleDateFormatDemo {public static void main(String[] args) {//格式化Date d=new Date();//无参构造//先创建SimpleDateFormat类SimpleDateFormat sdf = new SimpleDateFormat();//通过对象调用方法String s = sdf.format(d);System.out.println(s);}
}

运行结果:

2021/12/15 下午7:11

为了看起来更加方便,可以自己设置模式:传递参数:

 SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
运行结果


解析

要注意的点:字符串模式的格式要和传参一样
2021-12-15 12:00:00要和yyyy-MM-dd HH:mm:ss"格式对应,例如都需要-,在代码下面会提示异常,要抛出异常,快捷键Alt+Enter

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;public class SimpleDateFormatDemo {public static void main(String[] args) throws ParseException {//抛出异常//解析Date d=new Date();String s="2021-12-15 12:00:00";//先创建SimpleDateFormat类SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//这里格式要和模式的一样//通过对象调用方法Date ss = sdf.parse(s);//抛出异常Alt+EnterSystem.out.println(ss);}
}

3.1 案例-日期工具类


工具类:

import java.util.Date;
import java.text.ParseException;
import java.text.SimpleDateFormat;/*
工具类:构造方法私有,成员静态
*/
public class DateUtils {private DateUtils() {}//方法,把日期转化为指定格式的字符串//返回类型:String//参数:Date date,String formatpublic static String dateTostring(Date date,String format){SimpleDateFormat sdf=new SimpleDateFormat(format);String s = sdf.format(date);return s;}//方法,把字符串转化为指定格式的日期//返回类型:Date//参数:String s,String formatpublic static Date stringTodate(String s1,String format) throws ParseException {SimpleDateFormat sdf=new SimpleDateFormat(format);Date p = sdf.parse(s1);return p;}
}

测试类:

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;public class SimpleDateFormatDemo {public static void main(String[] args) throws ParseException {//抛出异常//创建日期对象Date d=new Date();//调用方法String s = DateUtils.dateTostring(d, "yyyy年MM月dd日 HH:mm:ss");System.out.println(s);//也可以拿到部分String s1 = DateUtils.dateTostring(d, "yyyy年MM月dd日");System.out.println(s1);System.out.println("----以下是解析----");String s2="2021-12-15 00:00:00";Date date = DateUtils.stringTodate(s2, "yyyy-MM-dd HH:mm:ss");System.out.println(date);}
}

运行结果:

4. Calendar类-日历

概述

  • Calendar为某一时刻和一组日历字段之间的转换提供了一些方法,并为操作日历字段提供了一些方法

  • Calendar提供了一个类方法getlnstance用于获取Calendar对象,其日历字段已使用当前日期和时间
    初始化: Calendar rightNow = Calendar.getInstance();


import java.util.Calendar;public class CalendarDemo {public static void main(String[] args) {//获取对象Calendar c = Calendar.getInstance();//多态的形式int year = c.get(Calendar.YEAR);//因为字段是静态修饰的,所以通过对象调用字段//即Calendar.YEARint month = c.get(Calendar.MONTH)+1;//一定要注意,月份是从0开始的,要+1int date = c.get(Calendar.DATE);System.out.println(year+"年"+month+"月"+date+"日");}
}

注意:这里的
月份是从0开始的,所以在使用时要+1

运行结果:

2021年12月15日

4.1 Calendar 的常用方法


add()方法,由于在默认类中重写了方法,所以这里可以直接使用

import java.util.Calendar;public class CalendarDemo {public static void main(String[] args) {//获取对象Calendar c = Calendar.getInstance();//多态的形式c.add(Calendar.YEAR,10);//在现在的基础上增加十年c.add(Calendar.DATE,-5);//在原来的基础上-5天int year = c.get(Calendar.YEAR);//因为字段是静态修饰的,所以通过对象调用字段//即Calendar.YEARint month = c.get(Calendar.MONTH)+1;//一定要注意,月份是从0开始的,要+1int date = c.get(Calendar.DATE);System.out.println(year+"年"+month+"月"+date+"日");}
}

运行结果:

set()方法

import java.util.Calendar;public class CalendarDemo {public static void main(String[] args) {//获取对象Calendar c = Calendar.getInstance();//多态的形式c.set(2022,11,05);//这里11出来的结果会是12int year = c.get(Calendar.YEAR);//因为字段是静态修饰的,所以通过对象调用字段//即Calendar.YEARint month = c.get(Calendar.MONTH)+1;//一定要注意,月份是从0开始的,要+1int date = c.get(Calendar.DATE);System.out.println(year+"年"+month+"月"+date+"日");}
}

运行结果:

以上就是对知识点的总结,总结不容易,希望大家三联支持哦

【javase系列基础包装类及日历类详细总结,看完不会来找我~】相关推荐

  1. Java面试题大全(整理版)1000+面试题附答案详解,最全面详细,看完不进你找我

    进大厂是大部分程序员的梦想,而进大厂的门槛也是比较高的,所以这里整理了一份阿里.美团.滴滴.头条等大厂面试大全,其中概括的知识点有:Java.MyBatis.ZooKeeper.Dubbo.Elast ...

  2. Java实用类,包装类,日历类,日期类等工具类常用方法

    文章目录 第二章-实用类 1.枚举类型 2.包装类 3.包装类的常用方法 4.包装类的自动装箱和拆箱 5.String类 6.StringBuffer对象 String,StringBuffer,St ...

  3. JAVA MemCache 史无前例的详细讲解 看完包精通MEMCACHE

    JAVA MemCache 史无前例的详细讲解!看完包精通MEMCACHE! 分类: 高并发_性能2012-08-22 09:15 5051人阅读 评论(0) 收藏 举报 javastringobje ...

  4. 2021 Java面试题大全(整理版)1000+面试题附答案详解,最全面详细,看完稳了!

    进大厂是大部分程序员的梦想,而进大厂的门槛也是比较高的,所以这里整理了一份阿里.美团.滴滴.头条等大厂面试大全,其中概括的知识点有:Java.MyBatis.ZooKeeper.Dubbo.Elast ...

  5. 网络安全工程师需要学哪些内容?零基础如何从入门到精通,看完这一篇就够了

    网络安全工程师需要学习哪些内容? 作为一名网络安全工程师,需要学习以下内容: 计算机网络和操作系统:网络安全工程师需要了解计算机网络和操作系统的基础知识,以便理解网络安全的基础原理. 网络协议和技术: ...

  6. JavaSE——面向对象基础(思想、类与对象、构造方法、重载、匿名对象)

    第1节 面向对象基础 一.面向对象思想 1.1 概述 面向对象(Object Oriented)是软件开发方法.面向对象的概念和应用已超越了程序设计和软件开发,是一种对现实世界理解和抽象的方法,是计算 ...

  7. Python常用基础语法知识点大全合集,看完这一篇文章就够了

    介绍 Python 是一门独特的语言,快速浏览一下他的要点: 面向对象:每一个变量都是一个类,有其自己的属性(attribute)与方法(method). 语法块:用缩进(四个空格)而不是分号.花括号 ...

  8. POI导出Excel工具类(简单看完就会)

    (一)POI介绍 Apache POI是Apache软件基金会的开源项目,POI提供API给Java程序对Microsoft Office格式档案读和写的功能. .NET的开发人员则可以利用NPOI ...

  9. 2022Java面试题大全(整理版)面试题附答案详解,最全面详细,看完稳了

    目录 JAVA八股文 Java基础 1. String 和StringBuffer和 StringBuilder的区别? 2. sleep() 区间wait()区间有什么区别? 3. Object 中 ...

最新文章

  1. Nature综述: 地球上细菌和古菌的生物被膜丰度
  2. PAT (Basic Level) Practice (中文)1006 换个格式输出整数 (15 分)
  3. 使用aggregate在MongoDB中查找重复的数据记录
  4. POSIX:可移植操作系统接口(Portable Operating System Interface of UNIX,缩写为 POSIX )
  5. VS中展开和折叠代码,还有其他快捷操作
  6. eclipse cdt无法调试_eclipse导入Web项目并且部署到tomcat(超详细)
  7. Linux操作系统基本使用知识
  8. 计算机视觉论文-2021-06-01
  9. 许久未见,归来仍是少年?
  10. 个人中心网页设计html,超全面!个人中心页面从思考到设计全过程
  11. 2021-08-07:与数组中元素的最大异或值。给你一个由非负整数组成的数组 nums 。另有一个查询数组 queries ,其中 queries[i] = [xi, mi] 。第 i 个查询的答案是
  12. 社会软件力量:六度分隔理论
  13. 每天自学3~4小时java,一年后能到什么程度
  14. BERT-MRC:统一化MRC框架提升NER任务效果
  15. 小泉的难题 结构体
  16. FreeImage的图像处理软件
  17. 小白看完都会了!mysql面试题sql语句
  18. 特斯拉又一次降价!这次最大幅度!
  19. excel 合并行列单元格
  20. BroadcastReceiver 动态注册

热门文章

  1. matlab C++ 实现对手机拍摄的机读卡结果识别
  2. P5149 会议座位 归并
  3. 识别孩子潜能的6大细节
  4. JAVA多线程解决哲学家问题(GUI演示)
  5. 【调剂】河北大学2022年硕士研究生招生拟接收调剂专业信息
  6. 毕业设计之 - 基于深度学的图像修复 图像补全
  7. Mint-UI时间组件起始时间问题
  8. How to Install Nvidia Kernel Module Cuda and Pyrit in Kali Linux
  9. filco蓝牙不好用_蓝牙党+精简布局键位的选择:Filco Minila Air青轴两个月使用体验...
  10. OPPOR9Plus系列通刷刷机包精简包_OPPOR9Plus线刷包救砖包_OPPOR9Plus纯净刷机包_OPPOR9Plus刷机教程下载