当前位置: 首页 > 后端技术 > Java

两年Java经验要到什么水平才能拿到十几个offer

时间:2023-04-01 18:33:58 Java

前言其实从去年开始,我就想过换工作,只是一直偷懒,逃避现状。今年5月正式提出辞职。出去面试了好几家公司,总觉得找工作要请假,所以决定离职找工作(其实辞职风险挺大的),很早就正式加入了百度七月。还记得面试成功的那天,我给朋友发了一条信息,收到了十几条信息说我面试成功了。离职后的一个月里,我也经历了很多公司,包括外包、创业、互联网等,收到了很多offer,也有一些面试不太顺利。今天通过博客记录一下自己面试的问题,谈谈两年后java应该达到什么水平才能适应现在市场的要求这个话题。本博客内容:面试中的问题面试中要注意的问题关于最后的选择两年内Java应该达到什么水平?由于篇幅问题,我没有展示答案。拿出答案,如果需要答案可以点此获取1:面试java集合框架的问题:1:介绍java的集合框架2:HashMap遇到hash冲突会怎么做?HashMap线程安全吗?HashMap在高并发下会有什么问题?那么介绍一下ConcurrentHashMap的原理呢?3:Hahtable和concurrentHashMap有什么区别?4:数组和ArrayList有什么区别?Arraylist是如何展开的?5:线程池中的阻塞队列一般选择哪个队列?为什么?6:RetreeLock的原理?AQS的原理?7:为什么推荐HashMap的容量为2的幂?框架类:1:mybatis的二级缓存有什么问题?2:mybaits中mapper的#{}和${}有什么区别?哪些可以防止sql注入?3:我们知道mybatis的mapper和interface之间是没有对象的,那它是怎么映射的呢?4:springmvc的注解有哪些?他们的理由是什么?5:springmvc的controller是单例的吗?它是线程安全的吗?6:struts1和struts2有什么区别?它是线程安全的吗?7:spring如何解析它的xml文件?8:spring的核心是什么?Aop的原理是什么?Redis相关:1:redis的数据类型有哪些?2:zset数据类型是如何排序的?3:redis如何作为项目的中间缓存层?4:redisHash的时间复杂度是多少?由于篇幅问题,我没有展示答案。您也可以测试自己,看看您是否可以全部回答。如果您需要答案,可以点击这里获取数据库:1:数据库索引有哪些类型?组合索引需要注意什么?2:什么是悲观锁什么是乐观锁?如何实现悲观锁?3:数据库关键字的执行顺序是什么?4:如何优化SQL?5:是否进行过数据库分表操作?分库后如何保持事务一致?分布式与微服务:1:微服务应该克服哪些问题?微服务系统如何通信?2:如何解决分布式环境下session不一致的问题?3:分布式下如何保证id一致?4:你在使用dubbo的过程中遇到过哪些问题?5:zookeeper的负载均衡算法有哪些?jdk源码相关:1:synchronized的原理?应该如何使用?一个方法如何同步,其他非同步的线程可以进入吗?2:如何解决cvs中的ABA问题?3:volatile的原理是什么?volatile一定是线程安全的吗?4:什么是ThreadLocal?它的原理是什么?5:用过CountDowanLatch吗?适合什么样的场景?设计模式相关:1:实现两种单例模式2:说说观察者模式3:spring中使用了哪些设计模式?4:动态代理模式是如何实现的?5:你在项目中使用了哪些设计模式?讲解业务场景算法相关:1:快速排序的时间复杂度?手写快速排序(注意递归和非递归实现)2:手写二分查找3:手写堆排序4:一个int数组如何分隔奇偶数?5:使用算法将String转换为doublejvm相关:1:jvm的垃圾回收算法有哪些?分开解释?2:新生代为什么要设置两个幸存区?3:如何通过.class文件获取其jdk版本?4:jvm的内存模型?哪些是线程私有的?哪些是公开的?由于篇幅问题,我没有展示答案。您也可以测试自己,看看您是否可以全部回答。如果需要回答,可以点这里了解自己的项目(问的时间最长)1:简单介绍一下自己的项目?你在里面主要做什么?2:你在项目中遇到了哪些困难?你最后是怎么解决的?3:项目有多大?周期是多久(很多人问这个)4:说说某个模块的具体实现?然后从中挑5:某时刻请求高并发怎么解决?6:如何解决订单支付回调超时问题?polling应该怎么写?其他:1:秒杀场景怎么削峰?2:http和udp有什么区别?3:ajax跨域问题4:nio和io的区别?什么情况下适合使用nio5:说说常用的linux命令,查看内存的linux命令是什么?7:git遇到代码冲突怎么办?8:说几个常用的maven命令,maven如何消除jar包的冲突?二:面试要注意的问题1.必须有自己的实际项目经验。根据我这么多的面试经验?其实有的公司会重点问自己的项目经验,有的公司会重点问问题。一般互联网公司对技术的要求都会比较高,既需要项目经验,也需要技术水平。2、可以适当渲染,但不要夸大面试过程中最忌讳的就是吹嘘。害,但是说到具体的细节,我不知道该说什么。在技??术总监面前,你吹牛或者真的认识他,其实是假装一看就懂。有些面试官会给你一个台阶,否则你会被卡住。,这样很容易造成面试的坏印象3.能够自我介绍面试的时候一般都会让你做自我介绍。这个要看对象,是技术官还是HR。项目的实际技术栈和技术路线,如果是HR,不要用太多的技术语言,而是说说你的实际工作经历或者你之前公司的运营情况4.简历不要太罗嗦,但是也不能太简单,作为一份技术简历,一般至少3页,否则HR会认为你的求职态度不是很好,不管求职结果如何,一份好的简历都会留下一个给人的第一印象很好。3:关于最后说实话,我收到过很多HR的offer邀请,但是我一般都会选择说想了一天就给回复,不能直接说到死,不然以后就尴尬了。实际提供的offer包括一家外包公司、三家创业公司、两家互联网公司。他们最终选择了百度。它会给你一个快速的增长速度,而且技术栈也比较新。与传统企业相比,会有更多的技术挑战。至于外包公司,环境可能不是很好。记得我还是新手的时候,是去外包的。20多年的经历,外包显然不适合我以后的职业发展。缺点:技术更新迭代太慢,没有归属感。我个人的意见是先选技术。毕竟未来的软件还有很长的路要走,技术为王!四:java两年应该达到什么水平?两年的java面试中,遇到了很多挑战,也遇到了一些不谈技术的公司。从上面的面试题可以看出,现在对java的要求是越来越高了。级别越高,潮汐越高。毕竟这个行业的人越来越多,保持竞争力的唯一方法就是找到正确的方向并不断学习。注意这里我说的第一点是方向,然后才是学习。给自己做一个职业规划,沿着这条路走。以后其实还是很想多学习分布式微服务的,但是根据市场的需求,现在比较急。springcloud、duboo等一些技术架构不得不维护。学习,让你更有竞争力!作为一个学了两年的javaSir,阅读源码必须具备以下技能,并且使用Inteljidea作为开发工具,而不是eclipse。直接支持反编译class文件,多阅读jdk源码,吸收优秀源码复用,可以手写常见的排序算法,如快速排序和堆排序、冒泡排序、选择排序、二分查找等。需要对java框架有深刻的理解。很多人都知道现在流行的基本ssm框架,但是知道一些原理的人却不多。你必须自己不断研究这些框架。都是经过了无数次的磨练。大多数优秀的框架都使用redis\mongodb。传统的关系型数据库已经不能满足市场需求。这些东西也是面试的一部分。虽然不是重点,但也是加分的选项。对于微服务和分布式,这有些困难。面试人人车的时候,一面还好,但是第二面被技术总监pass了。问题是我对发行版不是很熟悉!如果想进入好的互联网公司,分布式和微服务在jvm底层是非常有必要的。我在这里推荐的书是周志明的《深入jvm虚拟机》书。平时都是闲着看,所以jvm的问题还是有的作为阅读的好处,我也整理了一些Java学习资料+面试真题,有的是花钱买的,现分享给Java程序员本文免费阅读,希望对大家有所帮助!信息获取方式:点赞+转发点此