赞
踩
Math 类包含执行基本数字运算的方法
没有构造方法,如何使用类中的成员?
看类的成员是否都是静态的,如果是,通过类名就可以直接调用
System 包含几个有用的类字段和方法,它不能被实例化,可以通过类名访问
Object 是类层次结构的根,每个类都可以将 Object 作为超类,所有类都直接或者间接继承自该类。
构造方法:public Object()
回想面向对象中,为什么说子类的构造方法默认访问的是父类的无参构造方法?
因为他们的顶级父类只有无参构造方法
自动生成:Alt + Ins
Integer:包装一个对象中的原始类型 int 的值
构造方法已过时(但是还可以用),采用静态方法获取对象
//public static Integer valueOf(int i):返回表示表示指定的 int 值的 Integer 实例
Integer i1 = Integer.valueOf(100);
System.out.println(i1); //输出: 100
//public static Integer valueOf(String s):返回一个保存指定值的 Integer 对象 String
Integer i2 = Integer.valueOf("100");
System.out.println(i2); //输出: 100
基本类型包装类最常见的操作就是:用于基本类型和字符串之间的相互转换
public class IntegerDemo{
public static void main(String[] args){
//int --- String
int i1 = 100;
String s1 = String.valueOf(i1);
System.out.println(s);
//String --- int
String s2 = "100";
int i2 = Integer.parseInt(s2);
System.out.println(s2);
}
}
//装箱:把基本数据类型转换为对应的包装类类型
Integer i1 = Integer.valueOf(100); //装箱
Integer i2 = 100; //自动装箱,但底层也是Integer.valueOf(100)
//拆箱:把包装类类型转换为对应的基本数据类型
//要实现 i2 += 200;
i2 = i2.intValue() + 200; //先拆箱,再装箱
i2 += 200; //先自动拆箱,将i2转换为int类型,与200相加,
//然后自动装箱赋值给i2
Integer i = 100;//自动装箱
i += 100; //i = i + 100; i + 100 自动拆箱; i = i + 100 自动装箱
Integer i = null;
i += 100; //报错:NullPointerException
Integer i = null;
if(i != null){
i += 100;
}
注意:在使用包装类类型的时候,如果做操作,最好先判断是否为空
推荐:只要是对象,在使用前就必须进行不为 null 的判断
Date 代表了一个特定的时间,精确到毫秒
注:标准基准时间:1970年1月1日00:00:00
package com.cappuccino; import java.util.Date; /* public Date():分配一个Date对象,并初始化,以便它代表它被分配的时间,精确到毫秒 public Date(long date):分配一个Date对象,并将其初始化为表示从标准基准时间起指定的毫秒数 标准基准时间:1970年1月1日00:00:00 CST:中国标准时间 */ public class DateDemo01 { public static void main(String[] args){ Date d1 = new Date(); System.out.println(d1); long date = 1000*60*60; // 1小时 Date d2 = new Date(date); System.out.println(d2); //输出: Thu jan 01 09:00:00 CST 1970 /* 为什么是 09:00:00 而不是01:00:00? 因为北京在东八区 */ } }
package com.cappuccino; import java.util.Date; /* public long getTime():获取的是日期对象从1970年1月1日00:00:00到现在的毫秒值 public void setTime(long time):设置时间,给的是毫秒值 */ public class DateDemo02 { public static void main(String[] args) { Date d = new Date(); //创建日期对象 System.out.println(d.getTime()); System.out.println(d.getTime() * 1.0 / 1000 / 60 / 60 / 24 / 365 + "年"); System.out.println(d); //当前时间 long time = System.currentTimeMillis();//获取当前时间 d.setTime(time); System.out.println(d); } }
SimpleDateFormat 是一个具体的类,用于以区域设置敏感的方式格式化和解析日期。这里重点介绍 日期格式化和解析。
日期和时间格式由日期和时间模式字符串指定,在日期和时间模式字符串中,从’A’ 到 ‘Z’ 以及从 ‘a’ 到 ‘z’ 引导的字母被解释为表示日期或时间字符串的组件的模式字母。
常用的模式字母及其对应关系:
package com.cappuccino; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; /* 构造方法: public SimpleDateFormat():构造一个SimpleDateFormat,使用默认模式和日期格式 public SimpleDateFormat(String pattern):构造一个SimpleDateFormat使用给定的模式和默认的日期格式 格式化(从 Date 到 String) public final String format(Date date):将日期格式化成日期/时间字符串 解析(从 String 到 Date) public Date parse(String sourse):从给定字符串的开始解析文本以生成日期 */ public class SimpleDateFormatDemo { public static void main(String[] args) throws ParseException { //格式化:从Date到String Date d1 = new Date(); SimpleDateFormat sdf1 = new SimpleDateFormat(); String s1 = sdf1.format(d1); System.out.println(s1); SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String s2 = sdf2.format(d1); System.out.println(s2); System.out.println("-------"); //解析:从String到Date String s3 = "2020-11-25 17:13:14"; //日期字符串与模式字符串要对应 Date d2 = sdf2.parse(s3); //ParseException System.out.println(d2); } }
Calendar rightNow = Calendar.getInstance();
package com.cappuccino; import java.util.Calendar; /* Calendar 为某一时刻和一组日历字段之间的转换提供了一些方法,并为操作日历字段提供了一些方法 Calendar 提供了一个类方法 getInstance 用于获取 Calendar 对象, 其日历字段已使用当前日历和时间初始化 Calendar rightNow = Calendar.getInstance(); */ public class CalendarDemo { public static void main(String[] args){ Calendar cal = Calendar.getInstance(); //多态的形式 int year = cal.get(Calendar.YEAR); int month = cal.get(Calendar.MONTH) + 1;//加1是因为月份是从0开始的 int date = cal.get(Calendar.DATE); System.out.println(year + "-" + month + "-" + date); } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。