think in java 读书笔记

think in java 第四版

  1. 普通内部类,不能有staic数据和字段
    猜想:外部类会根据字段和方法决定编译或运行时期内存分配,内部类作为其中一部分,一旦被决定,无法修改,所以内部类若不是静态,里边不能有static修饰的字段和方法
  2. Foreach:collection能用foreach是因为Iterable接口(1.5引进)的iterator()方法,任何一个类实现了Iterable,都可以用foreach.数组和Iterable无关,也可以用foreach
  3. switch case:一旦case匹配,会顺序执行后面代码,不管后面case是否匹配,直到遇见break
  4. 父 → 子,异常递减
  5. String作为参数传递,实际传递的是引用的拷贝
    StirngBuilder.delete(),删左不删右,(0,length)全删
  6. Pattern.CANON_EQ 340 定界符
  7. RTTI:不知道一个对象准确类型,RTTI帮助我们调查并调用
    RTTI与反射的区别:
    RTTI,编译器在编译时打开和检查.class文件
    反射,.class文件在编译时不可获取,在运行时打开和检查.class文件(通过反射可以跨域访问,包括private)
  8. 类加载在运行期,static修饰变量编译期没有真正分配内存,只是记录了变量应该占据多大内存

你可能感兴趣的:(笔记)