月入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、你觉得你有啥优点?
如何系统学习,让你月入30K?
主要用到的技术栈
关注我:私信回复“架构资料”获取往期Java高级架构资料、源码、笔记、视频
Dubbo、Redis、设计模式、Netty、zookeeper、Spring cloud、分布式、
高并发等架构技术,获取以上资料
面试大公司基本都会问的技术,也是大公司经常用到的一些技术
性能调优
性能优化如何理解
性能基准
什么是性能优化
衡量标准
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
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
微服务网关Zuul迁移到Spring Cloud Gateway
背景 在之前的文章中,我们介绍过微服务网关Spring Cloud Netflix Zuul,前段时间有两篇文章专门介绍了Spring Cloud的全新项目Spring Cloud Gateway,以及其中的过滤器工厂。本文将会介绍将微服务网关由Zuul迁移到Spring Cloud Gateway。 Spring Cloud Netflix Zuul是由Netflix开源的API网关,在微服务架构下,网关作为对外的门户,实现动态路由、监控、授权、安全、调度等功能。 Zuul基于servlet 2.5(使用3.x),使用阻塞API。 它不支持任何长连接,如websockets。而Gateway建立在Spring Framework 5,Project Reactor和Spring Boot 2之上,使用非阻塞API。 比较完美地支持异步非阻塞编程,先前的Spring系大多是同步阻塞的编程模式,使用thread-per-request处理模型。即使在Spring MVC Controller方法上加@Async注解或返回DeferredResult、Callable类型的结果,其实仍只是...
- 下一篇
这38个小技巧告诉你如何快速学习MySQL数据库
无论是运维、开发、测试,还是架构师,数据库技术是一个必备加薪神器,那么,一直说学习数据库、学MySQL,到底是要学习它的哪些东西呢?此文为你揭晓,你值得一看!看过别忘记点赞+转发支持哦。 1.如何快速掌握MySQL? ⑴培养兴趣 兴趣是最好的老师,不论学习什么知识,兴趣都可以极大地提高学习效率。当然学习MySQL 5.6也不例外。 ⑵夯实基础 计算机领域的技术非常强调基础,刚开始学习可能还认识不到这一点,随着技术应用的深 入,只有有着扎实的基础功底,才能在技术的道路上走得更快、更远。对于MySQL的学习来说, SQL语句是其中最为基础的部分,很多操作都是通过SQL语句来实现的。所以在学习的过程中, 读者要多编写SQL语句,对于同一个功能,使用不同的实现语句来完成,从而深刻理解其不同之处。 (3)及时学习新知识 正确、有效地利用搜索引擎,可以搜索到很多关于MySQL 5.6的相关知识。同时,参考别 人解决问题的思路,也可以吸取别人的经验,及时获取最新的技术资料。 ⑷多实践操作 数据库系统具有极强的操作性,需要多动手上机操作。在实际操作的过程中才能发现问题, 并思考解决问题的方法和思路,只...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Hadoop3单机部署,实现最简伪集群
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2整合Redis,开启缓存,提高访问速度
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS6,CentOS7官方镜像安装Oracle11G