这部分的内容介绍的的String,很基础很常见的内容。
首先,作者介绍了当把String对象作为方法的参数时,都会复制一份引用,而该引用所指的对象其实一直都待在单一的物理位置上。
其次,作者介绍了javap命令。javap命令可以将class文件生成 JVM 字节码。如下代码
javap -c [类名]
作者还介绍了toString方法,如果toString方法中包含了一个String对象后面跟着一个”+”,那么编译器会试图将+后面的内容转换成一个String,也就是调用toString方法,如此递归下去。也就是说,如果你在编写toString方法时没有注意到这些,那么你就埋下了隐患。
正则表达式似乎是这章的主要内容,而正则表达式我用的太多次数了,所以基本上很熟悉了。看到这部分的内容,我觉得,正则表达式还是需要多练才能掌握,而不是光看书就能学会的东西。而且,如果不多加练习,那么过几个月你就会又忘掉。
正则表达式可以和Java I/O配合,这让我长见识了。比如下面的代码:
public static void main(String[] args) {
Scanner scanner = new Scanner("58.27.82.161@02/10/2005\n"
+ "204.45.234.40@02/111/2005\n"
);
String pattern = "(\\d+[.]\\d+[.]\\d+[.]\\d+)@" + "(\\d{2}/\\d{2}/\\d{4})";
while (scanner.hasNext(pattern)){
scanner.next(pattern);
MatchResult match = scanner.match();
String ip = match. group (1);
String date = match.group(2);
System.out.format("Threat on %s from %s\n", date, ip);
}
}
格式化输出也是这部分内容比较注重的地方,他介绍了如何对输出使用 占位符 进行输出,类似于C/C++中的%d什么的。不得不说,如果不多使用,那么也会很快忘掉。就比如我,对于这个占位符:%-15.15s,我都不知道是什么意思。
今天的工作让我学到了:多读优秀的代码才能写出更优秀的代码出来啊