首页 > 代码库 > 如何成为一名Java开发者?

如何成为一名Java开发者?

    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

    下面的链接对你的学习可能会有所帮助

    (1) The Java Tutorials

    (2) Java revisited

    (3) JavaWorld

    (4) Java2s - Many Java code snippets

    (5) Java - Interview Questions and Answers - Quick Reference - One Liners

    (6) Java web tutorials

    (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

    (11) Spring Interview Questions FAQs Interview Questions Spring Tutorial JSF Interview Questions Hibernate Interview Questions

    (12) WAS / WSAD / RAD - Interview Questions and Answers

    (13) JavaScript Interview questions and answers

    (14) Interview Questions and Answers on Markup Languate - XML, JSON