论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com技术社区
»
论坛
›
软件与程序人生
›
DevOps与敏捷开发
›
Java面试时,该如何准备亮点?
Java面试时,该如何准备亮点?
十念
论坛元老
|
2025-3-6 20:49:17
|
显示全部楼层
|
阅读模式
楼主
主题
1617
|
帖子
1617
|
积分
4851
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
我说个观点,对于在校生,也对于想通过社招跳槽的朋侪,准备java项目标亮点不能光靠做业务,
一定得通过事先定制、植入项目业务、准备说辞和准备相干问题等方式准备亮点。
先说下可能被大多数求职者写入简历并在面试时当亮点准备,
但其实不是亮点的要素。
1 做了许多的业务模块。其实这些都是属于增删改查的操作,可能业务细节有差别,但从框架层面来上看,其实差别不大。业务
开发
多了,顶多是纯熟初级
开发
和新手初级
开发
的差别。
2 同时做了前端和后端,大概前端界面很悦目,大概在前端引入了多种结果和框架。其实java重要是负责后端,讲具体点就负责从(控制器层)收到哀求开始处置惩罚的一系列动作。如果求职者有前端
开发
经验,这是个加分项,但面试官一定不会由于前端做好但后端不熟而录用这位求职者,相反哪怕求职者只熟悉后端
开发
,前端一点不懂,这也照样有时机应聘成功。
3 实现了一些较为复杂的功能,比如对日期进行特殊处置惩罚的能力,大概能实现很复杂的业务逻辑。上文也说了,能处置惩罚较为复杂的业务,依然属于
开发
项目标能力,有这项技能,顶多能证明求职者属于纯熟的初级
开发
。
况且,上述要点在面试中还未必能很好地展示,比如你说你前端界面做的悦目,你不大可能当场演示吧,比如你说你做的业务模块数量多,功能复杂,在面试时也未必能很好地说明,但如下给出的亮点,
一方面难度不高,对初级
开发
也实用,另一方面准备起来也不难,面试前只要方法适当,只要花费少量时间就能达到能侃侃而谈的田地。
亮点1,我熟悉项目
开发
、测试和摆设等流程。
其实这个亮点是白送的,只要是做过项目,那一定经历过这个流程,但面试中很少有人能把这当成亮点说。这块你可以说,在这个项目里,我们是用Maven管理项目,用jenkins摆设项目,用git来管理代码。我在这个项目里,除了写代码外,还参与了单元测试和联调。我们代码发布时,终极会把java代码打成jar包并摆设到linux服务器上。
说实在,不少面试官也不会以为此项亮点有多值钱,但你如许会给面试官留下“有项目测试、摆设和管理等方面的综合能力”的印象。而且,我知道有些求职者,尤其是在校应届生,他们在简历上的的项目可能是学习项目,但如果你在项目里加上这个亮点,那么如果面试官不细问,就会以为这是更加值钱的商业项目。
亮点2,我有过数据性能调优方面的经验。
如果你就说,我用过索引和redis缓存,也有数据库调优经验,那么听起来太空洞,而且面试可能会通过问相干的底层细节来确认。要知道redis和数据库底层细节太繁琐,求职者,尤其是初级
开发
的求职者被问倒的可能性很大,但如果你按如下的方式植入项目后再说,就能最大程度展现该亮点。
1 我们项目在摆设后,会对MySQL数据库进行监控,这块的监控软件有CAT、newrelic或Zabbix等,一旦数据库SQL语句执行时间高出5秒(或其它时间),我们就会收到告警邮件。
对于初级
开发
来说,你乃至不消说监控的细节,由于这不是初级
开发
的职责范围,你就说这套监控是
运维
或项目经理搭建的。不过总是先得知道哪些SQL需要调优,才能继续往下说吧,你说出这套说辞,就能让面试官感觉你的数据库调优经验来自项目。
2 你得把分析过程讲出来,碰到长SQL以后,我们会用执行筹划(Execute Plan)分析该sql,这里大家可以去相识下执行筹划的知识,比如如何运行,其中包罗哪些内容。同时,我们会通过日志,去看当时做了什么业务。
3 经太过析,通过看执行筹划和看日志后,我们知道了缘故起因,缘故起因最常见的是索引,大概是存在多张大表关联,大概是同类sql太多,对数据库压力太大,没建Redis缓存。
在准备亮点前,需要看下索引和Redis缓存的概念,比如索引的数据结构,哪些情况下该建索引,复合索引是什么,Redis的数据结构是什么?Spring Boot项目是怎么使用Redis缓存的。
但这里,为了增加可信度,**你更要结合项目需求说。**比如你说,对此我们建了索引,如许就很笼统,但你如果说,经过看执行筹划后发现,是由于在从订单明细表里根据用户名去搜刮时,对用户名字段没建索引,大概说,在下订单的过程中,需要根据用户ID多次到风控表里去查数据,这块没用缓存,以是导致性能慢。
如许结合业务说,就一定能在潜移默化过程中,向面试官灌输“你调优经验来自项目”的究竟。
4 同时再讲下怎么解决的,有始有终。解决方法无非是建索引、建复合索引或引入缓存。
5 你在说好上述整套说辞后,面试官可能会问一些细节,比如索引和Redis的概念等,这块你一定得需要刷八股文来准备。这块如果你心有余力的话,乃至可以准备些值钱技能,比如Redis缓存穿透、Redis缓存的超时时间,大概是Redis长期化技能,大概你还可以再准备,通过Redis集群或MyCAT分库分表组件来提拔数据库性能。
其实面试官对性能慢的缘故起因以及解决方法不怎么关注,更关注一整套分析息争决数据库性能问题的步骤和思路。而且上述说辞和准备要点所涉及到的技能初级
开发
都能准备到位。而且,哪怕简历上的项目是学习项目,大概来自培训班(当然应当尽量让面试官确信是商业项目),照样可以套上上述数据库调优方面的说辞。
亮点3,我有过JVM调优方面的经验。
这里就直接睁开说明白。
1 照旧先说监控,我们项目在摆设后,会对JVM内存进行监控,CAT、newrelic或Zabbix等同样能监控JVM内存,一旦内存用量高出80%,且一连时间高出5分钟,我们就会收到告警邮件。
这里额外说下,为了确保项目标高可用,一样平常代码是会被摆设到多个linux服务器上,比如把spring boot项目打成jar包,再通过jenkins,或干脆手动复制,摆设到多个linux服务器上。每台摆设项目标服务器,都会摆设这套监控体系。
2 再说排查流程。收到告警邮件后,我们会看该服务器的dump文件,其中能看到当时的内存对象,同时会看业务日志,看当时是什么业务导致了内存用量大增。
这里大家可以去看下dump文件的结构,同时可以操作下通过jmat工具打开dump文件的步骤,由于你一旦说了,面试官可能会细问。
3 再结合业务说缘故起因,比如可以说,在导入客户数据的过程中,我们是会从多个文件里读取数据再导入,在导入后,没有关闭IO对象,以是导致内存用量大增。
同样能导致内存用量大增的缘故起因还有,用好HashMap等没有不关掉,大概是缓存Redis数据时没设置超时时间,这就导致缓存对象不停占内存。如果大家要说其它缘故起因,最好也得结合业务说。
4 再说下怎么解决,无非是关掉文件或对象。不过这里,请大家同时要准备下Java虚拟机结构、垃圾回收流程和垃圾回收算法等细节,有可能面试官会进一步提问。
亮点4,我有过通过看linux日志分析息争决问题的能力
这个亮点有哪些值钱点呢?大多数初级
开发
是只会在windows上做业务,不知道项目是摆设在linux服务器上,而且缺乏linux的操作经验。这个亮点所涉及的linux技能比力简单,初级
开发
也能说,但你一旦说出这个亮点,就不但能进一步证明该项目是商业项目,而且还能说明你有linux
开发
经验,更不要说你还具有分析和排查问题的能力了。这方面的亮点该怎么说呢?老例子结合项目说。
1 先说下问题的表现形式。你可以说,在一些下订单的流程中,经常会出现500服务器错误。
2 再说怎么排查。发现问题后,你登录到linux服务器上,用vi命令打开日志文件,再用根据错误关键字和时间,搜刮找到上下文,再根据该日志的线程ID去看在该日志文件的其它 日志,如果涉及到其它业务模块,可以用traceID去找。
3 再说下问题缘故起因和怎么解决。缘故起因你怎么说都行,比如价格参数不符规范,或哀求类型应该是POST但发GET,往深了说可以说是因高并发导致的问题。怎么解决就一句话的事情,比如发现问题后,我们加了非常处置惩罚机制。
4 同时再去看下项目里通过logback输出日志的方式,和linux打开文件搜刮关键字等命令,以便面试官细问。
亮点5,我有过通过看底层源码排查问题的能力
对于初级
开发
,可以说个简单点的,比如在库存盘点的业务流程里,我们是要通过迭代器遍历ArrayList类型的库存信息。在遍历时,我们同时做了修改,以是就导致了“快速失效”的问题。
快速失效的底层源码不难,网上一搜一大堆,而且解决方法也简单,就别边遍历边修改了。
关于底层源码,哪怕是初级
开发
也可以准备ConcurrentHashMap的,由于其中不但包罗了红黑树等数据结构,还包罗了transient和violate等关键字,还包罗了线程同步等细节,而且底层源码不难,网上资料许多。
当然面试中可以准备的亮点不止这些,还可以有分布式组件和集群等,不过上文提到的亮点,哪怕是零基础的,准备起来也不难。再啰嗦下,准备时需要注意如下的要点。
1 别单写在简历上,更要按上文给出的思路准备说辞,面试时一定会被问。
2 我知道,哪怕是不少正规项目,也未必能有上述亮点的实践时机,更别提学习项目了。以是在准备时,一方面需要掌握技能,另一方面更得结合项目需求和业务说。
3 得按监控、发现、排查息争决的流程说,同时更要准备相干细节,比如数据库调优方面需要准备Redis和索引等八股文。
当然,准备亮点的同时,八股文和算法这类功夫不能少。
4 有时间面试官会质疑,大概细问,比如会问,这么简单的问题为什么你们之前的测试没发现?你大概可以说是在测试环境上发现这个问题的,大概就干脆咬定,是在生产环境上发现。至于为什么之前没测出来,你就说你不知道,毕竟你才是一个初级
开发
。
大概会问,你说了通过jenkins摆设,说了通过new relic监控,你说下细节。大概问些比力深的问题。这些事情其实是资深
开发
或架构做的,你一个初级
开发
能知道就不错了,你可以干脆说,这些是我们架构或项目经理做的,面试官听了也就不会再问了。
5**更重要的是,你得会引导。**比如你在面试中介绍项目时,你说,在这个项目里,我有过数据库性能调优的经验,有过排查内存性能的经验,有通过看linux日志解决线上问题的经验,有通过看底层源码解决现实问题的经验。如许面试官就会继续问了,你就能借机说出来。
大概你可以在答复到相干问题后再提一句,比如你答复到JPA等数据库问题后,你就说,我除了会用JPA连数据,还解决过数据库性能调优方面的问题,然背面试官问了就再睁开。
通过上文给出的步骤,大家能发现其实Java项目标亮点不是来自业务,而是来自技能,而且你有亮点的实践经验不会说,这也没用。
但如果你按上文给出的步骤,把这些亮点写入简历,面试前好好准备,面试时全面抛出。这时哪怕你是零项目经验的,面试官也能以为第一你的项目是商业项目,第二你有资深的项目
开发
经验,这就达到了你准备和抛出亮点的目标了。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
十念
论坛元老
这个人很懒什么都没写!
楼主热帖
Velero系列文章(四):使用Velero进行 ...
Kali Linux利用MSF入侵安卓手机(小白版 ...
C/C++函数的调用约定详解
SonarQube安全扫描
三天吃透Kafka面试八股文
Android Studio 实现登录注册-源代码 ...
微光互联 TX800-U 扫码器无法输出中文 ...
xmrig挖矿样本分析 miner
Python嘎嘎涨知识的7个小游戏,玩过的 ...
Java多线程(一篇从0讲透)
标签云
AI
运维
CIO
存储
服务器
浏览过的版块
IT职场那些事
IOS
运维.售后
鸿蒙
快速回复
返回顶部
返回列表