一个BAT中高级Java开发工程师需要了解的知识

近三年,其实都是在做一个项目,项目是一个大型的多节点部署的项目,做了好几个版本,中间用到了很多技术和框架,

也用了一些管理工具和敏捷实践。我这里不是来说项目的,因为最近看了一些招聘信息,结合项目中用到的一些知识和

管理措施,作为一个程序员,需要去实时评估下自己当前的能力是否能跟上时代的步伐,所以,总结了下作为一个中高

级Java开发人员或架构师,到底需要掌握哪些技能。

当然,下述所列都是自己的看法,有兴趣的参考下,没兴趣的,就当看笑话了吧。

一个BAT中高级Java开发工程师需要了解的知识

1、对于Java基础技术体系(包括JVM、类装载机制、多线程并发、IO、网络)有一定的掌握和应用经验。

JVM内存分配、JVM垃圾回收;

类装载机制;

性能优化:

反射机制;

多线程;

IO/NIO; http://developer.51cto.com/art/201112/307172.htm

网络编程;

常用数据结构和相关算法:

2、对面向对象的软件开发思想有清晰的认识、熟悉掌握常用的设计模式;

设计模式:单例模式;工厂模式;代理模式;模板方法模式;责任链模式等

3、熟练掌握目前流行开源框架(spring/springmvc/ibatis),并且对其核心思想、实现原理有一定认知;

开源框架:spring;

开源框架:hibernate;

4、熟悉Oracle、MySQL等数据库开发与设计以及缓存系统REDIS或 Memcached的设计和研发;

关系数据库:oracle

关系数据库:PostgreSQL

缓存系统:Redis(Nosql)

缓存系统:Memcached

5、熟悉底层中间件、分布式技术(包括缓存、消息系统、热部署、JMX等)

底层中间件:

应用服务器:Jetty(Tomcat)

消息中间件:ActiveMQ、RabbitMQ

事务处理中间件:

数据访问中间件:ODBC

工作流中间件:JBPM

分布式技术:

缓存系统:

消息系统:

Restful:

热部署:

JMX:

6、至少一种Java 应用服务器如tomcat

Jetty:

7、精通shell编程,熟练应用awk、sed、grep、strace、tcudump、gdb等常用命令;

8、有大型分布式、高并发、高负载(大数据量)、高可用性系统设计开发经验

分布式:(多节点部署)

高并发:

高负载(大数据量):

高稳定:

高可用:

9、对配置管理和敏捷研发模式有所了解

配置管理工具:

SVN:

Git:

10、业务能力:

系统升级、双机、部署、容灾、备份恢复、DFX

加分技术:

脚本语言:python

远程调用:

精通Internet基本协议(如TCP/IP、HTTP等)内容及相关应用

有一定安全意识并了解常见的安全问题解决方案

熟悉常见的一些解决方案及其原理:单点登录、分布式缓存、SOA、全文检索、消息中间件,负载均衡、连接池、

nosql、流计算等;

下面给大家一个知识体系点整理

一个BAT中高级Java开发工程师需要了解的知识

一个BAT中高级Java开发工程师需要了解的知识

一个BAT中高级Java开发工程师需要了解的知识

一个BAT中高级Java开发工程师需要了解的知识

一个BAT中高级Java开发工程师需要了解的知识

针对上面的技术我特意整理了一下,有很多技术不是靠几句话能讲清楚,所以干脆找朋友录制了一些视频,要做到知其然还要知其所以然。

如果想学习Java工程化、高性能及分布式、深入浅出。性能调优、Spring,MyBatis,Netty源码分析的朋友

资料获取方式:请加群BAT架构技术交流群:171662117

  • 可以领取免费的架构师学习资料。
  • 了解最新的学习动态
  • 了解最新的阿里,京东招聘资讯
  • 获取更多的面试资料

1、具有1-5工作经验的,面对目前流行的技术不知从何下手,需要突破技术瓶颈的可以加群。

2、在公司待久了,过得很安逸,但跳槽时面试碰壁。需要在短时间内进修、跳槽拿高薪的可以加群。

3、如果没有工作经验,但基础非常扎实,对java工作机制,常用设计思想,常用java开发框架掌握熟练的,可以加群。

4、觉得自己很牛B,一般需求都能搞定。但是所学的知识点没有系统化,很难在技术领域继续突破的可以加群。

5. 群号:高级架构群 :171662117备注好信息!

6.阿里Java高级大牛直播讲解知识点,分享知识,多年工作经验的梳理和总结,带着大家全面、科学地建立自己的技术体系和技术认知!

猜你喜欢

转载自blog.csdn.net/JAVA_ICU/article/details/89451090