Java编程基础(八)
储存类的仓库 – Java常用类库
正则表达式
含义:描述匹配一系列符合某个语句规则的字符串
Pattern:该类的对象表示正则表达式的对象
Marcher:该类的对象表示匹配结果
总结:可以利用正则表达式做爬虫
核心的正则标记:
(1) 字符,表示单个字符,只能出现1位。
x:表示是一个指定的一位字符,例如:编写一个a,表示是字母a;
\:表示一位字符“\”,但是由于“\”有个数含义,所以使用“\”表示一位“\”;
\n:匹配换行;
(2) 字符范围,在指定的字符范围之中选1位,只能出现1位。
[abc]:表示可以是a、b、c中的任意一位;
[^abc]:表示不是a、b、c中的任意一位;
[a-zA-Z]:表示是任意一位字母(大写或小写);
[0-9]:表示是任意一位数字。
(3) 简洁表达式,表示1位。
.:表示任意的一位字符;
\d:表示一位数字,等价于“[0-9]”;
\D:表示一位非数字,等价于“[^0-9]”;
\s:表示一位空格,等价于“[ \t\n\x0B\f\r]”;
\S:表示一位非空格,等价于“[…… \t\n\x0B\f\r]”;
\w:表示一位字母、数字、,等价于“[a-zA-Z0-9]”;
\W:表示一位非字母、数字、,等价于“[^a-zA-Z0-9]”;
(4) 边界匹配,Java用不上。
^:表示正则的开头;
$:表示正则的结尾。
(5) 数量表示,之前的正则每个符号只表示一位,如果要表示多位,则必须使用以下的数量关系。
正则?:表示此正则可以出现0次或1次;
正则+:表示此正则可以出现1次或多次;
正则*:表示此正则可以出现0次、1次或多次;
正则{n}:表示此正则出现正好n次;
正则{n,}:表示此正则出现n次以上;
正则{n,m}:表示此正则出现n ~ m次。
(6) 逻辑操作。
正则1正则2:正则1之后紧跟正则2操作;
正则1|正则2:表示或的关系,有一套正则标记匹配即可;
(正则):表示按照一组来使用。
时间日期类
Date:日期类
SimpleDateFormat:格式化日期类
Calendar:日历类
总结:Date 联合SimpleDateFormat一起使用
Calendar获取单个日期信息
Math类 – 数学类
Math类提供了一系列基本数学运算和几何函数的方法
Math类final类,并且它的所有成员变量和成员方法都是静态的(标准的工具类)。
将Math类中所有的静态属性和静态方法导入到本类中,这些静态属性和静态方法自动成为本类自己的静态属性和静态方法
静态导入
缺点:可读性不高
调用静态方法是就近原则,本类有就调用,没有再去静态导入的类中获取
大数字操作类
整数大数值运算类:BigInteger
如果数字超过该类型的最大范围则会提示“Infinity”。在BigInteger类的构造方法(public BigInteger(String val))里面已经清楚的描述出了,如果数据过大,则只能利用字符串保存,而后在BigInteger类之中提供了若干个基本的数学操作。
小数大数值运算类(BigDecimal):涉及到金融类的计算必须使用小数大数值运算类,因为浮点数型计算会失去精度
ROUND_DOWN表示舍弃一位,
ROUND_UP表示进一位,
ROUND_HALF_UP表示四舍五入
Random类
伪随机数
理解:所有的随机数都是通过算法算出来的,通过算法算出来的数据就不是真随机
如果用相同的初值创建Random对象,得到的随机数序列是相同的,也就是说,在程序中看到的“随机数”是固定的那些数,起不到“随机”的作用
Random类的种子数
理解:该数是随机数的根本,该数固定,随机数的数字就固定了
Runtime类
含义:表示运行时环境 – JRE
Runtime表示的是运行时在每一个JVM进程之中都会存在唯一的一个Runtime类的实例化对象。这个类是一个明显的单例设计模式,此类将构造方法私有化了,既然是单例设计模式,那么一定会在类的内部提供一个static定义的方法,用于取得本类的实例化对象。
取得Runtime类对象:
public static Runtime getRuntime();
System类
System类中的所有成员都是静态的,而要引用这些变量和方法,可直接使用System类名作为前缀。
System.out 和 System.err
注意:out 和err 是两个线程中的代码,体验多线程争抢CPU资源的场景
System类的方法:
exit(int status)方法,提前终止虚拟机的运行。对于发生了异常情况而想终止虚拟机的运行,传递一个非零值作为参数。若在用户正常操作下终止虚拟机的运行,则传递零值作为参数。
CurrentTimeMillis方法,返回自1970年1月1日0点0分0秒起至今的以毫秒为单位的时间,这是一个long类型的大数值。在计算机内部只有数值,没有真正的日期类型及其他各种类型,也就是说,平常用到的日期实质上就是一个数值,但通过这个数值,能够推算出其对应的具体日期时间。
getProperties方法是获得当前虚拟机的环境属性。每一个属性都是变量与值以成对的形式出现的。