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