基础水平与进阶水平的Java程序员必看知识

2018-01-29  本文已影响43人  野梦M

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

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

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

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

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

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

了解常用的Java库

能够看懂中英文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,和高可用的实现,如主备。双活,负载均衡

了解容错性,容灾和故障转移如果你在学习Java的过程中或者在工作中遇到什么问题都可以来群里提问,阿里Java高级大牛直播讲解知识点,分享知识,多年工作经验的梳理和总结,带着大家全面、科学地建立自己的技术体系和技术认知!JAVA学习交流QQ群:288351179 可以加群找我要课堂链接 注意:是免费的 没有开发经验误入哦! 非喜勿入!

上一篇下一篇

猜你喜欢

热点阅读