Think in java 4th读书笔记__last update20151130
一周至少两章,去掉最后的并发和图形化用户界面,刚好需要2个半月才能学好。这进度感觉有点慢,所以做下调整吧,改成一个月会不会更好点^^,认认真真的把java的圣经给看一遍。
计划:
第1~6 11.17~11.22
第7~11 11.23~11.30
第12~16 12.1~12.7
第16~20/21 12.8~12.15
今天看了知乎上的评论,发现刚开始阅读CJ,然后是TIJ,最后是EJ,感觉还是蛮有道理的。
http://www.zhihu.com/question/29581524
另外,做下调整,打算快速把书本在过一遍,因为太多东西已经没有框框印象了,11.30完成,然后剩下两周好好回味(结合CJ)--20151126
看到11章节,后面的章节,可能要快速浏览了--20151127
异常处理、字符串、反射、泛型,都算java中级的内容了,恩,今天生病了,就简单过下吧。今天目标,把目录浏览完毕--20151130
第一章 对象导论
提纲挈领,对OOP、java的特性进行了简要介绍
第二章 一切都是对象
java hello world,不过如果要入门,随便一个百度都可能都比本书写的更简单易容
第三章 操作符
五分钟略过,无感
第四章 控制执行流程
五分钟略过,无感
第五章 初始化与清理
有点失望,这块,后面对于构造初始化,应该结合JVM好好恶补下,先mark了
第六章 访问权限控制
一般般
第七章 复用类
1.组合与继承。
组合:在新类中嵌入某个对象,让其协助实现功能,但是新类的用户看到的是新类所定义的接口,而非嵌入的这个对象的接口。好拗口,不过博主秒懂了。
继承:有时候,我们需要暴露成员对象,让外界了解其内部实现的过程
2.向上转型
上转型,子类转成父类,类似基础类型的隐私转换,JVM是支持的。也符合里氏替换原则。
3.final
作用域变量/方法/类
4.类加载的顺序
自身静态对象-->构造器-->父类静态对象1-->父类构造器1 -->父类静态对象n-->父类构造器n
第八章 多态
1.前期绑定(方法参数申明 单派机制) final static private 修饰的,都是前期绑定
2.后期绑定(也叫动态绑定 多态的实质变现形式)
3.协变返回类型
子类中定义的覆盖方法返回类型可以是具体的子类(Java5才有的)
4.关于继承与组合的抉择
组合优于继承,只有当纯粹的is-a结构的时候,才会考虑使用继承
5.先下转型与运行时类型识别
向上转型会丢失子类特有的信息,因此考虑向下转型
向下转型不是安全的,如果强转不正确,会返回ClassCastException。可以通过instanceof来解决
额外.依赖倒置
第九章 接口
接口提供了一种抽象与实现分离的更加结构化的方法
1.关键字 abstract与interface
is-a与has-a
2.多重继承
no way。不过可以通过实现多接口来间接完成。
3.通过继承扩展接口
很多框架都是这么干滴。
4.适配接口
5.接口中的域
5.1 默认带上static final
5.2 记得在哪里看过,不要在接口中定义常量,所以,现在,好像也很少看到这种情况发生了
6.工厂方法
简单工厂的实现
第十章 内部类
内部类:一个类中定义了另外一个类
内部内与外部类关联:内部类通过"外部类.this",而外部内通过"外部类".引用.new 内部类 此处代码先省略之(这里指的是一般的内部类 相对于static的内部类)
内部类存在的几种形式
1.方法中的内部类(可匿名也可以不用),如果内部类中需要使用方法参数,则方法必须是final修饰的
2.实现接口的匿名类
3.嵌套类(静态内部类) 只能访问外部类的静态方法与对象(原因在于没有了this引用)
为什么需要内部类
1.实现多重继承
2.闭包
3.内部类无法被覆盖
内部类标识
外部类.class
外部类$1.class
外部类$内部类.class
第十一章 持有对象
1.英文叫Holding YourObjects,本章节介绍的是java的容器。容器跟数组相比,可以动态扩容,形式结构也多样,接口功能也更丰富。
2.泛型
2.1解决早起类型转换问题
2.2存放各种子类(extends与super 当然,这不是本章重点,等泛型了,我们在重点说下)
2.3 Arrays.asList()、Collections.addAll()
2.4 map的三个变体
HashMap 通过hashcode值来实现快速查找
TreeMap 按照插入顺序
LinkdedHashMap = hashmap+treemap
2.5 List
ArrayList 查找快,插入慢
LinkedList 朝找慢,插入删除快
2.6 迭代器
1. next()
2.hasNext()
3.remove()
上述便是"迭代器模式"的标准方法结构
ListIterator
2.7 Stack
pop()、peek()、push()
2.8 Set
不保存重复的元素(如何定义重复的元素?),内部存储无序
2.9 Map
3.0 Queue
1.FIFO,reverse Stack
2.PriorityQueue
3.1 适配器模式
3.2 非本书内容
新版本的JDK加入了很多新的容器,包括current包下的,感觉恶补的东西还是蛮多的
----------------------------------------------------------------------------------完成于20151127 20:40pm.----------------------------------------------------------------------------------------------
第十二章 通过异常处理错误
关键信息:throwable、exception、error、throw、throws、try、catch、finally
stackTrace,cause
第十三章 字符串
String
新版本的+与Stringbuffer
printf,format,formatter
正则表达式
第十四章 类型信息
类型信息,其实就是反射了,RTTI(run-time type infomation)
Class对象
instanceof 、isInstance()
动态代理
class比较与instanceof区别
第十五章 泛型
过之,至少花两天认真看了
第十六章 数组
数组与容器的比较:效率、类型、基础类型
数组等同于线性结构容器
数组越界
类型无法保证,对于非基础类型,数组可能存在CastClassException
容器无法泛型基础类型
一维数组与多维数组
数组的常用方法:fill() etc
Arrays
第十七章 容器深入研究
过之,单独在研究吧
第十八章 Java I/O系统
过之
第十九章 枚举类型
让我想起了《effective java》中关于枚举的介绍
第二十章 注解
第二十一章 并发
并没兴趣研究,想学习还是单独去看《并发实战指南》一书吧,《effective java》中好像也要提到
第二十二章 图形化用户界面
GUI graphical user interface
swing
Think in java 4th读书笔记__last update20151130的更多相关文章
- java effective 读书笔记
java effective 读书笔记 []创建和销毁对象 静态工厂方法 就是“封装了底层 暴露出一个访问接口 ” 门面模式 多参数时 用构建器,就是用个内部类 再让内部类提供构造好的对象 枚举 si ...
- 深入理解Java虚拟机 -- 读书笔记(1):JVM运行时数据区域
深入理解Java虚拟机 -- 读书笔记:JVM运行时数据区域 本文转载:http://blog.csdn.net/jubincn/article/details/8607790 本系列为<深入理 ...
- Java并发读书笔记:线程安全与互斥同步
目录 导致线程不安全的原因 什么是线程安全 不可变 绝对线程安全 相对线程安全 线程兼容 线程对立 互斥同步实现线程安全 synchronized内置锁 锁即对象 是否要释放锁 实现原理 啥是重进入? ...
- 单元测试之道Java版——读书笔记
单元测试知道Java版读书笔记 首先我们必须要知道我们所写的代码,它的功能是什么,如果我们不了解代码的行为,那么也就无从测试. 我们测试的目的,是为了我们整个程序架构的稳定,代码其实就是欧文要实现功能 ...
- 《Effective Java》读书笔记(一)之创建和销毁对象
最近在研读<Effective Java>一书,读书不做点笔记,感觉很容易就忘掉,于是用本篇博客来记录阅读此书的笔记. 郑重声明: 由于是<Effective Java>一书的 ...
- 《Effective java》-----读书笔记
2015年进步很小,看的书也不是很多,感觉自己都要废了,2016是沉淀的一年,在这一年中要不断学习.看书,努力提升自己!预计在2016年要看12本书,主要涉及java基础.Spring研究.java并 ...
- 《practical Java》读书笔记
题记: 花了一周把Peter Haggar的<practical Java>看了遍,有所感悟,年纪大了, 写下笔记,方便日后查看.也希望有缘之人可以看看,做个渺小的指路人. 不足之处还望指 ...
- 《Effective Java》读书笔记 - 11.序列化
Chapter 11 Serialization Item 74: Implement Serializable judiciously 让一个类的实例可以被序列化不仅仅是在类的声明中加上" ...
- 《Effective Java》读书笔记 - 10.并发
Chapter 10 Concurrency Item 66: Synchronize access to shared mutable data synchronized这个关键字不仅保证了同步,还 ...
随机推荐
- UIMenuController 实现长按显示自定义菜单功能
这段时间在集成使用融云聊天功能的时候,想自定义消息cell的长按的菜单,在网上查了查,这是根据 UIMenuController 实现的.具体代码如下,我是使用一个btn实现的 首先创建一个btn,并 ...
- 找出单链表的倒数第K个(从1开始计数)结点的值
typedef struct Link { int data; struct Link* next; }NODE,*pNODE; NODE *searchK(NODE *phead, int k) { ...
- javaBean与Map<String,Object>互转
背景:有时候想不通阿帕奇的BeanUtils是怎么进行map和Bean互相转化的. 工作闲暇之余,自己写个一小段代码,一探究竟,试试才发现,原来一切并非我们想的那么什么和复杂. 注:这里只是简单实例, ...
- Linux下好玩的命令
1.yes命令,输出很多个y,可以用来对付选择很多y/n的应用. 2.banner命令,打印字符标题,就是用字符拼出大字来: 3.ddate命令,把日历转换成其他的什么历: 4.fortune命令,随 ...
- OpenGL(二)——函数库简述
简述 1. OpenGL用到的库分为OpenGL核心库.OpenGL实用库.OpenGL辅助库和OpenGL工具库(不是必须) 2. OpenGL核心库 核心库包含有115个函数,函数名的前缀为gl ...
- bzoj 1977
题意:求严格的次小生成树.点n<=100000,m<=300000 思路:很容易想到先做一边最小生成树,然后枚举每条非树边(u, v, w),然后其实就是把u,v路径上小于w的最大边替换成 ...
- 黑马程序员+Winform基础(上)
黑马程序员+Winform基础 ---------------<a href="http://edu.csdn.net"target="blank"> ...
- 在ios中使用第三方类库
在项目开发中经常会用到一些第三方类库,通常有两种方法来做到:一种方法是直接把所有的.h和.m文件复制到项目中:另一种方法是把.xcodeproj拖到项目中生成静态链接库并引用. 方法一:直接复制所有源 ...
- 真实世界:使用WCF扩展在方法调用前初始化环境
OperationInvoker 介绍 OperationInvoker 是 WCF 运行时模型中在调用最终用户代码前的最后一个扩展点,OperationInvoker 负责最终调用 Service ...
- 微软BI 之SSIS 系列 - 2008 版本中变量 Int64 无法保存 bigint 类型数据的BUG
开篇介绍 这是今天在帮别人看一个 2008R2 版本的项目时发现的一个 Bug,这个 Bug 在 SQL SERVER 2012 有的版本中可能已经解决,但在论坛上看到有的仍然存在. 在 SQL SE ...