Java常用类库
1、Object类
Object类是所有类直接或间接父类。
方法:
toString():以字符串形式返回对象的文本信息;
hashCode():返回该对象的哈希值;
getClass():返回对象的类类型;
equals(Object obj):比较两个对象是否相等
2、包装类
2.1 装箱与拆箱
实例:
byte b = 1;//基本数据类型 System.out.println(b+1); Byte b2 = new Byte(b);//包装类的对象 System.out.println(b2); Byte b3 = b;//自动装箱,把基本数据类型转为对象 System.out.println(b3+5); byte b4 = new Byte(b);//自动拆箱,把对象转为基本数据类型 System.out.println(b4+7); |
2.2 Number类的常用方法
1. 构造方法;
2. valueOf();
3. toString();
2.3 Character 常用方法
1. valueOf();
2. toString();
3. isDigit():判断是否为数字
4. isLetter():判断是否为字母
5. isUpperCase():判断是否为大写字母
6. isLowerCase():判断是否为小写字母
7. isWhitespace():判断是否为空格
8. toUpperCase():转为大写字母
9. toLowerCase():转为小写字母
3、字符串操作
3.1 String类
String字符串的值不可更改。
常用方法:
1. charAt(int i):返回指定索引处的字符;
2. length():返回字符串的长度;
3. contains(CharSequence c):判断字符串中是否包含指定的字符序列;
4. startsWith(String s):判断字符串是否以指定的前缀开始;
5. endsWith(String s):判断字符串是否以指定的后缀结束;
6. indexOf(char c):返回指定字符在字符串中第一次出现的索引;
7. lastIndexOf(char c):返回指定字符在字符串中最后一次出现的索引;
8. isEmpty():当且仅当字符串长度为0时,返回true;
9. replace(char old,char new):把字符串中的old字符替换为new字符,然后返回一个新字符串;
10. split(String s):根据指定的规则拆分字符串,返回字符串数组;
11. subString(int begin,int end):按照指定的索引截取字符串,从begin(包含)开始,到end(不包含)结束;
12. toLowerCase():把字符串的英文字母全部转为小写;
13. toUpperCase():把字符串的英文字母全部转为大写;
14. trim():清除字符串前后的空白字符;
15. valueOf():把指定类型的数据转为字符串类型;
16. toCharArray():把字符串转为字符数组;
3.2 可变字符序列
StringBuffer和StringBuilder都是可变的字符序列,唯一的区别:StringBuffer是线程安全的,StringBuilder是线程不安全;
常用方法:
1. append():追加;
2. toString():把所有追加的内容以String类型返回;
4、System类
常用方法:
currentTimeMillis():获得当前时间戳,以毫秒为单位
exit(0):正常终止JVM
5、时间日期操作
5.1 时区操作(了解)
实例:
/* * 获取可用时区ID的方法 */ //获得时区对象的方法 // TimeZone t = TimeZone.getDefault(); //获取可用的所有ID String[] ids = TimeZone.getAvailableIDs(); for (Stringid :ids) { //获得每次遍历ID的时区对象 TimeZone tz = TimeZone.getTimeZone(id); System.out.println(id+"------>"+tz.getDisplayName()); } //根据时区ID获得时区对象 TimeZone tz = TimeZone.getTimeZone("Africa/Abidjan"); //设置时区 TimeZone.setDefault(tz);
//根据时间戳获得指定日期对象 long time = 0; Date d = new Date(time); System.out.println(d); |
5.2 Date类
构造方法:
1. Date():创建日期对象;
2. Date(long t):根据时间戳创建日期对象;
常用方法:
1. after(Date d):当前日期对象是否在指定日期之后;
2. before(Date d):当前日期对象是否在指定日期之前;
3. getTime():获得当前的时间戳;
4. setTime(long t):设置时间对象的具体时间为指定的时间戳;
5.3 Calendar类
实例:
//获得日历对象 Calendar c = Calendar.getInstance(); int year = c.get(Calendar.YEAR);//获得年份 System.out.println(year); int month = c.get(Calendar.MONTH);//获得月份 System.out.println(month+1); int day = c.get(Calendar.DAY_OF_MONTH);//获得月份中的日期 System.out.println(day); int week = c.get(Calendar.DAY_OF_WEEK);//星期几 System.out.println(week-1); // int s = c.get(Calendar.HOUR);//12小时制的时 int s = c.get(Calendar.HOUR_OF_DAY);//24小时制的时 System.out.println(s); int f = c.get(Calendar.MINUTE);//小时的分钟数 System.out.println(f); int m = c.get(Calendar.SECOND);//秒 System.out.println(m); int hm = c.get(Calendar.MILLISECOND);//毫秒 System.out.println(hm); |
常用方法:
1. add(int field,int value):计算时间日期的偏移量;
2. getTime():获得Date类型的日期对象;
3. getTimeInMillis():获得时间戳;
4. get(int field):获得时间数据;
5. set(int field,int value):设置具体的时间;
6. set(year,month,day,hour,minute,second):通过参数直接设置具体时间;
7. setTime(Date d):把Date类型转为Calendar类型;
Calendar的子类GregorianCalendar,是格里高利日历,常用的方法:
isLeapYear(int year):判断指定年份是否为闰年,是闰年返回true;
5.4 日期格式化
1.格式化日期
实例:
// Date d = new Date(0); SimpleDateFormat sdf = new SimpleDateFormat("y年M月dd日 HH:mm:ss"); System.out.println(sdf.format(new Date())); |
2.解析日期
实例:
Scanner sc = new Scanner(System.in); System.out.println("请输入一个日期:"); String str = sc.next(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd"); //把字符串类型的日期解析为Date对象 Date d = sdf.parse(str); System.out.println(d); |
注意解析的模式是否正确,防止抛出解析异常
6、Math类
Math类是数学相关的操作工具类
7、Random类
获取伪随机数的类
8、Scanner类
获得用户在控制台输入的内容
9、Desktop类
使用Java程序执行本机的应用程序
执行浏览器实例:
// URI uri = new URI("http://www.baidu.com"); //获得本机对象 // Desktop d = Desktop.getDesktop(); // d.browse(uri); //简化 Desktop.getDesktop().browse(new URI("http://www.taobao.com")); |
执行本地应用程序实例:
//执行本地应用程序 Desktop.getDesktop().open(new File("F:/a.txt")); |
10、正则表达式
正则符号:
含义 | 符号 |
数字 | [0-9] \\d |
字母 | [a-zA-Z] |
空白字符 | [ \n\t\r\f\x0B] |
表示非 | [^规则] |
任意字符(换行除外) | .(点) |
正则开始 | ^ |
正则结束 | $ |
正则数量:
符号 | 含义 |
+ | n≥1 1到多个 |
* | n≥0 0到多个 |
? | 0≤ n ≤1 0或1个 |
{n} | n个 |
{n,} | n ≤ n到多个 |
{n,m} | n≤ num ≤m n到m个 |
正则逻辑:
含义 | 符号 |
分组 | () |
或 | | |
且 | 什么都不写 |
实例:
验证手机号:
//手机号是11位数字,前3位是136/130开头,后8位是随机数字 String str = "13033338880"; //规则 String gz = "^(([1][3][6])|([1][3][0]))([0-9]{8})$"; booleanrel =str.matches(gz);
if(rel){ System.out.println("ok"); }else{ System.err.println("no"); } |
邮箱验证:
//邮箱 zhangsan_.abc@qq.com为例,前缀:字母、数字、下划线、点、减号,@,qq/126/139/sina,com/com.cn/org/cn String str = "adf123@qq.cn"; //规则 String gz = "^([0-9a-zA-Z_.-]{3,18})" + "[@]" + "(([q]{2})|([1][2][6])|([1][3][9])|([s][i][n][a]))[.]" + "(([c][o][m])|([c][n])|([c][o][m][.][c][n]))$"; booleanrel =str.matches(gz);
if(rel){ System.out.println("ok"); }else{ System.err.println("no"); } |