javadoc.exe命令就可以生成API文档
在使用 java.lang包里面的类时不需要import java默认import java.lang.*
使用哪个类导入哪个类 而不要import .*
2.Object
一个类如果没有显式extends某个类,则默认是extends Object类
任何一个类都是Object的子类
Object obj = 任何对象;
任何对象都可以调用Object里的方法
String toString() 直接输出引用变量的结果
boolean equals()
: 任何类型都可以进行比较,对于基本数据类型是比较值是否相等
对于引用数据类型比较是是否引用同一个对象
equals: 这是Object里的方法 默认是按==比较 每个类都可以重写该方法
用于比较对象里的内容是否相等
原则:1.与null比较为false
2.与this比较为true
3.类型不一样为false
int hashCode()
返回对象的哈希值
原则:如果两个对象equals为true,则hashCode一定要相等
如果两个对象equals为false,则hashCode尽量不要相等
不可以重写的方法(线程)
notify
notifyAll
wait
3.String
String是不可变数据类型 字符串里的内容不可以修改
String有一个常量池(方法区) 对于相同字面值的字符串在内存只保留一份
相当于节省了内存
String str = “Hello”; //首先会在常量池中查找是否有该字面值的字符串对象
如果有,则创建一个引用变量引用该对象
如果没有,则在常量池中创建一个字符串对象,然后用引用变量引用它
String ss = "Hello";
str = new String("Hello");
ss = new String("Hello");
重写了toString\equals方法
lenght()
isEmpty()
charAt()
indexOf()
lastIndexOf()
startWith()
endWith()
toLowerCase()
toUpperCase()
trim()
concat()
split()
replace()
subString()
replaceAll()
replaceFirst()
matches()
静态方法 valueOf() 把任何数据类型转换成字符串
以下方法支持正则表达式:
split()
matches()
replaceAll()
replaceFirst()
可变字符串:
StringBuilder 线程不安全,异步的,性能比较高
StringBuffer 线程安全,同步的,性能比较低
在进行操作时都是在字符串本身上进行修改,返回this
1.insert()
2.delete()
3.append()
4.replace()
5.reverse()
4.正则表达式
单个字符
. 代指任意一个字符
转义字符
\n
\r
\a
\t
\u
\0
\
字符集合
[abc]
[a-z]
[a-zA-Z0-9_]
[^abc]
[a-z&&[^bd]]
\d [0-9]
\w [0-9a-zA-Z_]
\s
\D
\W
\S
^
$
\b
\B
匹配次数
? 0或者1次
-
=1次
-
=0次
区间次数
{n} 只匹配固定的n次
{n,m} [n,m]次
{n,} >=n次
分组
() 单独是一组
(0086|+86)
标识符:
1.由数字字母下划线组成
2.不能由数字开头
8种基本数据类型
一切皆对象
包装类 8种基本数据类型所对应的类
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean
只有Character 和 Boolean类型是继承Object类
其余的继承 Number
java.lang.Number
提供了抽象方法 xxxxValue() xxx是基本数据类型 byte short int long float double
static Byte decode(String nm)
将 String 解码为 Byte。
- 任何一个包装类都提供了一个方法 构造方法 通过基本数据类型来构造
任何包装类都支持自动装箱 - 每一个包装类都支持字符串形式的构造
- 每一个包装类都有一个静态的方法 decode(String n) 把字符串解析成对应包装类对象
- 每个包装类对象都可以获取本身对应基本数据类型的值
装箱 和 拆箱
装箱: 基本数据类型数值 --> 包装类类型对象 构造方法
拆箱: 包装类类型对象 --> 基本数据类型的值 xxxValue()
decode(String n)能够解析成对应的包装类类型对象
自动装箱 自动拆箱
对于Integer对象有一个常量池 取值范围是[-128,127]
Integer i1 = 127;//引用常量池中的127对象
Integer i2 = 127;//引用常量池中的127对象
Integer i3 = new Integer(127);//引用堆内存中的一个新的对象 值是127
包装类:
static xxx decode(String m) 把字符串类型解析成包装类对象
static xxx parseXXX(String m)
String:
static String valueOf(xxx v) 把任何类型(包括包装类)转换成String类型
java.lang.Math
Math类有很多对数、开方、三角函数访求 E PI
BigDecimal 能够对超出double范围的数据进行运算 精确的结果
BigInteger
时间
java.util.Date
Date 精确到毫秒 底层维护一个long数据类型 记录一个毫秒数
存储的是一个毫秒数 到时间纪元的毫秒数
时间纪元: 1970年1月1日0点0分0秒0毫秒
格林威治: 公元0年
1. 重写了toString()方法
Thu Nov 29 10:55:09 CST 2018
2. 获得时间分量的方法基本过时
3. void setTime(long time)
//设置时间 参数是一个距离历元(epoch)的毫秒数
4. long getTime() 获得毫秒数
//求明天此时此该的日期
想按照自己的方式构造一个日期
2016 10 1 23 56 30
把字符串转换成一个日期
日期转换成一个字符串
java.text.SimpleDateFormat 用于字符串和日期之间的相互转换
格式字符串
字符串 --> 日期
日期 --> 字符串
字母 日期或时间元素 表示 示例
G Era 标志符 Text AD
y 年 Year 1996; 96
M 年中的月份 Month July; Jul; 07
w 年中的周数 Number 27
W 月份中的周数 Number 2
D 年中的天数 Number 189
d 月份中的天数 Number 10
F 月份中的星期 Number 2
E 星期中的天数 Text Tuesday; Tue
a Am/pm 标记 Text PM
H 一天中的小时数(0-23) Number 0
k 一天中的小时数(1-24) Number 24
K am/pm 中的小时数(0-11) Number 0
h am/pm 中的小时数(1-12) Number 12
m 小时中的分钟数 Number 30
s 分钟中的秒数 Number 55
S 毫秒数 Number 978
z 时区 General time zone Pacific Standard Time; PST; GMT-08:00
Z 时区 RFC 822 time zone -0800
y 年
M 月
d 日
H 24小时制
h 12小时制
m 分钟
s 秒
S 毫秒
a 上午/下午
D
SimpleDateFormat sdf = SimpleDateFormat(“格式字符串”);
Date parse(String s);//把一个字符串按照格式字符串解析成一个时间Date类型
String format(Date d);//把一个时间Date类型按照指定的格式格式成字符串
时间运算
Calendar 日历类 抽象类
不能实例化对象
格里高利历 公历 阳历
提供一个静态方法来获得一个日历类的对象
static Calendar getInstance()
提供了很多方法用于操作时间分量
静态属性来表示 时间分量
YEAR 年
MONTH 月 从0开始到11
DAY_OF_MONTH 日
DAY_OF_YEAR 一年中的第几天
HOUR 上午或者下午的小时
HOUR_OF_DAY 24小时制
MINUTE 分
SECOND 秒
DAY_OF_WEEK 一周中的第几天 从星期天开始
成员方法:
int get(int field);//参数取决于Calendar的静态属性
void set(int field,int value);
和Date类之间的转换
Date getTime();
void setTime(Date d);
Date 时间类 表示一个时间
SimpleDateFormat 用字符串的形式来表示时间
时间 和 字符串 之间转换
Calendar 日历类 方便操作时间分量 能够和Date类型之间进行转换