java攻城狮基础-总纲

java是一门语法相对简单的流行语言,学习曲线比较低,很多童鞋做了太久的CRUD,误以为自己已经对java相当熟悉。其实,我们说的java,不单单是java语法,还包括java惯用法,常见jdk库的细节,jvm相关的基础知识,常见周边框架原理等,是一个大的体系,并不容易掌握。

我计划写一系列的基础文章,一方面看看自己掌握程度如何,查漏补缺,另一方面是看看自己能不能把重点说清楚,当作一次重新学习的机会。

我先简单整个列表,包括一些常见的基础性话题,后续再进行根据情况调整。写作形式以小文章为主,争取半小时以内可以理解的内容,并附带一些思考题。

  • 面向对象特征,包括封装,继承,多态
  • 原生类型与包装类型,原生类型是其他结构的基础,识别两者在内存上的区别,开封箱特性,了解包装类型的实现,如特定整型对象的缓存。
  • 匿名类、内部类、静态内部类,了解他们之间的区别,还有编译后的实际结构(如何转换为普通类)。
  • 可变长参数与数组参数,了解可变长参数在编译层面的实现,了解存在重载情况下可能的混淆问题。
  • 内部变量初始化、构造方法、静态变量初始化、静态块、及存在继承关系时的执行顺序,原则:父类优先,静态常量优于静态块
  • equals,hashcode用途,实现原则,hashcoe要实现简单,和equals保持一致,equals要确保自反性,对称性,传递性,一致性。了解hashcode和equals的应用场景。
  • 对象的强、软、弱和虚引用,了解各种引用的区别及应用场景 http://www.importnew.com/20468.html
  • 常见集合类的特性,应该能够在实际作用中灵活使用,掌握区别及实现原理,列表(ArrayList Vector LinkedList Queue Stack Deque PriorityQueue),散列(HashMap LinkedHashMap TreeMap IdentityHashMap EnumMap WeakHashMap HashTable SortedMap),集合(HashSet TreeSet EnumSet) 需要整理一个特性比较的表格 待整理
  • 多线程基础 java线程模型,线程生命周期,sleep,wait,notify,notifyall,join等线程通信机制。理解同步,原子性,可见性,CAS无锁机制等概念,了解常见锁类型。
  • 并发工具类,掌握常见并发工具类的特性,使用场景,使用方法。了解相关的实现原理。主要包括Executor,Atomic类,ConcurrentHashMap,CopyOnWriteArrayList,BlockingQueue,Latch,Barrier,Condition,Lock等等
  • 擦除型泛型,上限,下限,掌握泛型的作用,如何保持旧代码兼容
  • String、StringBuffer和StringBuilder类的应用场景,区别
  • 正则表达式,掌握常见正则表达式写法,了解正则表达式实现
  • Checked异常和Runtime异常体系,异常的性能,实践中异常的设计与统一处理,包括安全性设计
  • 字符,字节,io流,掌握java流设计体系,字符编码相关知识点,编码转换特性
  • 序列化,序列化应用场景,性能,安全性方面
  • java8最新特性 http://m.open-open.com/m/lib/view/1403232177575.html#methodReferences