怎样才是一个基本水平的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,和高可用的实现,如主备。双活,负载均衡
  • 了解容错性,容灾和故障转移

最新文章

  1. Android okHttp网络请求之文件上传下载
  2. DOM0级事件处理和DOM2级事件处理
  3. Linux CentOS中使用SQL*Plus启动和关闭数据库
  4. hdu 4967 Handling the Past
  5. 聊一聊google的Knowledge Graph
  6. SpringMvc多文件上传简单实现
  7. Apache虚拟目录
  8. iOS 10 UserNotification框架解析 – 本地通知
  9. #Java学习之路——基础阶段二(第七篇)
  10. 日志切割工具logrotate解决Tomcat catalina.out日志过大的问题
  11. 前端 --- 关于DOM的介绍
  12. 理解express中的中间件
  13. 5 jmeter性能测试小小的实战
  14. 学习笔记57—归一化 (Normalization)、标准化 (Standardization)和中心化/零均值化 (Zero-centered)
  15. HTML代码转换为JavaScript字符串
  16. 【JS】input输入框只能输入数字
  17. Android开发四大组件之Service(具体解释篇)
  18. Java里多个Map的性能比较(TreeMap、HashMap、ConcurrentSkipListMap)
  19. 大聊Python----迭代器
  20. iis实现点击文件下载而不是打开文件

热门文章

  1. MVC微信浏览器图片上传(img转Base64)
  2. nginx编译安装新模块
  3. Java 基本的递归写法
  4. 【java基础】(3)Java继承内存分配
  5. POJ 3041 - 最大二分匹配
  6. OpenCV中IplImage/CvMat/Mat转化关系
  7. 使用Reporting Services时遇到的小问题
  8. 读书笔记「Python编程:从入门到实践」_5.if语句
  9. eclipse导入Javaweb文件出错解决
  10. Python基础--Redis基础