月薪10K、15K、20K的Java程序员分别需要掌握哪些技术?

大家好,我是马小呆,我们又见面了。今天我们聊聊一个大家普遍关心的问题,java程序员的工资,以及对应的技术水平。

一般来说,做技术都是工作经验越丰富越吃香,当然了也有很多人说35岁以后的程序员就很难找工作了!

所以在自己刚入行工作的前3年,一定要不断提升自己的技术能力。自己也要准备一份面试题大全,业余时间把面试的题目都去认真了解、研究一遍。做到随时都可以辞职面试的状态,有备无患!

ok,回到我们之前的话题,月薪10k,15k,20k分析需要掌握什么样的技术,相信这才是你最关心的。

月薪10K左右:

属于小白-1年经验,java入门级别。普遍学会java基础,常用框架中Springboot、mybatis能够灵活使用,懂得一下原理性的东西,然后自己做几个项目,简历再包装一下2年经验,好好准备一下面试,这样通过面试的概率就很高了。当然了,1年经验的同学如果技术还可以,包装一下3年经验也可以哈,工资的话13K、15k可以尝试一下。

所以,你应该准备这样一份面试题:

10K面试题:

1.抽象类和接口的关系和区别,以及你在时间开发过程中是怎么使用到的?

2.你知道反射机制和动态代理吗?

3.一个线程连续两次调用start方***发生什么?简单谈谈线程的几种状态?

4.springmvc实现原理?

5.mybatis中#$的区别?

6.你知道设计模式吗?在实际运用中你会怎样去运用他?比如我这里有个策划打折活动,

比如VIP, 普通用户,顾客分别打不一样的折扣,你会用什么设计模式?

7.你知道索引失效嘛?举例看看?

8.多态在实际项目的使用?

9.你知道Spring IOC吗?Spring是怎么创建对象的?

10.你知道缓存机制不?

11.你的项目中有用到数据库分库分片吗?数据库分库分片规则?

12.在实际中你会怎样对sql语句进行优化?

13.常见的数据结构有哪些?在JAVA中是怎么使用到他们的?

14.JVM原理你知道嘛?有没自己调优过?

15.看你的项目里用到了springboot,谈谈你对springboot的理解?

16.你项目里用到了rocket MQ,那你知道rabbit MQ、rocket MQ和kafka他们之间的区别嘛?

能简单说说不?

17.redis常运用场景有哪些?你的项目中主要使用到redis是用到干嘛的?

18.有自己部署过redis嘛?redis是如何实现高可用的?

19.了解mysql的读写分离嘛?是如何实现高可用的?

20.Exception和Error的关系和区别?

21.基本数据类型转换为String时你有几种方法,分别是什么?

22.如何利用JDK不依赖外部工具,实现一个简单的缓存机制?请简述用到的技术和思路。

23.你项目中是怎样用到事务的?分布式锁呢?

24.Zookeeper有哪些运用场景?

月薪15K左右:

恭喜你,终于算个小高手啦,能独立搭建和负责完成一个完整项目。还记得我以前在外包公司,拿着15K工资,领导给了我一个项目,负责开发一个政府的资产管理管理系统,功能不会很复杂,会设计到资产的收纳、录入、报废等过程,其中还会涉及到条形码设计,和硬件标枪的扫码自动录入和识别等。是复杂也不算特别复杂,只要把各种表关系、字段等提前设计好,灵活运用代码生成工具,就会少写很多代码。

15K的能力,我们应该对springboot、springcloud、分布式锁、事务、多线程并发问题、JVM底层、网络层等知识要能理解并灵活运用!你应该准备这样一份面试题:

15K面试题

http://1.IO/NIO的区别,为什么要用NIO,使用IO中的Buffered..也能实现NIO的面向缓冲,什么情况下用NIO?

2.熟悉的排序算法有哪些,快速排序算法的实现原理?

3.HashMap与ConcurrentHashMap有什么区别?HashMap的存储结构?

4.vector、ArrayList、LinkedList区别及存储性能。

5.线程实现的几种方式,有什么区别,一般用哪个,为什么?

6.多线程中线程池怎样使用及其实现原理?

7.volatile关键字的作用是什么?

8.synchronized关键字的作用,使用该关键字后保证同步了,同步代码块与同步方法有什么区别?

9.一个线程可以多次start吗,会报错吗?

10.spring AOP IOC实现原理?

11.spring中的事务的传播方式怎样实现的?

12.spring中事务实现的原理?

13.为什么要使用数据库索引,数据库索引有哪些,索引的底层原理是什么?

14.sql查询缓慢怎么处理,sql优化方案有哪些,explain用过吗?

15.数据库中的锁有几种?

比如行锁、表锁等会深问

16.数据库为什么要使用事务,事务的原理?

17.数据库分库分表的方法,垂直分还是水平分,根据哪些来分?

18count(1) count(5) count(*)有什么区别,100万条数据的效率如何?

19.solr搜索实现原理、使用的排序算法是什么,怎样实现快速查询?

20.3次握手的原理是什么?

21.动态代理实现原理是什么和动态代理使用的方法、类有哪些?

22.redis的数据结构有哪些?

23.虚拟机了解多少?

24.spring默认是单利还是多例的?

25.常用的队列有哪些?什么情况下使用?

26.你知道的线程安全的类有哪些,方法有哪些?

27.数据库的乐观锁和悲观锁的原理及使用?(version)

28.对GC了解多少?

29.堆和栈的区别,堆中存放什么,栈中存放什么?

30.用过的中间件有哪些?

月薪20K以上:

你已经是个大神级别的人物了,技术牛逼,是公司里的高级工程师、项目经理,或者架构师,能独挡一面,下面会有几个小弟,主要负责公司的整体项目把控。服务宕机了,老板骂你;下属写了个Bug导致损失,老板骂你;半夜老板打电话给你,说临时有个想法;大早上甲方打电话给你,说需求再改改。我只能说,压力山大。

大神级的面试题:

20K面试题

1.您认为的“大规模高并发访问的Web”有哪些呢. 请举例2个知名的网站

2.您开发过的核心功能,哪些呢

3.如果让你对外开发一个接口,你会考虑哪些因素?

4.设计数据库的时候会考虑哪些因素,怎样去建表?

5.说说负载均衡,缓存,文件数据库技术的心得和要点。

6.性能评估机制,指哪方面呢。 您有这方面的经验和体会吗?

7.精通UML、以及熟练使用一种或多种建模工具。

8.您常去的技术网站是什么。工作做用过什么辅助软件呢?

结束语

非常羡慕拿这么高工资的人呀,我还特别羡慕那些年终奖有4,5个月工资甚至半年以上的,牛逼轰轰的。

好了,今天就先聊到这吧,朝着自己学习的方向奋斗,总有一天你也会拿着别人羡慕的工资,而每天再多努力一点,你就会让这一天提前一点到来。相信自己,我能行!