1.Java程序参数
(1)运行Java程序的入口: main()方法
Public static void main(String[] args) {…}
(2)使用Scanner获取键盘输入,两种方法:
1)hasNextXxx():是否还有下一个输入项,Xxx可以是int,long等。若只判断是否包含下一个字符串,则直接使用hasNext()。
2)nextXxx():获取下一个输入项。
对象.useDelimiter(“\n”) //只允许回车作为分隔符
主程序throws exception()表明main方法不处理任何异常。
2.系统相关的类
(1)System类
System类提供了代表标准输入、标准输出和错误输出的类变量,并提供了一些静态方法用于访问环境变量、系统属性的方法,还提供了加载文件和动态链接库的方法。
System类有两个获取系统当前时间的方法:currentTimeMillis()和nanoTime(),它们都返回一个long型整数。前者以毫秒为单位,后者以纳米为单位(很少使用)。
System类还提供了一个identityHashCode(Object x)方法,返回指定对象的精确hashCode值。identityHasgCode值是根据对象的地址计算得到的,任何两个对象的identityHashCode值总是不相等。
(2)Runtime类
Runtime类代表Java程序的运行时环境,每个Java程序都有一个与之对应的Runtime实例,应用程序通过该对象与其运行时环境相连。通过getRuntime()方法获取与之关联的Runtime对象。
3.常用类
(1)Object类
Object类是所有类、数组、枚举类的父类,Java允许把任何类型的对象赋给Object类型的变量。其中几个常用方法有:
boolean equals(Object obj): 判断指定对象与该对象是否相等。
protected void finalize(): 当系统没有引用变量引用该对象时,垃圾回收机制调用该方法进行回收。
Class<?> getClass(): 返回该对象的运行时类。
int hashCode(): 返回该对象的hashCode值。(一般都会重写该方法)
String toString():返回该对象的字符串表示。
(2)String,StringBuffer和StringBulider类
String是一个不可变类,StringBuffer对象则代表一个字符序列可变的字符串。StringBulider类与StringBuffer相似,只是没有实现线程安全功能,性能略高。
Java9的字符串采用byte[]数组再加一个encoding-flag字段来保存字符,因此字符串的每个字符只占1字节。
(3)Math类
Math类中的所有方法都是类方法,可以直接通过类名来调用它们。Math构造器是private的,无法创建Math类。
(4)ThreadLocalRandom和Random
Random类专门用于生成一个伪随机数,TreadLocalRandom类是Random的增强版,在并发范文环境下,其可以减少多线程资源竞争,保证线程安全性。
(5)BigDecimal类
为了精确表示和计算浮点数,Java提供了BigDecimal类。当使用double浮点数作为BigDecimal构造器的参数时,不要直接将该double浮点数作为构造器参数创建BigDecimal对象,而是通过BigDecimal.valueof(double value)静态方法来创建。如:
BigDecimal f1 = new BigDecimal(“0.05”); //建议使用String的构造器
BigDecimal f2 = new BigDecimal.valueof(0.01);
(6)日期、时间类
使用Java8新增的日期、时间包,即java.time包,包括Clock等常用类。
4.正则表达式
(1)创建正则表达式
表1 特殊字符
表2 预定义字符
表3 三种模式的数量表示符
(2)使用正则表达式
使用Pattern和Matcher使用正则表达式。Pattern对象是正则表达式编译后在内存中的表示形式,,正则表达式字符串先被编译为Pattern对象,然后再利用Pattern对象创建对应的Matcher对象。多个Matcher对象可共享同一个Pattern对象。
调用顺序举例:
Pattern p = Pattern.compile(“a*b”);
Matcher m = p.matcher(“aaaaab”);
boolean b = m.matcher(); //返回true
Pattern是不可变类,Matcher类提供了几个常用方法:
find():返回目标字符串中是否包含与Pattern匹配的子串。
group():返回上一次与pattern匹配的子串。
matches():返回整个目标字符串与pattern是否匹配。