怎样才是一个基本水平的java程序员?
怎样才是一个基本水平的java程序员?
- 熟悉常用的数据结构,包括数组,链表,树,哈希表等。
- 熟悉结构化编程和面向对象编程。
- 能够阅读UML设计图,根据UML语义进行编码
- 了解RDBMS和SQL的使用,包括DDL和DML,理解数据库事务(ACID),锁和死锁。
- 熟悉Java语法特性,正确理解多线程,同步,临界区,线程安全,异常,泛型等。
- 了解常用的Java库,比如java.lang,http://java.io,http://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,和高可用的实现,如主备。双活,负载均衡
- 了解容错性,容灾和故障转移
怎样才是一个基本水平的java程序员?的更多相关文章
- 对于长沙互联网发展,一个外来两年Java程序员的所见所感所愿
惟楚有材,于斯为盛 本文有感于2019长沙互联网求职招聘大会,内容比较多,但都是我自己的一些所见.所感和所愿. 2019年3月的最后一天,参加2019长沙互联网求职招聘大会,看到了很多的招聘企业,也看 ...
- 就这么漂来漂去---一个毕业三个月的java程序员的裸辞风波
注:这并不是一篇技术文章,而是记录了我这几个月经历的入职,裸辞,找工作的心路历程,简单介绍一个博主的情况,我是16年毕业生,校招进了一家北京的公司,java开发,和很多年轻人一样,干了一段时间,我发现 ...
- Java程序员月薪三万,需要技术达到什么水平?
最近跟朋友在一起聚会的时候,提了一个问题,说 Java 程序员如何能月薪达到二万,技术水平需要达到什么程度?人回答说这只能是大企业或者互联网企业工程师才能拿到.也许是的,小公司或者非互联网企业拿二万的 ...
- 猿灯塔:Java程序员月薪三万,需要技术达到什么水平?
最近跟朋友在一起聚会的时候,提了一个问题,说Java程序员如何能月薪达到二万,技术水平需要达到什么程度?人回答说这只能是大企业或者互联网企业工程师才能拿到.也许是的,小公司或者非互联网企业拿二万的不太 ...
- 转载:java程序员如何拿到2万月薪
作者:匿名用户链接:https://www.zhihu.com/question/39890405/answer/83676977来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业转载请 ...
- Java程序员到架构师的推荐阅读书籍
作为Java程序员来说,最痛苦的事情莫过于可以选择的范围太广,可以读的书太多,往往容易无所适从.我想就我自己读过的技术书籍中挑选出来一些,按照学习的先后顺序,推荐给大家,特别是那些想不断提高自己技术水 ...
- 【转】java架构师之路:JAVA程序员必看的15本书的电子版下载地址
作为Java程序员来说,最痛苦的事情莫过于可以选择的范围太广,可以读的书太多,往往容易无所适从.我想就我自己读过的技术书籍中挑选出来一些,按照学习的先后顺序,推荐给大家,特别是那些想不断提高自己技术水 ...
- Java架构师之路:JAVA程序员必看的15本书
作为Java程序员来说,最痛苦的事情莫过于可以选择的范围太广,可以读的书太多,往往容易无所适从.我想就我自己读过的技术书籍中挑选出来一些,按照学习的先后顺序,推荐给大家,特别是那些想不断提高自己技术水 ...
- 10招让你成为杰出的Java程序员(转)
如果你是一个热衷于技术的 Java 程序员, 那么下面的 10 个要点可以让你在众多 Java 开发人员中脱颖而出. 1. 拥有扎实的基础和深刻理解 OO 原则 对于 Java 程序员,深刻理解 Ob ...
随机推荐
- css的外边距合并或者外边距塌陷问题
第一种情况: 已知两个宽和高均为100px,margin均为20px的div垂直排列,现象如下图所示: 当设置css1的margin-bottom:40px:或者css2的margin-top:40p ...
- MYSQL 45道练习题
学生表(Student).课程表(Course).成绩表(Score)以及教师信息表(Teacher).四个表的结构分别如表1-1的表(一)~表(四)所示,数据如表1-2的表(一)~表(四)所示.用S ...
- 【sqli-labs】 less26 GET- Error based -All you SPACES and COMMENTS belong to us(GET型基于错误的去除了空格和注释的注入)
看了下源码 所有的注释形式和反斜线,and,or都被了过滤掉了 单引号没有过滤 空格也被过滤了 http://localhost/sqli-labs-master/Less-26/?id=1' htt ...
- tee
功能说明:把数据重定向到给定文件和屏幕上. 参数选项: -a 向文件追加内容,而不是覆盖. tee命令允许标准输出同时把内容写入(覆盖)到文件中的实践. tee命令允许标准输出同时把内容 ...
- c# cookie帮助类
using System; using System.Collections.Generic; using System.Text; using System.Web; namespace Matic ...
- 【转载】java中的反射
主要介绍以下几方面内容 理解 Class 类 理解 Java 的类加载机制 学会使用 ClassLoader 进行类加载 理解反射的机制 掌握 Constructor.Method.Field 类的用 ...
- 【转载】使用JSONObject生成和解析json
1. json数据类型 类型 描述 Number 数字型 String 字符串型 Boolean 布尔型 Array 数组 Object 对象 null 空值 (1)json中不区分整数.小数等类型, ...
- JQuery的click,trigger触发a标签的click事件无效的问题分析
今天在做一个手机端webAPP链接下载的时候,给a标签一个下载链接,但是通过 <a id="downFile" download="" href=&quo ...
- eas之编码规则&单据转换规则
*当在企业建模中没有要显示的项目的话,则从包更新到系统树然后选择到规则定义,对申请单新增规则. 企业建模--业务规则-规则定义组织优先 多组织有先 集团优先固定值 显示格式PUR ..系统日期 2 ...
- [Ynoi2016]谁的梦
题目大意: 给定$n$个序列,要你从每个序列中选一个非空子串然后拼起来,拼成的序列的贡献为不同元素个数. 支持单点修改,在开始时和每次修改完后,输出所有不同选取方案的贡献和. 解题思路: 窝又来切Yn ...