月入3W以上的高级Java工程师都具备哪些能力?

很多面试,很多人员能力要求都有“Java高级工程师的字眼”,如果您也还在Java,或者刚起步工作2年到5年时间,在这简单分享一个Java高级工程师所应该具备的一些特质和看法。

一、平静的心态

和所有程序员一样,要写一手好的程序,没有好的心态是不行的。

遇事不可急躁,不可轻言放弃。

在程序开发过程中,尤其是初中级程序员,写出的程序或架构会遇到很多问题,其中一些问题比较弱智,而有些问题根本没有碰到过,于是不可太过急躁,应该逐个排查问题的最初源泉,将其干掉。急躁的心态去开发系统是对项目的一种不负责。急躁会让人学会将就,让人学会逃避。而我个人北京两年的简单生活,给我其中一个最大的历练也就是:我的心态更加平静了。

相信,这样的心态也会有助于你其他方面的处事能力。

为什么将心态列入其中,我是想说明:它不同于销售的职能,需要很大激情澎湃,而是需要静静的思考。

二、一套烂熟于心的问题解决思路

曾经有位程序开发的同事在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、你觉得你有啥优点?

三、如何系统学习,让你月入30K以上?

主要用到的技术栈

面试大公司基本都会问的技术,也是大公司经常用到的一些技术

性能调优

性能优化如何理解

性能基准

什么是性能优化

衡量标准

JVM调优

jvm虚拟机的内存解析

垃圾收集器

实战调优案例与解决方案

JVM运行时区

Java程序员性能优化

优雅的创建对象

注意对象的通用方法

类的设计陷阱

泛型需要注意的问题

java方法的那些坑

程序设计的通用规则

Tomcat

线程模型分析

生产环境配置及调优

运行机制及框架

Mysql

探析BTree机制

执行计划深入分析

Mysql索引优化详解

慢查询分析与SQL优化

应用框架源码解读

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

与微服务的区别于联系

快速构建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集成实现动态扩容实战

Dubbo应用及源码解读

Dubbo简介及入门

Dubbo管理中心及监控系统安装部署

领域驱动之如何正确划分Dubbo分布式服务

通讯协议TCP、UDP、HTTP分析

Dubbo负载均衡机制探析

如何完成Dubbo服务只订阅及注册模式

团队协作开发

这个是常用的开发工具类的,提升团队效率

Git

Git基本工作原理

Git常用操作及问题处理

Maven

maven重要指令

私服

maven流行插件实战

手写自己的插件

架构师如何理解scope

Jenkins

Sonar

总结

如今的社会虽然压力很大,但年龄已经不是一个硬性的标准,现代人挣脱了很多枷锁,你可以选择张扬个性,也可以选择安稳平凡,每个人都是为自己而活,即使原来的计划被打乱,只要自己勇敢站起来,别人的目光也会变得不敢轻视你,当然你也不需要太在乎别人的目光。未来不管成功与否,你活出自己想要的样子,虽败犹荣,更何况,不努力一把,怎么知道自己不会变的更优秀?

发布了49 篇原创文章 · 获赞 5 · 访问量 2052

猜你喜欢

转载自blog.csdn.net/yunduo1/article/details/104031890