{eval=Array;=+count(Array);}

问答专栏Q & A COLUMN

如果你是面试官,我来应聘一年java后台开发经验,你会问什么?

TigerChainTigerChain 回答0 收藏1
收藏问题

8条回答

hufeng

hufeng

回答于2022-06-28 15:51

很久没有面试过一年Java开发经验的小伙伴了,那如果你是一年开发经验,并且已经通过了前面的初筛,也就是已经约好面试时间了。

现在开始咱们的面试。

面试官:您先自我介绍一下吧~

候选人:我毕业于xx大学计算机科学与技术专业,工作经验一年,工作期间主要负责xx项目的xx功能开发。熟悉的技术栈有Java基础,集合,多线程等知识,熟练使用SpringBoot框架。

PS:废话不要多说,说你真实的开发项目经验和你真正熟悉的技能栈。

面试官:ok,好的,那咱们先聊点Java基础吧,HashSet在项目中用过吗?它的底层实现你了解吗?

候选人:HashSet底层是HashMap,HashSet里的每一个元素就是HashMap里面的key。

面试官:那比如现在我要装一个User对象进去,比如Set<User> users = new HashSet<>(10);那么对于这个User对象有没有什么要求?

候选人:需要重写hashCode和equals方法。

面试官:ok,为什么要重写hashCode和equals方法呢?

候选人:首先,HashSet的特性是不可重复的并且是无序的。因为它的底层是HashMap实现的,HashMap的key就是HashSet的元素,所以他无法保证有序。那不可重复的就是当我们put一个KV数据到HashMap中去的时候,首先需要计算这个key的hashcode,然后在和当前hashMap的容量-1作与元算,即hashcode(key) & (n-1)来计算出他所在hashMap数组中的下标位置,这就是为什么要实现它的hashcode方法。那为什么还要实现equals方法呢?因为hashcode方法存在哈希冲突,无法决定一个对象的唯一性。

ps:能说到这你就成功了一半了!但是还没结束,因为面试官想知道你到底了解多少!

接下来会是什么问题呢?

  • 那我们聊聊HashMap吧~
  • HashMap的实现原理、扩容机制、为什么初始容量是16?为什么扩容都是2的n次方?
  • HashMap是线程不安全的,线程安全的有哪些?HashTable、Collections.synchronizedMap、ConcurrentHashMap
  • HashTable、Collections.synchronizedMap、ConcurrentHashMap都是怎么保证线程安全的?
  • Volatile关键字的实现原理、synchronized关键字的实现原理
  • 锁优化、锁升级
  • 对象头mark word
  • 用户态、内核态

先就这些吧,上面你能聊到哪就聊到哪,都是Java基础,不会了咱就停止,换一个方向~

后面会在问你数据库方面的知识,比如Innodb存储引擎的实现原理,B+树,为什么不用B树、二叉树等等。

什么是聚集索引、什么是非聚集索引、覆盖索引?回表是什么意思?

还有很多数据库的知识,有一句话叫做:“你会的越多,你不会的越多!


如果上面你都ok,不需要问你项目经验,来干活吧!毕竟你只有一年工作经验,没啥项目可问的,又不是你主导的。

实在上面答的不好,只能问问你项目中的开发思路怎么样了,会尝试找你开发功能的漏洞,看你怎么临场发挥,说说你的思路,看看你的逻辑思维是否严谨。


以上,看看是否你都会,如果你都会,抓紧学习更多的知识去!如果你不会,抓紧学习更多的知识去!学无止尽~

上面的那些,由浅入深,五年十年的都可以问,有人说工作很多年的没必要问这些基础,我不这么认为。如果你开发多年,这些基础我认为你应该是深入骨髓的,无须准备便可脱口而出的,其他任何理由都是借口

评论0 赞同0
  •  加载中...
lewinlee

lewinlee

回答于2022-06-28 15:51

