Java核心技术卷(1)读书笔记

2019.10.09
1、类名要用大驼峰
2、main方法必须声明为public
3、强烈建议不要在程序中使用char类型
4、Java中整型值(0/1)和布尔值之间不能互相转换。这点有区别于C语音
5、逐一声明每一个变量可以提高程序的可读性,即不要使用 int a,b,c,d;的方式
6、变量声明尽量靠近第一次使用处
7、浮点数四舍五入:(int)Math.round(x) 加强制类型转换是因为round返回是long

2019.10.14
1、String类的substring方法提取子串
String greeting = "Hello";
String s = greeting.substring(0,3);
S => "Hel"
2、检测字符串是否相等:
s.equals(t)
s与t相等返回true,否则返回false

2019.10.23
1、get/set访问器方法的优点(封装的优点)
(1)安全性更好。如果private修饰的变量只有get方法,那么这个变量就形成一个只读域。一旦在构造器中设置完毕,就没有任何一个办法可以对他进行修改,这样可以确保变量不会受到外界的破坏。
对于不是只读域的变量(具有set方法),可以通过set方法进行修改。一旦这个变量出现了错误,只要调试这个方法就可以了。如果是public的,破坏这个域值的捣乱者有可能出现在任何地方。
(2)可以改变内部实现。比如,新的需求需要把name变量去掉,用first name 和 last name两个变量替代。那么对于这点改变,我们只需要改变get/set 方法即可(return first name + " " + last name),而不会影响其他代码。
(3)更改器方法(get方法)可以执行错误检查。比如,可以在更改器中增加对变量的校验(工资是否小于零,年龄是否小于零等异常输入的判断)。类似改动只要在方法内修改即可,如果使用public修饰,那么改动量可能会非常的巨大,因为所有使用改变量的地方都要修改。
2、应该将所有的数据域都设置为私有的。
3、不要编写返回引用可变对象的访问器方法。比如:某方法返回了Date类对象,而Date类对象是可变对象(Date类有更改器方法setTime)。如果需要返回一个可变对象的引用,应该首先对它进行克隆。P110
4、关于static的理解
静态域被称为类域。术语static只是沿用了C++的叫法。
静态域、静态变量属于类,而不属于任何独立的对象。
举个栗子:(想到了歌谣:一只青蛙一张嘴两个眼睛四条腿)
青蛙类(性别、肤色、四肢数量)(繁殖)
其中性别和肤色是随实体对象而变的,可以看做是类的成员变量,是实体对象的一种属性。而四肢数量是固定的,所有青蛙都是四条腿,所以四肢数量可以看做是类的静态变量,也就是属于这个类的,不是属于某个对象的。
这样的话,如下很多表达就都容易理解了。
(1)我们建议使用类名,而不是对象来调用静态方法。
(2)加载A.class文件时调用静态代码块。
(3)不需要通过对象来访问(我们只需要说青蛙有四条腿就行了,没必要说雄性青蛙有四条腿)
5、下面两种情况下使用静态方法:
(1)、一个方法不需要访问对象状态,其所需参数都是通过显式参数提供(例如:Math.pow)
(2)、一个方法只需要访问类的静态域

2019.10.30
不要用get方法访问LinkedList中元素!尤其是for循环遍历,效率极低!

小问题:1000瓶药,一瓶是毒药,一毫克就死,七天死亡;用10只老鼠,7天内找出毒药。

无标题.png

你可能感兴趣的:(Java核心技术卷(1)读书笔记)