常用类
包装类的用途
对于包装类来说,这些类的用途主要包含两种:
1.作为和基本数据类型对应的类型存在,方便涉及到对象的操作,如Object[ ]、集合等的操作。
2.包含每种基本数据类型的相关属性如最大值、最小值等,以及相关的操作方法
(这些操作方法的作用是在基本数据类型、包装类对象、字符串之间提供相互之间的转化!)。
自动装箱和拆箱
自动装箱(autoboxing)和拆箱(unboxing):将基本数据类型和包装类自动转换。
自动装箱:基本类型的数据处于需要对象的环境中时,会自动转为“对象”。
自动拆箱:每当需要一个值时,对象会自动转成基本数据类型,没必要再去显式调用intValue()、doubleValue()等转型方法。
自动装箱/拆箱的本质是:自动装箱与拆箱的功能是编译器来帮忙,编译器在编译时依据您所编写的语法,决定是否进行装箱或拆箱动作。
总结
1.自动装箱调用的是valueOf()方法,而不是new Integer()方法。
2.自动拆箱调用的xxxValue()方法。
3.包装类在自动装箱时为了提高效率,对于-128~127之间的值会进行缓存处理。
超过范围后,对象之间不能再使用==进行数值的比较,而是使用equals方法。
字符串相关类
String类代表不可变的字符序列
StringBuilder类和StringBuffer类代表可变字符序列。
StringBuffer 线程安全,做线程同步检查, 效率较低。
StringBuilder 线程不安全,不做线程同步检查,因此效率较高。建议采用该类。
常用方法列表:
1.重载的public StringBuilder append(…)方法:可以为该StringBuilder 对象添加字符序列,仍然返回自身对象。
2.方法public StringBuilder delete(int start,int end):可以删除从start开始到end-1为止的一段字符序列,仍然返回自身对象。
3.方法public StringBuilder deleteCharAt(int index):移除此序列指定位置上的 char,仍然返回自身对象。
4.重载的public StringBuilder insert(…)方法:可以为该StringBuilder 对象在指定位置插入字符序列,仍然返回自身对象。
5.方法public StringBuilder reverse():用于将字符序列逆序,仍然返回自身对象。
6.方法public String toString():返回此序列中数据的字符串表示形式。
时间处理相关类
我们用long类型的变量来表示时间,从基准时间前后几亿年都能表示。
这个“时刻数值”是所有时间类的核心值,年月日都是根据这个“数值”计算出来的。
Date时间类(java.util.Date)
在标准Java类库中包含一个Date类。它的对象表示一个特定的瞬间,精确到毫秒。
1.Date() 分配一个Date对象,并初始化此对象为系统当前的日期和时间,可以精确到毫秒)。
2.Date(long date) 分配 Date 对象并初始化此对象,以表示自从标准基准时间以来的毫秒数。
3.boolean equals(Object obj)比较两个日期的相等性。
4.long getTime()返回毫秒数。
5.String toString()把此 Date 对象转换为以下形式的 String:dow mon dd hh:mm:ss zzz yyyy 其中:dow 是一周中的某一天 。
Date d = new Date(); //当前时刻的对象
System.out.println(d.getTime()); //返回时间对应的毫秒数
DateFormat类和SimpleDateFormat类
DateFormat类的作用:把时间对象转化成指定格式的字符串。反之,把指定格式的字符串转化成时间对象。
DateFormat是一个抽象类,一般使用它的的子类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
时间格式字符也可以为我们提供其他的便利。比如:获得当前时间是今年的第几天。
Calendar日历类
Calendar 类是一个抽象类,为我们提供了关于日期计算的功能,比如:年、月、日、时、分、秒的展示和计算。
GregorianCalendar 是 Calendar 的子类,表示公历。
其他常用类
Math类
java.lang.Math提供了一系列静态方法用于科学计算;常用方法如下:
1.abs 绝对值
2.acos,asin,atan,cos,sin,tan 三角函数
3.sqrt 平方根
4.pow(double a, double b) a的b次幂
5.max(double a, double b) 取大值
6.min(double a, double b) 取小值
7.ceil(double a) 大于a的最小整数
8.floor(double a) 小于a的最大整数
9.random() 返回 0.0 到 1.0 的随机数
10.long round(double a) double型的数据a转换为long型(四舍五入)
11.toDegrees(double angrad) 弧度->角度
12.toRadians(double angdeg) 角度->弧度
Random类
Random类: 专门用来生成随机数。Random类位于java.util包下。
Random rand = new Random();
//随机生成[0,1)之间的double类型的数据
System.out.println(rand.nextDouble());
//随机生成int类型允许范围之内的整型数据
System.out.println(rand.nextInt());
//随机生成[0,1)之间的float类型的数据
System.out.println(rand.nextFloat());
//随机生成false或者true
System.out.println(rand.nextBoolean());
//随机生成[0,10)之间的int类型的数据
System.out.print(rand.nextInt(10));
//随机生成[20,30)之间的int类型的数据
System.out.print(20 + rand.nextInt(10));
File类的基本用法
java.io.File类:代表文件和目录,用于:读取文件、创建文件、删除文件、修改文件。
File类的常见构造方法:public File(String pathname)
以pathname为路径创建File对象,如果pathname是相对路径,则默认的当前路径在系统属性user.dir中存储。
user.dir就是本项目的目录。上面代码执行后,在本项目和D盘下都生成了新的文件。
枚举
DK1.5引入了枚举类型。枚举类型的定义包括枚举声明和枚举体。格式如下:
enum 枚举名 {
枚举体(常量列表)
}
枚举体就是放置一些常量。
所有的枚举类型隐性地继承自java.lang.Enum。枚举实质上还是类!
而每个被枚举的成员实质就是一个枚举类型的实例,他们默认都是public static final修饰的。可以直接通过枚举类型名使用它们。