1.熟悉数组、链表、树形、哈希表等常见数据结构。
了解结构式程序设计及 OOP程序设计。
可以读懂 UML的设计图表,并按照 UML的语义编写代码
2.熟悉关系型数据库管理系统及 SQL的应用,如 DDL、 DML、数据库交易、锁定、死锁等。
3.了解 Java的语法特征,对多线程、同步、临界区、线程化、例外、通用等有一定的了解。
4.学习常见的 Java库,例如java.la ng,http://java.io,http://java.net, java. util, java. sql, javax. xml,
能读懂中英文两种语言的 JVADOC,能迅速掌握新的类库及框架。
5.熟悉诸如 Servlet、 Spring、 ORM等 Java网络程序设计。
熟悉像 eclipse这样的 Java IDE,特别是能够进行错误调试的能力。
6.将利用诸如 Ant, Maven之类的创建工具来创建项目。
7.可以用 JUnit来开发单元测试用例,并且可以用诸如 EMMA这样的代码覆盖工具来检查测试的覆盖情况。
8.如果你可以通过代码优化工具来提高你的代码的性能
最好能用诸如 PMD之类的静态检测工具来检测代码中的问题
9.如果你能理解诸如垃圾收集之类的 JVM机制,那么你就能更好地装载类
一、如何成为一名高级 Java程序员?
1.用 OOP方法进行需求分析与设计
了解 SOLID的原理,了解常见的设计模式,并精通重构技术
了解面向服务的体系结构
2.了解 Linux操作系统的一些概念,例如:内核空间、用户空间、系统调用、命名管道、 Unix域 Socket。
3.对 Linux下的命令行软体有一定的了解。
对过程、线程会有更深的了解。
4.对 Java记忆模型的理解
理解 Java并发包,例如锁定,读取和写入锁定,缓冲区, Executer和未来
理解 Lambda表达式和 Java 8的流 API
了解 TCP/IP系列
了解 HTTP协议与 RESTAPI
了解多路传输与无阻塞输入输出
5.具有 Socket编程能力,可以利用像 netty这样的网络框架来开发客户端程序
熟练使用 RPC框架,如 RMI、 Thrift、 Dubbo等
6.熟悉使用 JMS、 ActiveMQ等消息队列
熟悉使用 Memcache、 Redis等分布式高速缓存
7.学习如何使用代理以及如何使用诸如 Nginx之类的负载平衡
8.了解诸如 zookeeper, etcd等分布式 KV存储,了解选择主机和分布式锁定
将在单元测试中使用 Mock框架
理解系统的性能指标,例如吞吐率和延迟。
9.有能力执行绩效测试、搜集绩效资料和分析。
10.理解与安全性有关的知识,例如:私密性(加密和解密),完整性(消息认证),不可否认性(签名和验签),身份认证,授权,传输层安全(如 SSL/TLS),数字证书和 PKI体系。
11.理解与可用性有关的(,例如 MTBF、 MTTR等可用性度量,以及诸如主备份等高可用性实施。双重激活和负载平衡,学习错误、灾难和故障恢复。