一、System类
1、System.currentTimeMillis() 返回1970年1月1日到现在以毫秒为单位的当前时间
2、System.gc(); 就是垃圾回收。用户可以通过System.gc()通过虚拟机加快垃圾回收的速度,但不能控制垃圾回收,回收对象之前会调用finalize()方法做一些清理工作。
3、System.getProperty() 根据系统参数名称,得到系统参数的值。
注:@Deprecated,标识该方法为过时方法,已经有更好的方法去替代它,该方法可以用,但是不推荐用。
二、日期类
Calendar c = Calendar.getInstance();产生当前时间的日历类对象
c.add(Calendar.HOUR, 100); 计算当前时间过后一百小时
int year = c.get(Calendar.YEAR); 得到年
int month = c.get(Calendar.MONTH); 得到月
int ri = c.get(Calendar.DATE); 得到日
Date di = new Date(); 产生当前时间的日期对象
SimpleDateFormat sf = new SimpleDateFormat("yyy年MM月dd日 hh:mm:ss"); 构建指定输出格式的日期格式化对象
String str = sf.format(di); 将指定日期对象,以指定格式输出
三、包装类与自动装箱拆箱
基本数据类型相对应的包装类:
基本数据类型 包装类
byte · Byte类
short Short类
int Integer类
long Long类
float Float类
double Double类
boolean Boolean类
char Character类
注:包装类对象中包含的值不可变。
都具有:XXXValue()方法 显示包装类中封装的数据
包装类名.ParseXXX()方法 将字符串转化为基本数据类型
自动装箱:允许使用包装变量,接收基本数据类型的数据。
Integer x = 4;
实现过程中,会将基本数据类型的数据,封装成包装类对象,赋值给包装类变量。
等价于:Integer x = new Integer(4);
自动拆箱:允许使用包装类对象和基本数据类型的数据进行运算。
Integer y = new Ineger(5);
int z = y + 3;
实现过程中,会调用包装类对象的XXXValue()方法,将包装类中封装的基本数据取出来,再进行运算。
等价于:int z = y.intValue() + 3;
四、String类
String s = "abc";
String s1 = new String("abc"); 的区别:
String s = "abc";变量s是指向的字符串常量对象,该对象放在数据段中。
String s1 = new String("abc");变量s1指向的是堆中的字符串对象,该对象需要以数据段中的字符串常量做为模板,然后将内容拷贝在堆中。
所以有人说,new String("abc")产生了两个对象,一个在堆中,一个在数据段中。
String.charAt(int); 得到指定下标的字符
String1.equals(String2) 比较两个字符串是否相等,要区分大小写
String1.equalsIgnoreCase(String2) 比较两个字符串是否相等,不区分大小写
int index = String1.indexOf(String2); 得到字符串String2在String1第一次出现的下标,如果字符串不存在,则返回-1
int index = String1.lastIndexOf(String2); 得到字符串String2在String1最后一次出现的下标,如果字符串不存在,则返回-1
String.length() 得到字符串的长度,由个字符组成
String1.replace(String2, String3) 将String中指定的字符串Sring2,替换为新字符串String3
String.substring(int) 从下标为int开始,截取Stirng字符串的子串
String.substring(int1,int2) 从下标为int1开始,到下标为int2结束,截取String字符串的子串,包含下标为int1的字符,但不包含下标为int2的字符
String.trim() 去掉字符串两头的空格。
五、正则表达式
[]:匹配[]中的任意一个字符
{3,10}:前一个规则可以重复的次数,最少3次,最多10次
{3,}:前一个规则最少出现3次,没有上限限制
|:或者
\u4e00-u9fa5:匹配汉字
+:等价于{1,}最少出现一次,没有上限限制
*:等价于{0,}可以不出现,如果出现也可以多次,没有上限
?:等价于{0,1}可以不出现,要出现只能出现一次
.:任意字符
\d:等价于[0-9],匹配数字
\D:匹配非数字
\w:等价于[a-zA-Z0-9_],匹配合法标识符
\W:匹配非法标识符
\s:匹配空格和回车
\S:匹配非空格和回车
字符串具有长度不可改变的特性,当对字符串进行添加、删除、替换时,不会更改字符串的内容,而是产生一个新的字符串对象。
StringBuffer是缓冲区的对象,当对StringBuffer进行数据的添加、删除、替换,不会产生新的对象,直接更改StringBuffer的内容,所以StringBuffer可以解决String的不足。
如果你对字符串中的内容经常进行操作,特别是内容要修改时,那么使用StringBuffer,如果最后需要String,那么使用StringBuffer的toString()方法即可。
StringBuilder是线程不安全的,StringBufer是现成安全的。
性能:StringBuilder > StringBufer > String