文章目录
一、Object
是类层次的根类,每个类都使用object
作为超类。
成员方法
String toString()
返回该对象的字符串表示。
在创建对象的该类中重写,例如main中要new Student()
,则在Student类中重写toString()
boolean equals(Object obj)
使用==
来比较是否相等,引用类型比较的是地址值是否相等,基本类型是比较值是否相等
在创建对象引用的类中重写,例如main中要new Person()
,则在Person类中重写equals(Object)
二、System
包含一些有用的类字段和方法,它不能被实例化
##成员方法
static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
源数组,源数组起始索引,目标数组,目标数组起始索引,复制长度。static long currentTimeMillis()
以毫秒返回当前系统时间static void exit(int status)
终止虚拟机,0为正常退出static void gc()
垃圾回收,了解即可
三、Date
表示特定的瞬间,精确到毫秒,它可以通过方法来设定自己所表示的时间,可以表示任意时间。System.currentTimeMillis();
返回的是当前系统时间,1970-1-1到至今的毫秒数。
构造方法
Date()
创建的是一个表示当前系统时间的Date对象。Date(long date)
根据“指定时间”创建date对象,简单的加法运算,在1970-1-1的基础上+date
毫秒
显示当前系统时间的例子
Date d = new Date();
System.out.println(d.toLocaleString); //过时的方法,但是很好用
成员方法
- 毫秒 -> Date :设置,返回
void
,需要参数long
型
void setTime(long time)
使用方法进行设置
Date(long time)
直接构造的时候设置参数 - Date -> 毫秒:获取,返回
long
型,不需要参数
long getTime()
四、SimpleDateFormat
分为格式化和解析两个步骤
格式化
创建一个模式sdfnew SimpleDateFormat()
,将当前日期datenew Date()
,以这个格式输出sdf.format(date)
。
Date -> String
2048-8-26 -> 2049年8月26日
采用的成员方法是String format(Date date)
。
解析
将这个格式表示的日期,解析成默认格式
String -> Date
“2049年8月26日” -> 2049-8-26
采用的成员方法是Date parse(String source)
构造方法
SimpleDateFormat()
:使用默认的格式进行对象的构建SimpleDateFormat(String pattern)
:使用指定的格式进行对象的构建
注意:解析的字符串模式必须和构建对象的模式一样。
4个小姨,2个大美眉,2个小弟弟
(yyyy年MM月dd日)
//创建模式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");
//格式化
Date date = new Date();
String s = sdf.format(date);
System.out.println(s); //2019年4月16日
//解析
Date d = sdf.parse("2019年4月16日");
System.out.println(d); //2019-4-16
五、Calendar
成员方法
- 获取:
int get(int field)
- 修改:
void set(int field, int value)
- 添加:
abstract void add(int field, int amout)
Calendar c = Calendar.getInstance(); //使用默认时区和语言环境获得一个日历
c.set(Calendar.DAY_OF_MONTH, 20); //将DAY_OF_MONTH改成20
c.add(Calendar.MONTH, 2); //MONTH+2
c.get(Calendar.YEAR); //获得年份
Date与Calendar之间的转换
Date
->Calendar
Date date = new Date();
Calendar cal = Calendat.getInstance();
cal.setTime(date);
Calendar
->Date
Calendar cal = Calendar.getInstance();
Date date = cal.getTime();
六、Integer
由于基本数据类型只能做一些简单的操作和运算,所以Java为我们封装了基本数据类型,为每种基本数据类型提供了包装类对象。
包装类就是封装了基本数据的类,为我们提供了更多复杂的方法和一些变量。
byte | short | char | int | long | float | double | boolean |
Byte | Short | Character | Integer | Long | Float | Double | Boolean |
String -> int
- 方法1:
intValue();
- 方法2:
Integer.parceInt(String s);
Integer i = new Integer("10");
int a = i.intValue();
int b = Integer.parceInt("10");
int -> String
- 方法1:+
" "
; - 方法2:
String toString();
- 方法3:
static String toString(int i );
String s = i.toString();
String s2 = Integer.toString(10);
构造方法
Integer(int value)
Integer(String s)
七、自动装箱、自动拆包
JDK1.5特性:
- 自动装箱:基本数据类型转换为包装类对象的过程(使用构造方法实现该过程)。
- 自动拆包:包装类对象转换为基本数据类型的过程(
intValue()
方法实现)
自动装箱
Integer i = 10;
-> Integer i = new Integer(10);
自动拆包
int a = i;
-> int a = i.intValue();
八、正则表达式
常用正则表达式 | ||
字符 | x | 字符x |
\\ | 反斜线字符 | |
字符类 | [abc] | a或b或c |
[^abc] | 任何字符,除了a、b、c | |
[a-zA-Z] | a到z或A到Z | |
. | 任何字符 | |
\d | 数字[0-9] | |
\D | 非数字[0-9] | |
\s | 空的字符[\t\n\xoB\f\r] | |
\S | 非空白字符[^\s] | |
\w | 单词字符[a-zA-Z_O-9] | |
\W | 非单词字符[^\s] | |
数量词 | X? | 一次或一次也没有 |
X* | 零次或多次 | |
X+ | 一次或多次 | |
X{n} | 恰好n次 | |
X{n,} | 至少n次 | |
X{n,m} | 至少n次,不超过m次 | |
举一个栗子:
校验QQ — 条件:
-
5-15位
-
开头不为0
-
必须为数字
[1-9][0-9]{4,14}
第1个数字1~9内
第2个数字0~9内
出现4次不超过14次