文章目录
记录一些 java基础的Api,后期不断更新!
Date类
概述
时间日期类
Data类的构造方法
- Date():创建时间对象,代表当前系统时间
- Date(long date):根据制定的毫秒值创建日期对象。
Date类的成员方法
- long getTime():获得当前花时间的毫秒值(从1970.1.1 00:00:00到当前时间经过的毫秒数)
- void setTime(long date):设置毫秒数
毫秒数
1秒=1000毫秒
时间零点
1970年1月1日 00:00:00
DateFormat类
概述
- 是一个格式化日期对象抽象类
- 是一个抽象类,不能直接创建对象
使用方式
使用DateFormat的子类SimpleDateFormat来格式化日期对象。
常用构造方法
- SimpleDateFormat()
- 使用默认格式创建日期格式化对象
- SimpleDateFormat(String pattern)
- 根据指定的格式创建日期格式化对象。
常用方法
- String format(Date date)
- 将日期对象转换为字符串
- Date parse(String source)
- 将日期字符串转换为日期对象
日期对象转字符串步骤
- 创建日期格式化类SimpleDateFormat对象并指定日期模式。
- 调用format(Data d)方法进行转换,获得字符串对象。
// 使用指定的格式格式化日期对象
public static void testo2() {
//创建日期对象
Date d = new Date();
//创建格式化日期对象
//2017-09-07 09:22:50
SimpleDateFormat sdf = new SimpleDateFormat("HH时mm分ss秒");
// Date ==> String
String dateStr = sdf.format(d);
System.out.println(datestr); //15时31分11秒
}
字符串转日期对象步骤
- 创建日期格式化类SimpleDateFormat对象并指定日期模式。
- 调用parse(String dateStr)进行转换,获得日期对象
- 例子1:
// 将时间日期字符串转换为日期对象
// String ===> Date
public static void test03( throws ParseExceptiont
// 日期对象
String dateStr = "2021-10-10 10:20:30";
// 将时间日期字符串转换为日期模式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// String ===> Date
Date d = sdf.parse(dateStr);
System.out.println(d); // Tue Oct 10 10:20:30 CST 2021
}
- 例子2 :
static DateFormat getInstance() 获取为日期和时间使用 SHORT 风格的默认日期/时间格式器。
获取DateFormat默认格式
// 将时间日期字符串转换为日期对象
// String ===> Date
public static void test03( throws ParseExceptiont
// 日期对象
String dateStr = "2021-10-10 10:20:30";
// 将时间日期字符串转换为日期模式
SimpleDateFormat sdf = (SimpleDateFormat) DateFormat.getInstance();
sdf.applyPattern("yyyy-MM-dd HH:mm:ss");
// String ===> Date
Date d = sdf.parse(dateStr);
System.out.println(d); // Tue Oct 10 10:20:30 CST 2021
}
注意事项
将日期字符串转换为日期对象时指定的日期模式必须在字符串模式一致。
日期模式
代码 | 表示 |
---|---|
yyyy | 年 |
MM | 月 |
dd | 日 |
HH | 时 |
mm | 分 |
s | 秒 |
Calendar类
概述
是一个日历类,是一个抽象类,不能直接创建对象。
构造方法
- static Calendar getInstance()
- 获得一个日历对象
常用方法
-
Date getTime();
- 获得日期对象
-
int get(int field)
- 返回给定日历字段的值。
- 返回给定日历字段的值。
-
getTimeInMillis()
- 获得毫秒值
- 获得毫秒值
-
void add(int field, int amount)
- 将指定日历字段的值在当前值的基础上偏移一个值
- amount为正数,则向后偏移
- amount为负数,则向前偏移
-
void set(int field,int value)
- 将指定日历字段的值设置为指定的值
-
void set(int year,int month,int date)
- 将日历的年月日设置为指定值
- 将日历的年月日设置为指定值
注意事项
获得的月份需要加1才是正确的月份。
Math类
概述
Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。
常用方法
- static int abs(int a)
- 求a的绝对值
- static double ceil(double a)
- 返回大于等于参数a的最小整数
- static double floor(double a)
- 返回小于等于参数a的最大整数
- static double pow(double a, double b)
- 求a的b次方
- static double random()
- 返回0.0到1.0的随机数:[0,1) 本质还是Random类
- static int round(double a)
- 返回a的四舍五入的值
- 返回a的四舍五入的值
System类
概述
系统类,主要用于获取系统的属性数据,没有构造方法。
常用的方法
-
static long currentTimeMillis() 重点
- 获得当前系统的毫秒值
-
static void exit(int status)
- 退出JVM,终止程序运行
- status == 0 正常退出
- status == 负数 异常退出
-
static void gc()
- 运行垃圾回收器。 通知垃圾回收器回收垃圾。什么时候会进行垃圾回收取决垃圾回收器心情,不同JVM有不同的回收策略。
-
static Properties getProperties()
- 获得操作系统的属性
-
static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length) 重点数组复制
- src:源数组,要复制的数组
- srcPos:源数组的起始索引
- dest:目标数组
- destPos:目标数组的起始索引
- length:要复制元素的个数
基本数据类包
包装类的作用
- 能够将基本数据类型和字符串进行相互转换。
- “10” ==> 10
- 10 ==> “10”
八种基本数据类型的包装类
基本类型 | 包装类型 |
---|---|
int | Integer |
char | Character |
byte | Byte |
short | Short |
long | Long |
float | Float |
double | Doguble |
boolean | Boolean |
自动装箱和自动拆箱
概述
- JDK1.5的新特性
- 基本数据类和其包装类类型可以直接参与运算。
自动装箱概念
- Java自动将基本数据类型转为为其包装类类型的过程则称为自动装箱。
- int age = 100;
- Integer in = age;
自动拆箱的概念
- Java自动将包装类转换为其基本数据类型的过程称为自动拆箱。
注意事项
自动装箱和自动拆箱是由编译器根据语法规则自动完成的动作。
正则表达式
概念
一个用来定义匹配规则的字符串
作用
用来校验某个字符串是否符合规则。
String和正则表达式相关方法
- boolean matches(String regex)
- 判断当前字符串是否符合指定的规则
- String[] split(String 正则的规则)
- 使用正则表达式切割字符串
- String replaceAll( String 正则规则,String 字符串)
- 将符合正则规定的子串替换成指定的字符串
正则表达式语法规则
-
字符
- x 匹配x字符
- x 匹配x字符
-
字符类
- [abc] 匹配abc中任意一个字符
- [^abc] 匹配除abc以外任意一个字符
- [0-9] 匹配任意一个数字
- [a-zA-Z] 匹配任意一个字母
- [a-zA-Z_0-9] 匹配字母数字下划线任意一个
- 中括号可以放很多个字符,但匹配时只能匹配其中一个。
- 中括号可以放很多个字符,但匹配时只能匹配其中一个。
-
预定义字符类
- . 通配符,可以匹配除\r和\n以外的任意一个字符。
- \d 等价[0-9] 匹配任意一个数字
- \w 等价[a-zA-Z_0-9] 匹配字母数字下划线任意一个
- \s 匹配空格字符
- 数量词
- x? x可以出现0或1次
- x* x可以出现0或多次
- x+ x可以出现1次或多次
- x{n} x刚刚要出现n次
- x{n,} x至少要出现n次,可以等于n
- x{n,m} x至少出现n次,最多m次,[n,m]
正则表达式匹配练习
-
方法:boolean matches(String 正则的规则)
-
例子:
- 检查手机号码是否合法
- 规则:1开头,第二位可以是34578 后面9位数0-9
- 正则表达式:matches(“1[34578]\d{7}”);
-
检查QQ是否合法
- 规则:0不能开头,全是数字,位数5到10位
- 正则表达式:matches([1-9]\d{4,9});
正则表达式切割练习
- 方法:String[] split(String 正则的规则)
- 例子
- 2016-10-24 按照-切割字符串
- spilt("-");
- 18 22 44 66 按照空格切割字符串
- spilt(" ");
- 192.168.1.204 按照点切割字符串
- spilt("\.");
- 2016-10-24 按照-切割字符串
正则表达式替换练习
- 方法:String replaceAll( String 正则规则,String 字符串)
- 例子:
- “Hello12345World6789012” 将所有数字替换为 “#”
- replaceAll("\d+","#");
- “Hello12345World6789012” 将所有数字替换为 “#”