基础数据类型与包装类
包装类,将基本数据类型包装成类(变成引用数据类型)
基本数据类型 | 包装类 |
---|---|
byte | Byte |
short | Short |
int | integer |
long | Long |
char | Character |
float | Float |
double | Double |
boolean | Boolean |
装箱,从基本数据类型转换为对应的包装类对象;
拆箱,从包装类对象转换为对应的基本数据类型;
public class test01 {
public static void main(String[] args) {
// 装箱,基本数据类型 -> 包装类对象
// Integer a = new Integer(1); new Integer()在jdk9开始已经弃用
Integer b = Integer.valueOf(10);
Integer c = Integer.valueOf("100");
Integer m = 100;
// 拆箱,包装类对象 -> 基本数据类型
int d = b.intValue();
float e = b.floatValue();
double f = c.doubleValue();
// 自动装箱
Integer g = 1000;
// 自动拆箱
int h = g;
}
}
parseXXX()
,字符串转换为基本数据类型
toString()
,基本数据类型转换为字符串
public class test01 {
public static void main(String[] args) {
// 基本数据类型转为字符串
int number = 20220222;
String str1 = Integer.toString(number);
String str2 = String.valueOf(number);
// 字符串转为基本数据类型
int i = Integer.parseInt("20220222");
System.out.println("str1 = " + str1);
System.out.println("str2 = " + str2);
System.out.println("i = " + i);
}
}
日期时间相关类
java.util
包,提供了Date
类来封装当前的日期和时间
构造函数
// 当前时间 Date() // 从1970年1月1日起的毫秒数作为参数(时间戳) Date(long millisec)
常用方法
// 返回自1970年1月1日00:00:00GMT以来至Date对象表示的毫秒数(时间戳) long getTime() // 调用此方法的Date对象在指定日期之后返回True,否则返回false boolean after(Date date) // 调用此方法的Date对象在指定日期之前返回True,否则返回false boolean before(Date date)
import java.util.Date;
public class test02 {
public static void main(String[] args) {
Date date1 = new Date();
Date date2 = new Date(1700636237966L);
System.out.println(date1);
System.out.println(date1.getTime());
System.out.println(date2);
}
}
执行结果:
Wed Nov 22 15:00:41 CST 2023
1700636441171
Wed Nov 22 14:57:17 CST 2023
java.time
包,提供了新的日期时间处理类
核心类:
LocalDate
不包含具体时间的日期;LocalTime
不包含日期的时间;LocalDateTime
包含了日期及时间;
LocalDate
常用API
getYear()
int 获取当前日期的年份getMonth()
Month 获取当前日期的月份getMonthValue()
int 获取当前日期在第几月getDayOfWeek()
表示该对象表示的日期是星期几getDayOfMonth()
int 表示该对象表示的日期是这个月的第几天getDayOfYear()
int 表示该对象表示的日期是今年的第几天withYear(int year)
LocalDate 修改当前对象的年份withMonth(int month)
LocalDate 修改当前对象的月份
import java.time.LocalDate;
public class test02 {
public static void main(String[] args) {
LocalDate today = LocalDate.now();
System.out.println(today);
System.out.println(today.getDayOfMonth());
System.out.println(today.getMonth());
System.out.println(today.getDayOfYear());
System.out.println(today.getDayOfWeek());
// 加减年月日
LocalDate changeDate1 = today.plusYears(2);
LocalDate changeDate2 = today.minusMonths(10);
System.out.println(changeDate1);
System.out.println(changeDate2);
// 日期比较
System.out.println(changeDate1.isAfter(today));
}
}
- 日期格式化
线程安全的日期月时间DateTimeFormatter
LocalDateTime ldt = LocalDateTime.now();
System.out.println(ldt);
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String ldtStr = dtf.format(ldt);
System.out.println(ldtStr);
执行结果:
2023-11-22T15:43:16.919695
2023-11-22 15:43:16
Math类
Java中操作数学运算使用Math
类,由于构造函数被私有化,所以不允许创建对象。静态方法,直接使用类名.方法名
。
public class test03 {
public static void main(String[] args) {
// 计算平方根
System.out.println(Math.sqrt(64));
// 计算立方根
System.out.println(Math.cbrt(64));
// 向上取整
System.out.println(Math.ceil(1.1));
// 向下取整
System.out.println(Math.floor(1.9));
// 四舍五入
System.out.println(Math.round(1.49));
// 取最小值
System.out.println(Math.min(8,10));
// 取最大值
System.out.println(Math.max(8,10));
// 取绝对值
System.out.println(Math.abs(-10.1));
// a的b次方
System.out.println(Math.pow(2,8));
// 静态常量E 自然对数e
System.out.println(Math.E);
// 圆周率π
System.out.println(Math.PI);
}
}
Math.random()
public class test04 {
public static void main(String[] args) {
System.out.println(Math.random());
// 产生1到10的随机数
for (int i=0; i<20;i++) {
int random = (int)(Math.random()*10+1);
System.out.println(random);
}
}
}
Random类
import java.util.Random;
public class test04 {
public static void main(String[] args) {
Random random = new Random();
System.out.println(random.nextInt());
System.out.println(random.nextInt(100));
System.out.println(random.nextFloat());
}
}
枚举类型
在数学和计算机科学理论中,枚举是列出某些有穷序列集的所有成员的程序,或者是一种特定类型对象的计算。
Java里面的枚举使用Enum关键字。
public class test06 {
public static final int MONDAY = 1;
public static final int TUESDAY = 1;
public static final int WEDNESDAY = 1;
public static final int THURSDAY = 1;
public static final int FRIDAY = 1;
public static final int SATURDAY = 1;
public static final int SUNDAY = 1;
public static void main(String[] args) {
DayEnum dayEnum = DayEnum.MONDAY;
}
}
enum DayEnum{
MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY,SATURDAY,SUNDAY
}
enum SexEnum {
boy, girl
}
常用API
// 返回此枚举常量的名称
name()
// 和name方法一样
toString()
// 获取枚举变量在枚举类中声明的顺序
ordinal()
常用方法
// 通过字符串获取对应的枚举值
valueOf()
// 获取枚举类中的所有变量,并作为数组返回
valueOf()
import java.util.Arrays;
public class test06 {
public static final int MONDAY = 1;
public static final int TUESDAY = 1;
public static final int WEDNESDAY = 1;
public static final int THURSDAY = 1;
public static final int FRIDAY = 1;
public static final int SATURDAY = 1;
public static final int SUNDAY = 1;
public static void main(String[] args) {
DayEnum dayEnum = DayEnum.FRIDAY;
System.out.println(dayEnum);
System.out.println(dayEnum.name());
System.out.println(dayEnum.toString());
System.out.println(dayEnum.ordinal());
System.out.println(DayEnum.valueOf("WEDNESDAY"));
System.out.println(Arrays.toString(DayEnum.values()));
}
}
enum DayEnum{
MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY,SATURDAY,SUNDAY
}
enum SexEnum {
boy, girl
}