大家好,我们又见面了。今天我们聊聊一个大家普遍关心的问题,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面试题
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个月工资甚至半年以上的,牛逼轰轰的。
好了,今天就先聊到这吧,朝着自己学习的方向奋斗,总有一天你也会拿着别人羡慕的工资,而每天再多努力一点,你就会让这一天提前一点到来。相信自己,我能行!
关注我的公众号:MarkerHub,与我一起努力,成为架构师。
好像我还录了一个视频,关注一下我的B站咧,哈哈!