读 thinking in java记录

一、对象

1、面向对象:所有皆对象,程序是对象的组合,都有自己的存储空间,同类型能接收相同消息,类就是相同属性的事务总称

2、利用访问控制避免接触不该接触的,通过接口了解如何使用而不需要知道具体实现

3、类的相互嵌套引出了“组织”,也就是类包含类

4、继承实现代码复用,达到可扩展

5、多态的动态绑定在运行期才知道具体调用(向上转型),抽象类不能实现,抽象方法只能在抽象类中,且子类需实现它除非子类也是抽象类

6、容器只能存储对象,所有对象的顶级都是Object

7、GC解决内存释放

8、异常处理解决错误

9、多线程解决并行运算

10、保存位置:寄存器、堆、栈、静态区域、常量存储、硬盘或流

11、应用:创建(new),变量,基本类型(八种),数组,作用域(花括号),类创建(class)

12、变量:成员变量/全局变量(堆中,因为对象在堆中)和本地变量/局部变量(基础类型在栈,对象在堆),局部变量不可用修饰符也不会自动初始化也不可用static

13、方法:返回类型 方法名(){}

14、包和引入:包(package)解决了类型冲突,引入(import)提供其他类的引用方式

15、静态:static类型的数据或方法不属于某一个对象,共用一片内存

二、程序流程

1、运算符多数只能修饰基础类型,除了“=”,“==”,“!=”,String还支持“+”,“+=”

2、普通算术运算符、一元运算符、自动增减、关系运算符、逻辑运算符(短路)、移位运算(<<,<<<)、三元运算符(if-else)、自动向高位转型

3、if-else、while、do-while、for、break、continue、switch-case(break,default)

三、程序初始化

1、构造器:没有返回值,当存在有参的构造器则系统不会有默认无参构造器(即不能直接new无参的对象)

2、this:指向当前对象,多用于构造器间调用

3、static:依赖于类而不是对象,没有this

      static变量/代码块:内存中只有一份,创建对象时最先加载,不能为局部变量

      static方法:static方法不可调非static方法/变量,相反则可以

4、final:会对变量,方法,类进行优化,提高性能,多线程下安全,编译期绑定

      final变量:需赋初始值(声明时或者构造器中),修饰变成常量,若修饰对象只是引用为常量,对象属性值仍可变,接口中变量都final

      final方法:不能被重写(private方法默认会加上final)

      final类:不能被继承(该类方法也就默认为final)

5、abstract:

      abstract方法:必须在abstract类中,没有方法体(interface中方法都是)

      abstract类:不能被new,内部可以有非abstract方法

6、finalize:GC回收前调用的方法,强行执行回收(System.gc())

7、重载:参数个数、参数类型、不同类型下参数顺序(跟返回值或权限无关),子类和父类之间也可以形成

四、访问控制

1、public、protected、friendly、private

2、class不能用private或者protected(内部类除外)

3、perr()和assert()断言测试

五、继承

1、继承中重写子类返回值也要一样,修饰符范围要更大,static和final的不能被继承 

2、子类父类定义相同的字段,父类的会隐藏,可用super()调用

3、子类可以调用父类非private的属性或者方法

六、多态

1、三条件:继承、重写和向上转型

2、内部类实例化用 OutClass.InClass test = new OutClass.InClass()

七、集合

1、Collection -- List -- ArrayList、LindedList

                          Set -- HashSet、TreeSet

      Map -- HashMap、TreeMap、HashTable

2、排序:

      Comparable:Person implements Comparable,Collections.sort(list)

      Comparator:PeopleComparator implement Comparator,Collections.sort(list,new PeopleComparator())

八、异常

1、Throwable -- Error:Error是系统级别错误,是不可预测的

                          Exception -- Checked Exception:可检查异常,除了RuntimeException及其子类外都是,在程序中显式catch或者throws

                                               Unchecked Exception:不可检查异常,RuntimeException及其子类外都是,不需在程序中显式处理

 

2、常见异常:NullPointerException、ClassNotfoundException、IOException、ClassCastException、FileNotFoundException、IndexOutOfBoundsException、SQLException

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章