月入3W的高级Java工程师都具备哪些能力?
很多面试,很多人员能力要求都有“Java高级工程师的字眼”,如果您真心喜欢Java,并且您刚起步,那么我今天简单分享一个Java高级工程师所应该具备的特质,希望能给你带来帮助。
1、平静的心态
和所有程序员一样,要写一手好的程序,没有好的心态是不行的。
遇事不可急躁,不可轻言放弃。
在程序开发过程中,尤其是初中级程序员,写出的程序或架构会遇到很多问题,其中一些问题比较弱智,而有些问题根本没有碰到过,于是不可太过急躁,应该逐个排查问题的最初源泉,将其干掉。急躁的心态去开发系统是对项目的一种不负责。急躁会让人学会将就,让人学会逃避。而我个人北京两年的简单生活,给我其中一个最大的历练也就是:我的心态更加平静了。
相信,这样的心态也会有助于你其他方面的处事能力。
为什么将心态列入其中,我是想说明:它不同于销售的职能,需要很大激情澎湃,而是需要静静的思考。
2、一套烂熟于心的问题解决思路
曾经有位程序开发的同事在QQ签名中写到:每解决一个bug,就给自己一个提升。的确,没有真正解决过无数的bug或问题的程序员,谈不上专家,谈不上高级程序员。而一个高级程序员正是从这种解决问题的过程中不断地历练自己,形成一套烂熟于心的问题解决思路,让自己强大的。
我也简单说说Java程序员成长过程中经常遇到的一些问题,如果你一个也没遇到或很少遇到,那么您就是两个极端的人:要么初级入门,要么高级了,哈哈。
基础扎实,熟悉 Java 编程,熟悉 Spring、MyBatis 等框架优先;
熟悉 SQL 语句,熟练使用 MySQL 数据库;
良好的沟通、表达、协调能力,富有激情,学习能力强;
1、先自我介绍
2、什么是多态?哪里体现了多态的概念?
3、HashMap 源码分析,把里面的东西问了个遍?最后问是不是线程安全?引出 ConcurrentHashMap
4、ConcurrentHashMap 源码分析
5、类加载,双亲委托机制
6、Java内存模型(一开始说的不是他想要的,主要想问我堆和栈的细节)
7、垃圾回收算法
8、线程池,自己之前看过,所以说的比较多,最后面试官说了句:看你对线程池了解还是很深了
9、事务的四种特性
10、什么是死锁?
11、乐观锁和悲观锁的策略
12、高可用网站的设计(有什么技术实现)
13、低耦合高内聚
14、设计模式了解不?你用过哪几种,为什么用,单例模式帮我们做什么东西?有什么好处?
15、你参与什么项目中成长比较快?学到了什么东西,以前是没有学过的?
16、项目中遇到的最大困难是怎样的?是怎么解决的?
17、智力题(两根不均匀的香,点一头烧完要一个小时,怎么确定15分钟)
18、你有什么问题想要问我的?
19、问了菜鸟网络他们部门主要做什么?
20、登录从前端到后端整个过程描述一遍?越详细越好,说到密码加密,网络传输,后台验证用户名和密码,Cookie 设置等。具体问我密码加密是前台还是后台加密,说了在后台加密?面试官说,那你做这个项目有什么意思?密码传输都是明文的,默认 HTTP 传递是明文传输,当时被面试官带进前台加密还是后台加密的沟里去了,没想到用 HTTPS ,后来后来的路上查了些资料才知道的,面试过程中他很想我说前台加密,但是前台加密算法那代码就摆在那里,很容易就给破解了吧,也没给点提示说 HTTPS,我只好投降
21、写一个查询的 sql 语句
22、线程同步的方法?Synchronized、Volatile、(面试官好像觉得 Volatile 不可以做到同步,我和他说了半天的 Volatile 原理 ,他竟然不认同,我开始怀疑他的实力了)、ThreadLocal、Atomic。
说到这些了,我当时竟然没把他带进我我给他挖的坑里去(线程池,之前好好研究过呢,可惜了)
23、Spring IOC 和 AOP 的理解?叫我写 AOP 的代码,我没写
24、JDK 动态代理和 Cglib 代理区别?
25、你觉得项目里面你觉得哪些技术比较好?我指了两个,然后他也没有问下去。
26、解释下 XSS 攻击
27、Spring 和 SpringBoot 的区别?
28、JVM 垃圾回收算法?分代中为什么要分三层?
29、OOM 是什么?什么情况会发生?
30、你觉得你有啥优点?
面试大公司基本都会问的技术,也是大公司经常用到的一些技术
性能调优
性能优化如何理解
性能基准
什么是性能优化
衡量标准
JVM调优
jvm虚拟机的内存解析
垃圾收集器
实战调优案例与解决方案
JVM运行时区
Java程序员性能优化
优雅的创建对象
注意对象的通用方法
类的设计陷阱
泛型需要注意的问题
java方法的那些坑
程序设计的通用规则
Tomcat
线程模型分析
生产环境配置及调优
运行机制及框架
Mysql
探析BTree机制
执行计划深入分析
Mysql索引优化详解
慢查询分析与SQL优化
应用框架源码解读
Spring IOC
Spring Aop
Spring MVC
Spring5的新特性
Mybatis
Spring IOC
SpringFrammework体系结构
源码分析
BeanFactory源码分析
BeanDefiniton源码分析
Bean生命同期
依赖实现
Spring Aop
Aop源码分析
transaction事物分析
Springcache框架源码分析
Spring MVC
MCV简介与设计思想
SpringMVC组成
源码解读DispatchServlet
Spring5新特性
容器增加
函数式编程
webFlux模块介绍
kotlin介绍
Testing改进
兼容性问题
Mybatis
mybatis组成
核心源码分析
手写Mybatis
分布式架构
互联网分布式架构是非常重要的一个技术,基本上所有的大公司都会用分布式
分布式架构思维
大型互联网架构演进过程
架构师应具备的分布式知识
主流分布式架构设计详解
架构开发基础
多线程开发
高性能NIO框架
架构核心服务层技术
服务的前世今生
深入理解通讯协议
基于 分布式RPC解决方案
dubbo全解析
架构关键基础设施
分布式环境指挥官zookeeper
分布式消息通讯异步与MQ
分布式缓存
数据存储SQL&NoSQL
高并发分流技术Nginx
分布式解决方案
分布式解决方案
Session跨域共享实战
分布式事物解决方案实战
分布式锁解决方案实战
分布式单点登录实战SSO
分布式调度任务系统
分布式配置中心
微服务架构技术
微服务这块应该不用多说了,知道微服务技术的至少能多加5k薪资
SpringBoot
SpringCloud
Docker虚拟化技术
SpringBoot
与微服务的区别于联系
快速构建SpringBoot工程
SpringBoot核心组件剖析
快速集成mybatis实战
快速集成Dubbo及案例实战
构建集成 redis及案例实战
构建Swagger插件实现API
管理及接口测试体系
SpringCloud
Zuul路由网关详解源码探析
Ribbon客户端负载均衡原理
Feign声明式服务调用方式
Eureka注册中心构件
Config配置服务中心
svn、git快速集成
Sleuth调用链路跟踪
BUS消息总线技术
Docker虚拟化技术
介绍、安装与使用
compose部署脚本
service服务编排
redis分布式集群部署
docker file构建
通过maven插件打包镜像
部署及运行应用程序kubernetes编配
构建Mysql集群实战
高可用SpringCloud微服务与docker集成实现动态扩容实战
团队协作开发
这个是常用的开发工具类的,提升团队效率
Git
Maven
Jenkins
Sonar
说到这里,也给大家推荐一个架构交流学习群:828545509,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析
,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,相信对于已经工作
和遇到技术瓶颈的码友,在这个群里会有你需要的内容。
点击链接加入群聊【Java高级架构师学习群】:https://jq.qq.com/?_wv=1027&k=5T2kMGl
下面是一些免费资料的展示。