分布式领域攻与伐(1/9)(Java科)

我最初学习Java的时候版本才1.5,毕业的时候也才1.7,如今已经 JavaSE 12了

Java技术船

Java语言本身不复杂(尽管有些API特别难用,比如IO包装流),复杂的是JVM层面,网络层面,操作系统层面。

语言细节很多,可以通过基本书籍系统学习一下;推荐的快餐式学习,我个人是通过下面书复习的:

1. 《Java学习笔记 JDK9》 林信良
2. 《写给大忙人的JavaSE 9核心技术》
3. 《码出高效》孤尽
4. 《Java核心技术及面试指南》

然后几本书读完,大概就会发现,这里存在几个需要提高的地方:

1. Java8以及后续版本提倡的流式编程 (函数式编程)  --- 包括Lambda替代匿名类/接口实现类的写法
2. Java的IO体系 (NIO, NIO2,以及底层的网络IO,甚至扩展到 epoll; 上面可以扩展 netty 等框架)
3. Java并发体系 (从最初的notify等基本API,到后面的高级API,比如锁,Join框架,异步API)
4. 注解,ClassLoader,字节码,JVM原理及其应用
5. Java9之后的模块化平台

泛型,通用API(比如日期,日志,国际化),面向对象(继承,封装,多态),断言,异常等这些不需要特别总结。

(当然如果你不急着做项目挣钱,有多余的闲时间,OK,随意).

哦,忘了说了,如果你的 数据结构 内功不扎实,那么 集合框架 部分也需要总结一下。

(集合框架总结起来也不轻松,这也是一个大块头;幸运的是,市面上的面经多半在说这些)


Java语言本身没有太多东西,但需要练习熟悉的却不少。(大量的练习,熟悉其API,形成自己的 Snippets)

(我是 C++ 程序员,C程序员,所以花费了更多的时间,如果只学Java的话,其实没有那么慢)

当然这里面细节不少,如果真的要考你,可以出大量的题,就不展开了。

Btw:

  • 不要去学 Java 的 Swing 等 GUI 部分,浪费时间,用处不大。
  • 大多厂的项目也只兼容到 Java8,其他特性只做了解,所以不追新貌似也不要紧?

Tip:

  • 这只是 Java语言本身,后面框架还多着呢,如果你没有太多时间系统学习,那么可以 不必理会提高的部分 (稍后再总结也行),就像 Spring框架里面封装了很多底层网络API,你不必一一去了解 (进退有度)。

这里的细节,我全部不展开,太多了。请找一个面试官旁友问问自己就好了。

(现在有花钱模拟面试的服务卖,大家可以找专业的,顾问,资深人士考察一下自己).

2019年11月底更新


   转载规则


《分布式领域攻与伐(1/9)(Java科)》 欧文 采用 知识共享署名 4.0 国际许可协议 进行许可。
  目录