首页 > 代码库 > 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常用类笔记