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

怎样才是一个基本水平的java程序员?的更多相关文章

  1. 对于长沙互联网发展,一个外来两年Java程序员的所见所感所愿

    惟楚有材,于斯为盛 本文有感于2019长沙互联网求职招聘大会,内容比较多,但都是我自己的一些所见.所感和所愿. 2019年3月的最后一天,参加2019长沙互联网求职招聘大会,看到了很多的招聘企业,也看 ...

  2. 就这么漂来漂去---一个毕业三个月的java程序员的裸辞风波

    注:这并不是一篇技术文章,而是记录了我这几个月经历的入职,裸辞,找工作的心路历程,简单介绍一个博主的情况,我是16年毕业生,校招进了一家北京的公司,java开发,和很多年轻人一样,干了一段时间,我发现 ...

  3. Java程序员月薪三万,需要技术达到什么水平?

    最近跟朋友在一起聚会的时候,提了一个问题,说 Java 程序员如何能月薪达到二万,技术水平需要达到什么程度?人回答说这只能是大企业或者互联网企业工程师才能拿到.也许是的,小公司或者非互联网企业拿二万的 ...

  4. 猿灯塔:Java程序员月薪三万,需要技术达到什么水平?

    最近跟朋友在一起聚会的时候,提了一个问题,说Java程序员如何能月薪达到二万,技术水平需要达到什么程度?人回答说这只能是大企业或者互联网企业工程师才能拿到.也许是的,小公司或者非互联网企业拿二万的不太 ...

  5. 转载:java程序员如何拿到2万月薪

    作者:匿名用户链接:https://www.zhihu.com/question/39890405/answer/83676977来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业转载请 ...

  6. Java程序员到架构师的推荐阅读书籍

    作为Java程序员来说,最痛苦的事情莫过于可以选择的范围太广,可以读的书太多,往往容易无所适从.我想就我自己读过的技术书籍中挑选出来一些,按照学习的先后顺序,推荐给大家,特别是那些想不断提高自己技术水 ...

  7. 【转】java架构师之路:JAVA程序员必看的15本书的电子版下载地址

    作为Java程序员来说,最痛苦的事情莫过于可以选择的范围太广,可以读的书太多,往往容易无所适从.我想就我自己读过的技术书籍中挑选出来一些,按照学习的先后顺序,推荐给大家,特别是那些想不断提高自己技术水 ...

  8. Java架构师之路:JAVA程序员必看的15本书

    作为Java程序员来说,最痛苦的事情莫过于可以选择的范围太广,可以读的书太多,往往容易无所适从.我想就我自己读过的技术书籍中挑选出来一些,按照学习的先后顺序,推荐给大家,特别是那些想不断提高自己技术水 ...

  9. 10招让你成为杰出的Java程序员(转)

    如果你是一个热衷于技术的 Java 程序员, 那么下面的 10 个要点可以让你在众多 Java 开发人员中脱颖而出. 1. 拥有扎实的基础和深刻理解 OO 原则 对于 Java 程序员,深刻理解 Ob ...

随机推荐

  1. Spring Boot (4) 静态页面和Thymeleaf模板

    静态页面 spring boot项目只有src目录,没有webapp目录,会将静态访问(html/图片等)映射到其自动配置的静态目录,如下 /static /public /resources /ME ...

  2. Centos7.5 在桌面创建AndroidStudio快捷方式

    Centos7 在桌面创建AndroidStudio快捷方式 前言 最近安装了Centos7,打算将开发平台转移到Linux下,安装好AndroidStudio后,桌面没有快捷方式有些不习惯,随自己创 ...

  3. 【Linux】创建逻辑卷管理(LVM)

    LVM是对磁盘进行分区管理的机制.LVM有很多优点:在线扩容,跨磁盘分区......,缺点:管理相对麻烦.创建LVM的过程如下: LVM是基于普通分区或者整块硬盘来进行的.我们首先把这些存储转换为PV ...

  4. python 上手

    1.安装模块 cmd---“pip install [模块名]” 2.爬虫常用模块 requests beautifulsoup4 3.检查已安装的模块 cmd ---"pip list&q ...

  5. 【sqli-labs】 less27 GET- Error based -All you Union&Select Belong to us -String -Single quote(GET型基于错误的去除了Union和Select的单引号字符型注入)

    看一下过滤函数 看一下/s是什么东西 那直接通过大小写就可以绕过了 http://192.168.136.128/sqli-labs-master/Less-27/?id=0'%a0uNion%a0s ...

  6. CorelDRAW关于使用鼠标的5个技巧分享

    CorelDRAW重度依赖者对快捷键和技巧性的操作爱不释手.本文我们介绍使用CorelDRAW关于鼠标操作的5个技巧,这是五种超快,非常有效,特别实用的技巧,如果每天的工作结合这些技巧的使用,效率会大 ...

  7. JDK8新特性:Lambda表达式

    Lambda表达式,案例一:new Thread(() -> System.out.println("thread")); Lambda表达式,案例二:由参数/箭头和主体组成 ...

  8. Windows上使用iverilog+gtkwave仿真

    主要参考了: https://www.cnblogs.com/lsgxeva/p/8280662.html 谢谢! ------------------------------------------ ...

  9. PAT_A1021#Deepest Root

    Source: PAT A1021 Deepest Root (25 分) Description: A graph which is connected and acyclic can be con ...

  10. html第三节课

    表单 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.o ...