包装类
- 基本数据类型是不具备对象的特性的,比如基本类型不能调用方法、功能简单。为了让基本数据类型也具备对象的特性, Java 为每个基本数据类型都提供了一个包装类,这样我们就可以像操作对象那样来操作基本数据类型。
- 基本数据类型与包装类之间的关系如下:
包装类提供了两大方法:
- 将本类型和其他基本类型进行转换的方法
- 将字符串和本类型及包装类之间进行转换的方法
- Integer包装类的部分方法
- 基本数据类型与包装类之间的转换:
基本数据类型与包装类之间经常需要进行相互转换,例如:
Integer a = new Integer(3); //创建一个整型类
int b = a + 3; //可以将对象的值与基本数据类型相加
在jdk1.5之后,提供了自动装箱和自动拆箱的机制后,包装类和基本类型之间的转换就更加轻松便利了。
- 装箱:把基本类型转换成包装类,使其具有对象的性质,又可分为手动装箱和自动装箱。
int a = 1;
Integer b = new Integer(a); //手动装箱
Integer c = a; //自动装箱
- 拆箱:和装箱相反,把包装类对象转换成基本类型的值,又可分为手动拆箱和自动拆箱。
Integer a = new Integer();
int b = a.intValue(); //手动拆箱
int c = a; //自动拆箱
- 将基本数据类型转换为字符串的方法
- 使用包装类的toString()方法;
- 使用String类的valueOf()方法;
- 用一个空字符串加一个基本数据类型,得到就是基本数据类型的字符串格式。
例:
int a = 3;
String s1 = Integer.toString(a);
String s2 = String.valueOf(a);
String s3 = a + "";
- 将字符串转换为基本数据类型的方法:
- 调用包装类的parseXxx()静态方法;
- 调用包装类的valueOf()将其转换为基本数据类型的包装类,再自动拆箱。
String s = "00101";
int a = Integer.parseInt(s);
int b = Integer.valueOf(s);
Data类和SimpleDataFormat类
- 在程序中经常需要用到处理日期和时间的相关数据,此时我们可以使用 java.util 包中的 Date 类。这个类最主要的作用就是获取当前时间。
Data d = new Data() //使用默认的构造方法创建Data对象
System.out.println(d); //输出时间
使用 Date 类的默认无参构造方法创建出的对象就代表当前时间,我们可以直接输出 Date 对象显示当前的时间,显示的结果如下:
这种输出格式是默认的,在实际应用中,用户还是偏好2014-6-11 09:22:30或2014/6/11 09:22:30的输出格式,所以,我们需要对时间进行格式化,这时我们就需要用到java.text包下的SimpleDataFormat类。
- 使用format()方法将日期转化为指定格式的文本格式;
Data data = new Data(); //创建Data对象,获取当前时间
//创建SimpleDataFormat对象,规定时间格式
//yyyy代表年份,MM代表月份,dd代表日期,HH代表时,mm代表分,ss代表秒
SimpleDataFormat sdf = new SimpleDataFormat("yyyy-MM-dd HH:mm:ss");
String f_data = sdf.format(data); //调用format()方法,将时间转化为规定格式存入字符串中
System.out.println(f_data); //输出写有日期的字符串
- 使用parse()方法将文本转换为日期
String str = "2014-6-11 09:22:30"; //创建一个字符串日期
SimpleDataFormat sdf = new SimpleDataFormat("yyyy-MM-dd HH:mm:ss");
Data d = sdf.parse(str); //将String类型转换为Data类型
注:
- 在使用SimpleDataFormat类中的parse()方法时,可能会产生转化异常,即ParseException,所以需要进行异常处理;
- 使用Data类时要导入java.util包,使用SimpleDataFormat类时要导入java.text包。
Calender类
- java.util.Calendar 类是一个抽象类,可以通过调用 getInstance() 静态方法获取一个 Calendar 对象,此对象已由当前日期时间初始化,即默认代表当前时间,例
Calendar c = Calender.getInstance();
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH);
int day = c.get(Calendar.DAY_OF_MONTH);
int hour= c.get(Calendar.HOUR_OF_DAY);
int minute= c.get(Calendar.MINUTE);
int second= c.get(Calendar.SECOND);
System.out.println("当前时间为:" + year + "-" + month + "-" + day + " " + hour + ":" + minute + ":" + second);
其中,调用 Calendar 类的 getInstance() 方法获取一个实例,然后通过调用 get() 方法获取日期时间信息,参数为需要获得的字段的值, Calendar.Year 等为 Calendar 类中定义的静态常量。
运行结果:当前时间为:2019-1-15 11:30:30
Calendar 类提供了 getTime() 方法,用来获取 Date 对象,完成 Calendar 和 Date 的转换,还可通过 getTimeInMillis() 方法,获取此 Calendar 的时间值,以毫秒为单位。如下所示:
Data d = c.getTime();
Long ms = c.getTimeInMillis();
System.out.println(d);
System.out.println(ms);
运行结果:
1550212082697
Fri Feb 15 14:28:02 CST 2019
Math类
- Math 类位于 java.lang 包中,包含用于执行基本数学运算的方法, Math 类的所有方法都是静态方法,所以使用该类中的方法时,可以直接使用类名.方法名。
- 方法: