Java是当今世界三大编程语言之一。它可被用来开发Web应用和桌面应用,而且它是跨平台的 - 一次编译,多处运行(write once, run everywhere)。而且,Java上手十分简单。如果你想要成为一名合格的Java开发者,你需要看看自己是否知道一下内容。
下面的列表是由一个高级Java开发者Vivek Vermani总结的。
对于一个核心Java开发者来说,他最好应了解以下内容。
(1) 面向对象(OOP)的概念
(2) 抽象类(abstract class)和接口(interface)
(3) 构造函数(constructor)和初始化顺序
(4) 文件输入/输出(IO)和序列化(serialization)
(5) 集合(collection) - List、Map、Set
(6) 访问修饰符(access specifier)
(7) 异常(exception) - 检测(checked)、未检测(unchecked)
(8) 泛型(generic)
(9) Java保留字 - static、final、volatile、synchronized、transient、this、super等
(10) JVM和内存管理
(11) 多线程(multithreading)及同步(synchronized)
(12) 设计模式(design pattern)
(13) 反射(reflection)
(14) Lambda表达式
《Java面试问题及答案-快速浏览》中包含200多个有关Java核心技术的问题。
如果你想关注网络(network) / 分布式(distributed)应用,你需要了解:
(1) 通信协议,如IP、HTTP、TCP、FTP、UDP,阅读相关RFC文档是很有必要的
(2) 异步(synchronous)通信 vs 同步(asynchronous)通信
(3) socket
(4) 诸如远程方法调用(RMI,Remote Method Invocation)、RCP等技术
(5) 消息队列(message queue)
(6) 接口API,如JMS、JDBC、ORM、Hibernate
如果需要开发基于Java的Web应用,则要学习以下内容:
(1) JSP / Servlets
(2) Web框架,如Struts、Spring
(3) 面向服务的架构(Service Oriented Architecture)/ Web服务,如SOAP、Rest
(4) HTML、CSS、Javascript、JQuery等技术
(5) 标记(Markup)语言,如XML、JSON
(6) 应用服务器和Web服务器,如Tomcat
(7) 缓存(caching)
(8) Web应用服务器,如WebLogic、WebSphere
(9) 云服务,如AWS、SoftLayer、BlueMix
(10) 类库,如Java mail、log4j、Jackson JSON
如果需要进行Java UI相关开发,那么要了解的内容有
(1) Applet
(2) 诸如Swing、SWT、AWT等框架
(3) 高级框架,如JavaFX、JMF
作为一个Java开发者,了解一些数据库的知识也是很有必要的。
(1) SQL查询 - 内联接(inner join)、外联接(outer join)、分组(group by)、having
(2) 存储过程(stored procedure)
(3) 触发器(trigger)
(4) 游标(cursor)
(5) 数据库驱动,如JDBC
(6) JavaBean
此外,还需要了解有关开发工具、方法论、开发流程等一系列内容。
(1) 开发工具,如Eclipse、RAD、IntelliJ IDEA
(2) 设计工具和图表
(3) 配置管理工具,如SVN、Clearcase等
(4) 纠错(defect)管理
(5) Build工具,如Maven、Ant等
(6) 测试 - 单元测试(unit testing)、JUnit、黑盒(black box)、白盒(white box)
(7) 开发方法论 - 敏捷开发(agile)、瀑布流(waterfall)、迭代(iterative)
(8) 需求分析(requirement analysis)
(9) 发布(release)管理
(10) 逆向工程(reverse engineering) - JadClipse(一种Java反编译器)
(11) Open JDK源代码 - Mercurial on Eclipse
下面的链接对你的学习可能会有所帮助
(2) Java revisited
(3) JavaWorld
(4) Java2s - Many Java code snippets
(5)
Java - Interview Questions and Answers - Quick Reference - One Liners
(7)
Java Concurrency / Multithreading Turtorials
(8)
Introduction to Java programming
(9)
200+ Java / J2EE Interview Questions and Answers
(10)
Struts Framework - Interview Questions and Answers
(12)
WAS / WSAD / RAD - Interview Questions and Answers
(13)
JavaScript Interview questions and answers
(14) Interview Questions and Answers on Markup Languate - XML, JSON