JAVA基础 常用类一

JAVA基础 常用类一

包装类

我们平时经常使用的八大基本数据类型,也有其对应的引用数据类型,我们叫他们为包装类。

有了基本数据类型为什么还要与包装类型?

Java是一个面相对象的编程语言,基本类型并不具有对象的性质,为了让基本类型也具有对象的特征,就出现了包装类型,使用引用数据类型就具有了对象的性质,并且为其添加了属性和方法,丰富了基本类型的操作。

基本数据类型包装类(引用数据类型)
byteByte
shortShort
intInteger
longLong
floatFloat
doubleDouble
charCharacter
booleanBoolean

自动拆装箱:

​ 自动装箱:基本–>包装

​ 自动拆箱: 包装–>基本

比较:

总结: 表示的数据值相等
1.两个基本数据类型相比,肯定相等
2.两个通过new构建的Integer对象,不相等,new堆中地址不同
3.当基本数据类型与对应包装类型Integer去比较(自动装箱Integer|new Integer比较),都相等,包装类会先自动拆箱,
然后再与基本类型比教
4.如果两个Integer比较(Integer.valueOf()),内部会新建比较是否在缓冲区对象表示的数据值范围内(-128~127),如果是就返回通过一个缓冲区对象
如果不是,返回new Integer

 		int i1 = 127;
        int i2 = 127;
        Integer in1 = 127;
        Integer in2 = 127;
        Integer in3 = new Integer(127);
        Integer in4 = new Integer(127);

        System.out.println(i1 == i2);  //true
        System.out.println(in1 == in2); //true
        System.out.println(in3 == in4);  //false
        System.out.println(i1 == in1); //true
        System.out.println(i1 == in3);  //true
        System.out.println(in1 == in3);  //false
        //Integer.valueOf(128)
        Integer in5 = 128;
        Integer in6 = 128;
        System.out.println(in5==in6);  //false

枚举类(enum)

枚举:
表示一种事物的所有情况|可能,这个类型的实例由枚举类自己控制提供,(程序员确定已知)

枚举也是一个类,定义枚举类使用关键enum
所有的枚举类都会隐式的继承自java.lang.Enum类
在枚举类中,枚举类中的成员|枚举常量,作为当前枚举类的一个实例存在,默认被public static final修饰
枚举类的构造器默认private修饰,不允许外部通过new关键字创建对象

//状态
enum State{
    BASY,NORMAL,FREE;
}
public class Employee {
    private int id;
    private String name;
    private State stus;  //枚举类型的成员变量

    public Employee() {
    }

    public Employee(int id, String name, State stus) {
        this.id = id;
        this.name = name;
        this.stus = stus;
    }
    //>>>>
    //>>>
}

日期类

Date类

指的是java.util包下的日期类

构造器:
Date() 创建当前时间的日期对象
Date(long date) 表示从1970年1月1日00:00:00开始的多少ms以后的日期时间

1>date.getTime() 获得时间,长整型的毫秒数

2> boolean after(Date when) 测试此日期是否在指定日期之后。
boolean before(Date when) 测试此日期是否在指定日期之前。
int compareTo(Date anotherDate) 比较两个日期的订购。
boolean equals(Object obj) 比较两个相等的日期。

3>System.currentTimeMillis() 获取当前时间的毫秒数

java8的Date

Date 线程不安全的日期类,日期可改变setTime().

Java8新增的日期类,线程安全的,日期不可改变,返回新的日期对象

Java8提供的重要的日期类: LocalDate LocalDateTime DateTimeFormatter
了解计量单位类

常用方法

1>年份 : Year.now Year.of(2020)

​ 月份: Month.of(10) 枚举类

​ 年月日: LocalDate.now() LocalDate.of(2020,Month.of(2),02)

​ LocalDate.of(2020,Month.AUGUST,02)

2>格式化日期转化

//日期转化器

DateTimeFormatter formatter = DateTimeFormatter.ofPattern(“yyyy-MM-dd HH:mm:ss”);

//格式化日期字符串

LocalDateTime now = LocalDateTime.now();

//format(格式器) 成员方法
String nowStr = now.format(formatter); //放入格式器
System.out.println(nowStr); //2020-12-02 15:54:51

//parse(日期字符串,格式器) 静态方法
LocalDateTime time = LocalDateTime.parse(“2020-12-02 15:54:51”,formatter);
System.out.println(time);

//日期类存再系列的get方法
System.out.println(time.getYear());
System.out.println(LocalDate.now().getYear());
System.out.println(LocalTime.now().getMinute());

//日期计算系列类
LocalDate today = LocalDate.now();
LocalDate birthDate = LocalDate.of(2010, 11, 1);

//时期间隔 年月日
Period p = Period.between(birthDate, today);
System.out.println(p.getYears()+“年”+p.getMonths()+“月”+p.getDays()+“日”);

//瞬间
Instant inst1 = Instant.now();
Instant inst2 = inst1.minus(Duration.ofSeconds(10));
System.out.println(inst1);
System.out.println(inst2);
System.out.println("毫秒相隔 : " + Duration.between(inst1, inst2).toMillis());
System.out.println("秒相隔 : " + Duration.between(inst1, inst2).getSeconds());

3>日期格式化类

SimpleDateFormat() 构造一个 SimpleDateFormat使用默认模式和日期格式符号默认 FORMAT区域设置。

format (Date) 日期对象转为字符串

parse(String) 字符串转为日期对象

		//默认格式的转换器
        SimpleDateFormat simple = new SimpleDateFormat();  //2020/12/2 下午2:52
        SimpleDateFormat simple2 = new SimpleDateFormat("yyyy-MM-dd");

        Date date = new Date();
        //日期对象转为字符串
        System.out.println(simple.format(date));
        System.out.println(simple.parse("2020/1/1 下午2:52"));

        System.out.println(simple2.format(date));
        System.out.println(simple2.parse("2020-12-02"));


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值