您的位置:首页 > 职场人生

怎样才是一个基础水平与进阶水平的Java程序员

2017-05-25 13:56 471 查看

怎样才是一个基础水平的Java程序员呢?

熟悉常用的数据结构,包括数组,链表,树,哈希表等。

熟悉结构化编程和面向对象编程。

能够阅读UML设计图,根据UML语义进行编码

了解RDBMS和SQL的使用,包括DDL和DML,理解数据库事务(ACID),锁和死锁。

熟悉Java语法特性,正确理解多线程,同步,临界区,线程安全,异常,泛型等。

了解常用的Java库,比如java.lang,http://java.iohttp://java.net,java.util,java.sql,javax.xml,

能够看懂中英文javadoc,快速上手新的类库和框架。

熟悉Java Web编程,如Servlet,Spring,以及ORM框架。

熟练使用Java IDE如eclipse,尤其是能够调试错误。

会使用构建工具如Ant,Maven构建项目。

会使用JUnit开发单元测试用例,能够使用代码覆盖率工具如EMMA检查测试的覆盖率

如果能够使用代码调优工具提升代码性能更好

如果能够使用静态检查工具如PMD检查代码中的问题会更好

如果能够了解JVM的机制,如垃圾回收,类加载会更好

怎样才是一个进阶水平的Java程序员呢?

掌握面向对象的需求分析和设计

理解SOLID原则,理解常用设计模式,熟练掌握重构

理解面向服务的架构

理解Linux操作系统的一些概念,比如内核空间,用户空间,系统调用,命名管道,Unix Domain Socket,

熟悉Linux下命令行工具。

深入理解进程,线程。

了解Java内存模型

了解Java的并发包,如锁,读写锁,Barrier,Executer和Future

了解Java 8的Lambda表达式和Streaming API

理解TCP/IP协议族

理解HTTP协议和REST API

理解多路复用和非阻塞IO

熟悉Socket编程,能够使用网络框架如netty开发服务端程序

掌握RPC框架的使用,比如RMI,Thrift,Dubbo

掌握消息队列的使用,如JMS,ActiveMQ等

掌握分布式缓存如memcache,Redis的使用

了解代理和负载均衡如Nginx的使用

熟悉分布式KV存储如zookeeper,etcd等,理解选主和分布式锁

会使用Mock框架进行单元测试

了解性能方面的知识,如吞吐量和时延。

能够进行执行性能测试,收集性能数据并进行分析。

了解安全性相关的知识,比如私密性(加密和解密),完整性(消息认证),不可否认性(签名和验签),身份认

证,授权,传输层安全(如SSL/TLS),数字证书和PKI体系

了解可用性相关的知识(,如可用性指标,如MTBF,MTTR,和高可用的实现,如主备。双活,负载均衡

了解容错性,容灾和故障转移
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: