读书笔记——thinking in java
1、一切都是对象,用引用操作对象
1.1程序存储的地方
引用存放在堆栈区(通用的RAM),所有对象存储在堆(一种通用的内存池)。堆和堆栈的区别:堆栈中的这些引用,java系统是要知道确切的生命周期,堆里面的对象数据java系统就不需要知道。堆里面的数据的分配和清理可能会更耗费时间。
1.2高精度数字
java中提供了BigInteger和BigDecimal。方法调用的方式来取代运算符的方式。所以速度会慢了许多。
2、复用类
2.1组合——has-a
2.2继承——is-a
2.3代理
2.4名称屏蔽
父类中有一个被重载多次的函数,在导出类中又被重载了,此时,导出类中支持所有的重载函数,这与C++不一样。C++自动屏蔽基类的方法。
3、final关键字
static final 代表编译期常量
3.1final基本类型——值不变
3.2final对象引用——引用不变,对象可修改
3.3final方法—— 不能被覆盖
两个作用:①把方法锁定,以防止任何继承类修改他的含义。想要确保在继承中方法行为保持不变且不会被覆盖②效率,因为可以讲final方法转内嵌调用,内嵌的话就应该适合代码量小的函数。
类中的所有private方法都隐式的指定为final。由于无法继承private方法,所以也就无法覆盖它。
3.4final类—— 不能被继承(所以final类的方法全被隐式指定为final方法),出于某种考虑,对该类的设计永远不需要做任何改动。
4、多态(动态绑定或者运行时期绑定)
4.1多态的作用
4.2java中除了static、final方法(private属于final方法)其余都是运行期绑定。
4.3返回值不一样在java高德版本中并不影响多态的实现。
最新文章
- BZOJ 1026: [SCOI2009]windy数
- Java中的原始类型(Primitive Types)与引用类型(Reference Values)
- mvc ajax dropdownlist onchang事件响应
- Python3基础 index 返回一个元素在列表中第一次出现的索引值
- java中的标记接口
- .net对象序列化解析
- HADOOP 2架构图
- HDU 5033 (单调栈维护凸包) Building
- PAT_1016 部分A+B
- Js apply 方法 具体解释
- gcc -lpthread 干什么用
- Linux报too many open files的解决方案
- C++ 中关于optional 使用过程中遇到的问题
- 20162323周楠《Java程序设计与数据结构》第五周总结
- 多线程总结之旅(1):线程VS进程
- Java中的String,StringBuilder,StringBuffer
- Map集合转成json数据
- 劳德巴赫下载kernel和文件系统时问题
- AJAX 应用
- C# 截取 byte 字节 转字符串