# Java学习笔记——常用类
## 包装类
为了让基本数据类型也具备对象的特性——可以调用方法,Java中每个基本数据类型都有一个对应的包装类,这样就可以像操作对象那样操作基本数据类型
基本类型 | 对应的包装类 |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Character |
boolean | Boolean |
包装类主要提供了两大类方法,分别为
将本类型和其他基本类型进行转换的方法
示例代码
int num1 = 100;
//创建Integer包装类对象
Integer num2 = new Integer(num1);
//分别转化为double、float、int类型
double num3 = num2.doubleValue();
float num4 = num2.floatValue();
int num5 = num2.intValue();
将字符串和本类型及包装类相互转换的方法
装箱:把基本类型转换成包装类,使其具有对象的性质,分为自动装箱和手动装箱
示例代码
double num1 = 100.0;
Double Num1 = new Double(num1);//手动装箱
Double NNum1 = num1;//自动装箱
拆箱:和装箱相反,把包装类对象转换成基本类型的值,分为自动拆箱和手动拆箱
示例代码
Integer num1 = new Integer(100);
int n = num1.intValue();//手动拆箱
int m = num1;//自动拆箱
基本类型和字符串间的转换
基本类型转换为字符串有三种方法:
- 使用包装类的toString方法
- 使用String类的valueOf方法
- 用一个空字符串加上基本类型,得到的就是基本数据对应的字符串
int c = 100;
String s1 = Integer.toString(c);
String s2 = String.valueOf(c);
String s3 = c + "";
字符串转换成基本类型有两种方法:
- 调用包装类的parseXxx静态方法
- 调用包装类valueOf方法,会自动拆箱
String s = "100";
int num1 = Integer.parseInt(s);
int num2 = Integer.valueOf(s);
## 使用Date和SimpleDateFormat类表示时间
- Date类最主要的作用是获取当前时间,使用Date类的默认无参构造方法创建出的对象就代表当前时间
- SimpleDateFormat类可以对时间进行格式化,可以将日期转换为指定格式的文本(
format
方法),或将文本转换为日期(parse
方法) - 调用SimpleDateFormat对象的parse方法时可能出现转换异常
ParseException
,需要异常处理 - 使用Date类需要导入
java.util
包,使用SimpleDateFormat时需要导入java.text
包
示例程序
//将当前日期按照格式转化为字符串输出
Date now = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(sdf.format(now));
//将字符串转化为日期输出
String str = "2021-1-17 21:33:00";
try{
Date date = sdf.parse(str);
System.out.println(date);
}catch(ParseException e){
System.out.println("格式转换出现错误");
}
运行结果
## Calender类的应用(推荐)
可以通过调用getInstance
方法获取一个Calender对象,此对象由当前日期时间进行初始化,默认代表当前时间
使用Calender获取年月日等时间信息
示例代码
Calendar calendar = Calendar.getInstance();
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH)+1;//0表示一月份
int day = calendar.get(Calendar.DAY_OF_MONTH);
int hour = calendar.get(Calendar.HOUR_OF_DAY);
int minute = calendar.get(Calendar.MINUTE);
int second = calendar.get(Calendar.SECOND);
System.out.println("当前时间:" + year + "-" + month + "-"
+ day + " " + hour + ":" + minute + ":" + second);
运行结果
Calender类提供了getTime
方法,用于获取Date对象,完成Calender和Date的转换
Date date = calender.getTime();
## Math类
Math类包含用于执行基本数学运算的方法,所有方法都是静态方法,使用方法Math.round()
常用的方法
返回值 | 方法名 | 解释 |
---|---|---|
long | round() | 返回四舍五入后的整数 |
double | floor() | 返回小于参数的最大整数 |
double | ceil() | 返回大于参数的最小整数 |
double | random() | 返回[0,1)之间的随机浮点数 |
示例代码
double a = 12.81;
int b = (int) a;//强制类型转换 b=12
long c = Math.round(a);//四舍五入 c=13
double d = Math.floor(a);//d=12.0
double e = Math.ceil(a);//e=13.0
double x = Math.random() * 10;//产生[0,10)的随机浮点数