Java连载78-深入自动拆装箱、Date类和SimpleDateFormat格式化

一、深入自动拆装箱

1.直接举例:

public class D78_AutomaticUnpackingAndPacking{
  public static void main(String[] args){
    Integer i1 = new Integer(10);
    Integer i2 = new Integer(10);
    //这里不会自动进行拆箱
    System.out.println(i1==i2);//false
    //比较两个Integer类型的数据是否相等,不能用“=="
    //Integer已经重写了Object中的equals方法
    System.out.println(i1.equals(i2));//true
    //重点:
    Integer i3 = 128;
    Integer i4 = 128;
    //上面的等同于:
    //Integer i3 = new Integer(128);
    //Integer i4 = new Integer(128);
    System.out.println(i3==i4);//false

    Integer i5 = 127;//这条语句直接在方法区的整形常量池中拿来,不会再堆内存中创建这个对象
    Integer i6 = 127;
    System.out.println(i5==i6);//true
?
    Integer i5 = -128;
    Integer i6 = -128;
    System.out.println(i5==i6);//true
?
    Integer i5 = -129;
    Integer i6 = -129;
    System.out.println(i5==i6);//false
?
    //如果数据是在-128到127之间,java中引入了”整形常量池“(可以类比字符串常量池)

    String s1 = "ab";
    String s2 = "ab";
    System.out.println(s1==s2);//true,原因就是字符串常量池
  }
}
二、日期相关的操作

1.获取当前时间

java.util.Date

import java.util.Date;
import java.text.SimpleDateFormat;
?
public class D78_2_{
  public static void main(String[] args) throws Exception{
    //之所以要抛出异常,是因为String转换为Date的时候容易报错
    //获取自1970年1月1日 00时00分00秒000毫秒到当前的毫秒数
    //1000毫秒等于一秒
    long now = System.currentTimeMillis();
    System.out.println(now);//1245839589
    //获取系统当前时间
    Date nowTime = new Date();
    System.out.println(nowTime);//Tue Jan 30 23:21:23 CST 2020
    //以上程序说明java.util.Date;已经重写了Object中的toString方法
    //只不过重写的结果对于中国人来讲不是很容易理解
    //java.util.Date;-->String
    /*
    *日期格式:
    *y  年  M  月  d  日  H  小时  m  分  s  秒  S  毫秒
    */
    //创建日期格式化对象
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日  HH:mm:ss SSS");
    //开始格式化(Date-->String)
    String strTime = sdf.format(nowTime)//2020年01月30日  23:29:12 567
    /*
    *获取特定的日期
    */
    String strTime2 = "2008年08月8日 08:08:08 888";
    //将String日期转换为类型Date
    //String-->Date
    //1.创建日期格式化对象
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss SSS");
    //不能随意指定格式,应该和要解析的字符串的类型格式相对应
    Date t1 = sdf.parse(strTime);
    System.out.println(t1);
  }
}

三、源码:

D78_1_AutomaticUnpackingAndPacking.java

D78_2_TimeMethodAnalysis.java

https://github.com/ruigege66/Java/blob/master/D78_1_AutomaticUnpackingAndPacking.java

https://github.com/ruigege66/Java/blob/master/D78_2_TimeMethodAnalysis.java

2.CSDN:https://blog.csdn.net/weixin_44630050

3.博客园:https://www.cnblogs.com/ruigege0000/

4.欢迎关注微信公众号:傅里叶变换,个人公众号,仅用于学习交流,后台回复”礼包“,获取大数据学习资料

原文地址:https://www.cnblogs.com/ruigege0000/p/12244444.html

时间: 2024-11-20 03:06:11

Java连载78-深入自动拆装箱、Date类和SimpleDateFormat格式化的相关文章

浅谈java中的自动拆装箱

