首页 > 代码库 > JDK常用类笔记
JDK常用类笔记
JDK常用类
目录
1. 系统相关类
2. 字符串相关类
3. 日期相关类
4. 数学运算相关类
1.1 System类
System类代表当前Java程序的运行平台,System类是一个静态类,所有的方法和属性都是静态的,该类用于记录程序执行的时间,复制数组,确定当前的系统属性和获取系统循环变量.
常用方法:
(1) 终止当前正在运行的java虚拟机.
System.exit(0);</br>
0表示正常退出,非0表示异常终止.
(2) 运行垃圾回收器:
System.gc();</br>
暗示运行垃圾回收器
(3)获取当前系统属性:
System.getProperties();</br>
(4)获得指定键的系统属性:
System.getProperty(String key);</br>
1.2 Runtime类
该类代表java程序运行时的环境,我们使用Runtime类的相关方法,访问JVM的相关信息,通过Runtime的exex()方法运行操作系统命令.
Runtime rt = Runtime.getRuntime(); //定义一个rt对象</br>
(1)访问当前处理器数量:
System.out.println("当前处理器数量:"+rt.availableProcessors());</br>
(2)访问空闲内存数量:
System.out.println("空闲内存数量:"+rt.freeMemory());</br>
(3)访问总内存数:
System.out.println("总内存数:"+rt.totalMemory());</br>
(4)访问可用最大内存:
System.out.println("可用最大内存:"+rt.maxMemory());</br>
(5)通过Runtime的exex()方法运行操作系统命令:
Runtime rt = Runtime.getRuntime(); //定义一个rt对象
try{
rt.exec("notepad.exe");
}catch(Exception e){
e.printStcakTrace();
}
使用exex()方法运行记事本程序,需要检查异常.
2.1 String类
1.String类
String类包含了一个不可变的字符串。在 Java 中,字符串被作为 String 类型的对象处理。 String 类位于 java.lang 包中.
(1)创建字符串的方法:
1)使用String构造器显示创建:
String str = new String("Hello");</br>
2)通过字符串常量直接给Sting类型变量赋值隐式创建:
String str = "Hello";</br>
(2)string常用的方法
1)打印字符串长度:length()方法
System.out.println(a.length());</br>
2)拆分字符串:split()方法
String a = "bczsajk";
String[] arr = a.split("bczsajk");
System.out.println(Arrays.toString(arr));
3)charAt(int index):返回指定索引处的字符.
System.out.println(charAt(1));
1为字符串的下标,输出下表为1对应的字符.
4)compareTo:按字典顺序比较两个字符串.
System.out.println(a.compareTo(b));
a为String类型的变量,b为String类型的变量.
5)compareToIgnoreCase:按字典顺序比较两个字符串,不考虑大小写.
System.out.println(a.compareToIgnoreCase(b));
7)concat 将指定字符串连接到此字符串的结尾
System.out.println(a.concat(b));
a为String类型的变量,b为String类型的变量.
8)endsWith测试此字符串是否以指定的后缀结束
System.out.println(a.endsWith(b));
a为String类型的变量,b为String类型的变量.
9)startsWith测试此字符串是否以指定的后缀结束,用法与endsWith用法相同.
10)trim返回字符串的副本,忽略前导空白和尾部空白.
String c = " a,b,c,d, e,f,g,h,i ";
System.out.println(c.trim());
输出结果为:a,b,c,d, e,f,g,h,i
前面和后面的空白被去除,中间的空白不能去除.
2.2 StringBuffer类
StringBuffer对象代表了一个内容可变的字符串。当一个StringBuffer被创建以后,通过StringBuffer提供的方法
可以改变该字符串对象的字符序列。通过StingBuffer生成了最终想要的字符串,就可以调用它的toString()方法将其
转换为一个String对象.
通过使用StringBuffer构造器创建StringBuffer对象:
StringBuffer str = new StringBuffer("Hello");
StringBuffer常用的方法:
append:将 double 参数的字符串表示形式追加到此序列
delete:移除此序列的子字符串中的字符
System.out.println(str.delete(1, 3));
1为开始的下标,3为结束的下标
2.3 StringBuilder类
StringBuffer和Stringbuilder在很多方面是相通的,但StringBuffer方法是线程安全的,Stringbuilder不是,所以Stringbuilder的性能略高,在不考虑线程安全的情况下,应优先考虑使用Stringbuilder.
3.1 Date类
Date表示特定的瞬间,精确到毫秒.
通过使用构造器创建Date对象:
Date date = new Date();
常用的方法:
getTime:返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数.
System.out.println(date.getTime());
toString:把此 Date 对象转换为以下形式的 String:dow mon dd hh:mm:ss zzz yyyy
3.2 DateFormate和SimpleDateformat类
java.txt.DateFormat是一个抽象类,我们可以用它预定义的本地化方式格式化和解析时间日期,DateFormat 一个抽象类,不能直接实例化,DateFormat类的getInstance()方法返回一个将日期按照默认地区或者特定地区的方式格式化的DateFormat对象.
创建SimpleDateFormat对象时,需要传入一个日期和时间格式字符串作为格式化的模板,日期和时间格式和时间模式字母组成的字符串来指定.
使用 format() 方法将日期转换为指定格式的文本(代码)
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String today = sdf.format(date);
System.out.println(today);
使用 parse() 方法将文本转换为日期
String day = "2014年5月11日 10:30:25";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
Date date = null;
try {
date = sdf.parse(day);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(date);
注意:
1)调用 SimpleDateFormat 对象的 parse() 方法时可能会出现转换异常,即 ParseException ,因此需要进行异常处理.
2)使用 Date 类时需要导入 java.util 包,使用 SimpleDateFormat 时需要导入 java.text 包
3.Calendar抽象类和GregorianCalendar类
java.util.Calendar 类是一个抽象类,可以通过调用 getInstance() 静态方法获取一个 Calendar 对象,此对象已由 当前日期时间初始化,即默认代表当前时间,如 Calendar c = Calendar.getInstance();
使用 Calendar 获取年、月、日、时间等信息:
Calendar cal = Calendar.getInstance();
创建Calendar对象. int year = cal.get(Calendar.YEAR);
获取年份.
int month = cal.get(Calendar.MONTH);
获取月份. int date = cal.get(Calendar.DAYOFMONTH);
获取日期. int hours = cal.get(Calendar.HOUROFDAY);
获取小时.
int minute = cal.get(Calendar.MINUTE);
获取分钟. int seconds = cal.get(Calendar.SECOND);
获取秒数. System.out.println("当前时间为:"+year+"-"+month+"-"+date+" "
+hours+":"+minute+":"+seconds);
4.1Math类
常用方法:
abs:返回参数值的绝对值.
int a = -10;
int b = Math.abs(a);
System.out.println(b);
如果参数为非负数,则返回该参数;如果参数为负数,则返回该参数的相反数
max方法:
int a = -10;
int b = 1;
System.out.println(Math.max(a, b));
返回两个 int 值中较大的一个
min方法:
int a = -10;
int b = 1;
System.out.println(Math.min(a, b));
返回两个 int 值中较小的一个
ceil方法:
double a = 10.1;
System.out.println(Math.ceil(a));
运行结果为11.
返回最小的(最接近负无穷大)double 值,该值大于等于参数,并等于某个整数
floor方法:
double a = 10.9;
System.out.println(Math.floor(a));
运行结果为10.
返回最大的(最接近正无穷大)double 值,该值小于等于参数,并等于某个整数
round方法:
double a = 10.9;
double b = 5.4;
System.out.println(Math.round(a));
System.out.println(Math.round(b));
运行结果为:11 5
返回最接近参数的 int,结果将舍入为整数
4.2 随机数类——Random
实际开发过程中需要产生一些随机数值,以实现某些效果。
产生随机数的方法:
(1)获取当前时间的毫秒数的long型数值
System.currentTimeMillis();
通过这个方法获取的long型数值可以当做随机数 (2)Math类的静态方法
int Num=(int)(Math.random()*10)//此处产生强制转换;
System.out.println(Num);
该方法返回一个0-1之间的double值,将这个数值乘以一定的数,就能产生对应范围内的随机数
(3)通过Random类产生一个随机数,需要导入一个java.util包中的Random作为随机数生成器.
Random的主要方法:
1)nextDouble();
Random XX=new Random();
double Num=XX.nextDouble(10);
返回下一个伪随机数,它是取自此随机数生成器序列的、在 0.0 和 1.0 之间均匀分布的 double 值。
2)nextInt();
Random XX=new Random();
int Num=XX.nextInt(10);//0-9之间的范围
System.out.println(Num);
返回下一个伪随机数,它是此随机数生成器的序列中均匀分布的 int 值。nextInt 的常规协定是,伪随机地生成并返回一个 int 值。
5.1 包装类与自动装箱拆箱
为了使用对象方式处理基本数据类型,java中将八种基本数据类型封装成类,称为包装类。
boolean ----> Boolean
byte ----> Byte
short ----> Short
int ----> Integer
long ----> Long
char ----> Character
float ----> Float
double ----> Double
注意:
所有的包装类都是final类,不能创建它们的子类
包装类是不可变类
常用方法:
System.out.println("int类型的最大值为:"+Integer.MAX_VALUE);
System.out.println("int类型的最小值为:"+Integer.MIN_VALUE);
Integer i1 = new Integer (100);//创建一个Integer对象
//使用Integer对象的intValue()方法将包装类所含内容转换为int类数据
int i2 = i1.intValue();
System.out.println(i2);
6.1 正则表达式
1.概述
一组字符串中的每个字符所共有的特征,使用特定的符号来描述该组字符的一种方式。一般来说,正则表达式由普通字符、字符类、通配符和数量词组成,字符类、通配符和数量词是一些特殊的字符,这些特殊字符在正则表达式中有特殊的用途。
^ 匹配字符串的开始
$ 匹配字符串的结束
\s 任何空白字符
\S 任何非空白字符
\d 匹配一个数字字符,等价于[0-9]
\D 除了数字之外的任何字符,等价于[^0-9]
\w 匹配一个数字、下划线或字母字符,等价于[A-Za-z0-9_]
\W 任何非单字字符,等价于[^a-zA-z0-9_]
. 除了换行符之外的任意字符
{n} 匹配前一项n次
{n,} 匹配前一项n次,或者多次
{n,m} 匹配前一项至少n次,但是不能超过m次
*匹配前一项0次或多次,等价于{0,}
+匹配前一项1次或多次,等价于{1,}
? 匹配前一项0次或1次,也就是说前一项是可选的,等价于{0,1}
(x|y)匹配x或y。例如,“z|food”能匹配“z”或“food”。“(z|f)ood”则匹配“zood”或“food”。
[xyz]字符集合。匹配所包含的任意一个字符。例如,“[abc]”可以匹配“plain”中的“a”。
[a-z]字符范围。匹配指定范围内的任意字符。例如,“[a-z]”可以匹配“a”到“z”范围内的任意小写字母字符。
注意:只有连字符在字符组内部时,并且出现在两个字符之间时,才能表示字符的范围; 如果出字符组的开头,则只能表示连字符本身.
(pattern)匹配pattern并获取这一匹配。所获取的匹配可以从产生的Matches集合得到,在VBScript中使用SubMatches集合,在JScript中则使用$0…$9属性。要匹配圆括号字符,请使用“(”或“)”。
2.使用正则表达式
编辑邮箱的格式规范:
Pattern pattern = Pattern.compile("^[a-zA-Z0-9]{4,12}@(168|qq|gmail).(com|cn)");
String name = "404979728@qq.com";
输出结果为布尔类型。
JDK常用类笔记