工作多少年了,还在传统公司写if / for 等简单的代码?那你就真的要被社会淘汰了,工作多年其实你与初级工程师又有多少区别呢?那么作为一个高级 Java 攻城狮需要突破哪些知识点呢?
1、Java基础技术体系、 JVM 内存分配、垃圾回收、类装载机制、性能优化、 反射机制 、 多线程 、 网络编程 、常用数据结构和相关算法。
2、对面向对象的软件开发思想有清晰的认识、熟悉掌握常用的设计模式。
3、熟练掌握目前流行开源框架( spring /springmvc/ibatis),并且对其核心思想、实现原理有一定认知。
4、熟悉Oracle、 MySQL 等数据库开发与设计以及 缓存 系统 Redis 或 Memcached 的设计和研发。
5、熟悉底层 中间件 、 分布式技术 (包括缓存、消息系统、热部署)、消息中间件: ActiveMQ 、 RabbitMQ 、 工作流 中间件:JBPM。
6、精通shell编程,熟练应用awk、 sed 、 grep 、strace、tcudump、gdb等常用命令。
7、有大型分布式、高并发、高负载(大数据量)、高可用性系统设计开发经验。
8、对 配置管理 和敏捷研发模式有所了解(svn,git)。
9、熟悉常见的一些解决方案及其原理: 单点登录 、 分布式缓存 、SOA、 全文检索 、消息中间件, 负载均衡 、连接池、 流计算 等。
10、能大概知道市面上主流技术的特点及业务瓶颈。