第一章
-
“面向对象的”木匠始终关注的是所制作的椅子,第二位才是所使用的工具;
-
Java有个例程库,用于处理像HTTP和FTP之类的TCP/IP协议。
-
java编译器能够检测许多在其他语言中仅在运行时才能够检测出来的问题。
-
java代码无论来自哪里,都不能脱离沙箱。
- Java编译器通过生成特定的计算机体系结构无关的字节码指令来实现这一特性。
- Java中的int永远为32位整数。
第三章
整型(只存整数):
- int 4个字节 (正负21亿)
- short 2个字节(-32768~32768)
- long 8个字节
- byte 1个字节(-128~127)
其中byte和short用于特定的场合
浮点型(存小数):
- float 4字节(6位小数)
- double 8字节(15位小数)
其中很少情况用flaot,如果数字后面没有带f,则默认为double类型
浮点数不适合用于精度计算eg:System.out.println (2.0-1.1);输出结果为:0.8999999999999999
所以一般用BigDecimal来计算精确的数字。
- 建议不要在程序中使用char,除非是需要处理UTF-16的代码单元,最好将字符串作为抽象数据类型处理。
- boolean类型:整型值和布尔值不能进行相互转换。
- 变量声明尽量靠近第一次使用的地方。
- 关键字final表示常量,常量一般用大写字母表示,每个常量只能被赋值一次。赋值之后就不能再更改。
- 在实践中一般用static final 声明一个类常量。
- &&是先执行前面的表达式,如果成立则继续执行后面一个表达式。eg:x!=0 && 1/x>x+y 避免除以0
- “Hello”.equals(greeting),不区分大小写:equalsIgnoreCase,不能用==判断两个字符串是否相等,只能判断两个字符串是否在同一个位置上。
- 检查一个字符串既不是null也不是空串:if(str != null && str.length() =0 ),如果在一个null值上调用方法会出现错误。
- swich语句有可能触发多个分支,如果在分支语句末尾没有break语句。所以在程序中少用switch语句
第四章 对象与类
- 面向对象程序由对象组成,每个对象包含对用户公开的特定功能部分和隐藏的实现部分。
- 传统面向过程程序设计:先设计一系列的过程(算法)解决问题,确定了算法之后,需要开始考虑数据的存储方式。所以算法+数据结构=程序。
- 面向对象把数据放在第一位,然后考虑操作数据的算法。
- 面向过程适合解决小规模的问题,面向对象适合解决大规模的问题。
- 识别类的简单规则是在分析问题的过程中寻找名词,而方法对应着动词。
- final必须在构造器执行之后得到出初始化,在对象构建后,值不会发生改变。
- static声明变量,则变量属于类,不属于对象,所以不需要新建对象即可以使用该变量。
- Java总是值调用。方法得到的是参数值的一个值拷贝。如果将对象的引用传入到方法,最终只会修改引用对应的对象中的内容,而引用的指向在方法结束后会被丢弃。所有在java中对象的引用是按值传递的。
- 构造器不要用这种格式:
- public Employee(String n,double s){
name=n;
salary=s; } ,这样需要阅读代码才能了解参数的含义,应该这样:
public Employee(String aName,double Salary){
name=aName;
salary=aSalary;
} ,这样会比较清晰,一眼就能看懂参数的含义。
11.