博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
怎样才是一个基本水平的java程序员?
阅读量:7195 次
发布时间:2019-06-29

本文共 1174 字,大约阅读时间需要 3 分钟。

怎样才是一个基本水平的java程序员?

  • 熟悉常用的数据结构,包括数组,链表,树,哈希表等。
  • 熟悉结构化编程和面向对象编程。
  • 能够阅读UML设计图,根据UML语义进行编码
  • 了解RDBMS和SQL的使用,包括DDL和DML,理解数据库事务(ACID),锁和死锁。
  • 熟悉Java语法特性,正确理解多线程,同步,临界区,线程安全,异常,泛型等。
  • 了解常用的Java库,比如java.lang,,,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,和高可用的实现,如主备。双活,负载均衡
  • 了解容错性,容灾和故障转移

 

转载于:https://www.cnblogs.com/Renyi-Fan/p/8302911.html

你可能感兴趣的文章
拥抱函数式编程 I - 基本概念
查看>>
2的正幂末尾数的模式
查看>>
apache官方供下载所有项目所有版本的官方网站地址
查看>>
redis sentinel模式集群
查看>>
从客户端中检测到有潜在危险的 request
查看>>
C# 上传图片前判断上传图片的宽和高
查看>>
Socket.io应用之联网拖拽游戏
查看>>
ubuntu 12.04编译安装linux-3.6.10内核笔记
查看>>
【转】DLX 精确覆盖 重复覆盖
查看>>
我的Java开发学习之旅------>Java经典排序算法之插入排序
查看>>
我的Android进阶之旅------> Android应用升级构想和要点总结
查看>>
平衡搜索树(一) AVL树
查看>>
VMware(威睿)后端开发笔试题总结
查看>>
Cookie详解
查看>>
微信公众号替换title
查看>>
Python-Day4-函数
查看>>
4- MySQL创建表以及增删改查
查看>>
Debian Security Advisory(Debian安全报告) DSA-4406-1 waagent
查看>>
Algs4-1.4.28一个队列实现的栈
查看>>
【hadoop】如何向map和reduce脚本传递参数,加载文件和目录
查看>>