Java在jdk1.5之后推出的一个新特性:自动拆装箱. 该特性不是jvm认可的,而是编译允许 public class Integerdemo03 {     public static void main(String[] args) {         /**          * 编译器在编译下列代码时补充了代码          * Integer n= Integer.valueOf(1);          * 自动装箱          */         int a=100;

Java自动拆装箱理解

首先,java中的基本数据类型其实只是为了方便程序员编程,java本身作为一门面向对象的语言恨不得不用基本数据类型,但是这样做会对广大程序员不友好,所以这也可以看作是原则向方便的一次妥协^^.好,扯远了,进入正题. 我们知道,java中的基本数据类型(int, float, double...)其实都对应一种包装类型(Integer, Float, Double...),为什么会有包装类型呢?其实还是那句话,基本数据类型本不应该存在于纯面向对象语言java中,只是为了方便,包装类型是基本数据类型

java基础第九天_多线程、自动拆装箱

1.蜜蜂和熊的生产消费关系,熊在蜂蜜满10斤吃掉.蜜蜂一次生产一斤蜂蜜,且蜜蜂生成一斤蜂蜜花费的时间是10s. 十只蜜蜂和两只熊. 2.取出两个字符串中最大的公共子串. 3.StringBuffer是线程安全的,StringBuilder不是线程安全.单线程访问情况下,性能是否一致? 4.完成8中基本数据类包装类的练习,完成自动拆装箱操作. 1.蜜蜂和熊的生产消费关系,熊在蜂蜜满10斤吃掉.蜜蜂一次生产一斤蜂蜜,且蜜蜂生成一斤蜂蜜花费的时间是10s. 十只蜜蜂和两只熊. /** * 蜜蜂.熊的例

java自动拆装箱总结

java中有8中基本的数据类型,这八种基本的数据类型都有对应的封装类型,下面是对应关系: int--Integer float--Float double--Double byte--Byte long--Long char--Character boolean--Boolean short--Short 基本数据类型和它对应的封装类型之间可以相互转换,从基本数据类型到封装类型叫做装箱,从封装类型到基本数据类型叫拆箱,自动拆装箱是jdk5.0提供的新特特性,它可以自动实现类型的转换,代码如下:

Java基础:JDK1.5后的新特性:自动拆装箱,以及注意事项

首先来看一段代码: 1 Integer x = new Integer(4); 2 Integer y = 4; 在JDK1.5版本后,以上两行代码都能编译通过,那是因为JDK1.5后加入新特性,自动装箱. 第一句代码是正常的创建对象方法,创建了一个Integer包装类对象. 而第二句中,当左边的Interger类型变量指向右边的int基本类型数据时,右边的基本数据类型会自动装箱成Integer对象,即隐式执行了new Integer(4). 再来一段代码: 1 Integer x = new

Java支持的数据类型有哪些?什么是自动拆装箱?

Java有8种基本数据类型: 整数型:byte(8).short(16).int(32).long(64) 浮点类型:float(32).double(64) 字符型:char(16位的Unicode字符) 布尔型:boolean jdk1.5之后支持自动拆装箱 自动装箱就是Java编译器在基本数据类型和对应的对象包装类型之间做的一个转化.自动拆箱反之. 原文地址:https://www.cnblogs.com/Freak-Lew/p/9190589.html

静态导入方法即自动拆装箱(java)

package example6;import static java.lang.System.out;import static java.util.Arrays.sort;import java.util.Arrays;class quietWay{    /*1.静态导入(了解)     * 可以在代码里面,直接使用静态导入方法,导入静态方法或常量     * import static 包名;     * 比如实现一个计算器,在math类里面     * */    public sta

一文读懂什么是Java中的自动拆装箱

基本数据类型 基本类型,或者叫做内置类型,是Java中不同于类(Class)的特殊类型.它们是我们编程中使用最频繁的类型. Java是一种强类型语言,第一次申明变量必须说明数据类型,第一次变量赋值称为变量的初始化. Java基本类型共有八种,基本类型可以分为三类: 字符类型char 布尔类型boolean 整数类型byte.short.int.long 浮点数类型float.double. Java中的数值类型不存在无符号的,它们的取值范围是固定的,不会随着机器硬件环境或者操作系统的改变而改变.

Java自动拆装箱(Autoboxing and unboxing)学习

在学习并发的过程中,用"Boolean bool = true"的自动装箱方式初始化了两个对象锁去锁两块代码,结果运行的时候出现了竞争等待,调试了一下发现两个锁变量指向的是同一个对象,由此可见我对自动拆装箱的机制想的太简单了,查了一下,发现这个机制还挺细节,那就记录一下: 本文主要有以下几个方面: 什么是自动拆装箱 拆装箱的实现 拆装箱发生的场景 关于String 回首望月 尝试的第一篇博客,不当之处,求轻喷! 一. 什么是自动拆箱与装箱 我们都知道,Java定义了8种基本类型和与之对