在看这本书的过程中,我发现了之前在Java的学习中存在很多忽略掉的知识点或者错误的认知,写一篇博客记录一下吧。
- 尽量避免使用char类型,这太底层了。在Java中,char类型描述了UTF-16编码中的一个代码单元,而有的字符需要一对代码单元表示,即1码点=2代码单元。string.charAt(n)返回n位置的代码单元,而不是码点;string.length()返回代码单元数量,实际长度即码点数量可以调用int count = string.codePointCount(0,string.length())。
- 带标签的break语句用于跳出多重嵌套的循环语句。直接跳转至带标签的语句块末尾。
label: { ... if(condition) break label;//exits block ... } //jump here when the break statement executes
-
for each循环。
-
不要编写返回引用可变对象的访问器方法。如Date对象,可以返回对象的克隆。return (Date)birthday.clone()。
-
基于类的访问权限。一个方法可以访问所属类的所有对象的私有数据。
-
static。静态域即类域,static只是沿用了C++的叫法,并无实际意义。静态域属于类,所有对象共享。使用类名调用静态方法。
-
Java对对象采用