1、java基础知识是重点,例如集合、多线程、IO等基础知识的掌握程度。
2、框架方面,例如spring,mybatis,springboot等使用的熟练程度和对其理解程度。
3、部署方面,例如tomcat、linux等了解多少。

4、数据库方面,例如基本的增删改查,对sql优化了解多少,对索引了解多少

5、解决问题方面,例如:说说你遇到的很难处理的问题,怎么解决这个问题的?

6、对项目的熟悉程度,这个是看你是否真的做过项目。

注:看过源码,了解底层,对框架的原理理解很深会是加分项。

评论0 赞同0
  •  加载中...
antyiwei

antyiwei

回答于2022-06-28 15:51

问点JAVA基础知识,偏向规范类的

问点你简历上做过的内容

问点数据库基础,多表查询,汇总之类的

问点框架实际用到的(结合将要安排你的工作内容问)

说明:一年工作经验太深的内容没什么可问的。不想面试造火箭,工作拧螺丝的那种。既然筛选让来面试,你之前一年多工作经历很契合现在公司的业务,所以问点实际的。性格好,好培养,脚踏实地爱学习就可以。

评论0 赞同0
  •  加载中...
jone5679

jone5679

回答于2022-06-28 15:51

当然了,每个公司对一年开发经验的工程师所必须掌握的技能定义是不一样。

作为面试官,就拿我们公司来说吧:首先重要的是逻辑思维要清晰,其次我们再说技能吧。

  1. javaSE基出要牢靠,要尽可能的掌握String的API,常用的集合Arraylist、LinkedList有什么特点,什么场景下选用哪种集合;hashmap的特点,如何遍历;异常分类,异常处理;IO流会熟练使用。
  2. 有编码功底,手写一些简单的算法。例如:手写冒泡排序,斐波那契数列递归求第N项。
  3. 数据库,可以编写多表联查的SQL,知道数据库索引类型,数据库的事务,知道如何通过创建索引优化SQL。
  4. 框架方面:mybatis要熟练使用,可以不用理解原理,spring框架的特点;springmvc常用的注解;拦截器、过滤器有什么作用;springboot要做到熟练使用。

评论0 赞同0
  •  加载中...
dingda

dingda

回答于2022-06-28 15:51

都是虚拟机之类的,我面试神舟航天的实施,问的都是很底层的东西,还有学好linux,数据库,开发的话应该会问一些框架吧,分公司,要是普通公司问ssm,要是好一点可能会springcloud之类的,还是看个人能力,因为都不咋会,还得进企业去锻炼,建议一般不要从事软件工程专业。

评论0 赞同0
  •  加载中...
netScorpion

netScorpion

回答于2022-06-28 15:51

java的基础方面的:

String,StringBuffer,StringBudilder区别

ArrayList,vector 等的区别

hashMap,hashTable 的区别

多线程的实现方式和方法了

传参数方面的 :

考传的是本身还是副本

如 a(String value); a方法的value参数是传本身还是副本

框架知识:

比如spring 依赖注入,事务深入点的话 拦截器等

db方面的:

简单考下你的sql , 可能会写几个表 要查什么让你写sql 主要考多表连接查询,分组,分组后的查询,排序,取最大最小之类的 看你sql熟练否

评论0 赞同0
  •  加载中...
jayce

jayce

回答于2022-06-28 15:51

你的方法论是什么?

评论0 赞同0
  •  加载中...
vslam

vslam

回答于2022-06-28 15:51

有没有找到住的地方?

和家里人打过电话要出来工作了吧?

才出来一年。有必要问那么深入的问题吗,这种人才进来还是要培养的。没必要各种刁难

评论0 赞同0
  •  加载中...

最新活动

您已邀请0人回答 查看邀请

我的邀请列表

  • 擅长该话题
  • 回答过该话题
  • 我关注的人
向帮助了您的网友说句感谢的话吧!
付费偷看金额在0.1-10元之间
<