从面试官的角度,聊聊java面试流程(1),面试数据库基本知识点

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024b (备注Java)
img

正文

5 随后是结合候选人在简历上写的技术提问。这块会按如下层次来问,比如我看到候选人写了用Redis做缓存,我第一层会问,为什么要用?无非是数据库压力大所以要用。第二层问,怎么用?无非是用Jedis或RedisTemplate等组件,第三层问,结合一个需求告诉我怎么用?无非是,遇到xx缓存需求,设置键是什么,值是是什么。

如果只是招个初级开发,那么问到这个程度就可以了。如果是应聘高级开发,那么我还会深入提问,比如你用到的Redis数据结构是什么?如何做持久化。如果是招资深开发或架构,那么我再问神深点,比如redis集群怎么搭,redis集群失效了怎么办?redis怎么和数据就交互,有没有遇到缓存穿透问题?

候选人只要简历上写到的值钱技术,比如kakfa,mycat等,我都会逐一询问。这里请注意我的文法,不是简单地问语法,而是结合项目问怎么用。同时,我也会经常去网上看些redis面试题,但我不会直接问,也是会让候选人结合项目说下,相关技术(比如防穿透)怎么在你项目中实现。

6 结合简历上项目以及技术提问这个阶段,我心里会有期望,比如对初级开发的期望是会Spring boot增删改查,对高级开发的期望是要有基本的分布式组件使用经验等等。所以我不在乎候选人有多少问题没回答上,但我在乎候选人的基本盘稳不稳固。

比如面初级开发的时候,我结合项目提问,发现候选人能用Spring boot+JPA(外加其他组件其他注解)做增删改查,其实候选人技术方面已经成功一半了。后面的技术问题哪怕你没说好,只要别太差,一般能过。但如果候选人在基本盘技术方面可上可下,那么就得再通过后面的问题来确认能否过面试了。

7 后面是我(面试官)自由发文,我一般会从Java核心,数据库,(Spring Boot)框架,分布式组件方面问问题。这些问题网上都有,我就不一一展开说明了。

我会把这些问题分为基础,调优和高深三类。初级开发只要求回答出基础问题。高级开发要求回答到调优程度,再高级些岗位需要知道高深类问题。毕竟不同级别的开发在工作中对应的职责不同。

比如Java核心方面,final用法,treeset和hashSet差别等,这些能直接背到答案的,属于基础。Spring boot方面,常用的jpa注解或Spring boot方面注解以及Spring boot开发流程相关问题也属于基础问题。

调优方面的问题好理解,比如你是怎么排查OOM问题的,你是怎么排查数据库性能问题,再展开下数据库索引,缓存等用法。

高深方面包括底层源码,比如ArrayList底层源码。还包括解决实际问题的经验,比如你是如何排查Redis超时问题的,是怎么排查kafka重发导致不幂等问题的。

这里多啰嗦几句。根据我面试的结果,大多数初级开发只能回答出基础类问题,这虽然能达到要求,但通过背题或准备,初级开发也能回答出更高层次的问题,如果回答出了,这就是初级开发的加分项。

但是不少高级开发甚至工作经验在7年以上的资深开发,我看他们简历上项目经验比较丰富,但依然说不好调优或比较高深的问题,这样就很吃亏。毕竟面试官是通过面试来确认候选人的能力,你平时项目做得再好,面试说不好,你的能力一定会被低估。低估的后果就是过不了面试,或者是薪资被打折。

同时,虽然我自认为我面试能力还行,但偶尔也会漏过一些会说但实际能力不达标的候选人,比如某个岗位是按4年经验给工资的,某候选人经我面试时,能表现出这种能力,但进项目组以后,被发现只具备2年开发的能力。遇到这种情况,项目经理会私下和我说,但我不会有事,毕竟我面过以后,项目经理会再面一轮,招进来能力不符的,他也有责任。

这里只展开面试官的角度记录下我见到的情况,至于怎么提升面试经验,大家可以看我相关文章,我有空也会多写此类文章。

8 面到这里其实我该问的问题都问好了。我已经结合了项目确认了候选人的技术,也从java核心,数据库,框架和分布式组件等角度综合确认了候选人的能力。但我自认为我还算比较为候选人考虑,所以我后面会给候选人一个自由发挥的机会。

我会问两个问题:1 你有哪些能帮助你应聘成功的亮点?2 你还有哪些技术亮点刚才没有机会说明?同时再给几个方向,比如比如oom调优,数据库调优,分布式组件使用,底层源码分析等。

如果候选人能说出有具体的亮点或优势,我会记录在案。

9 如果是外企面试,我会考核英语能力,无非是,用英语自我介绍,介绍最熟悉的技术和最熟悉的项目。

10 最后问些非技术的问题,比如期望工资,到岗时间。如果候选人在简历中有不利因素,比如频繁跳槽,我会问下原因。这时我只是记,不会发表任何意见。

当然还有例行公事的一问,我的问题问完了,你有什么问题?完事以后技术面试就结束了。

此时一般会让候选人等会,我会根据面试提问形成面试报告,面试报告一般分三部分。

1 结合岗位需求,说明候选人在java核心,数据库,框架和分布式组件等等方面的情况,是达标,勉强达标还是不达标。为了量化,一般还会给出例子,比如会写这位候选人的能力和组里xx的能力很相似。

2 列出加分项和不利点。前文也已经说过,加分项包括,能加班,年轻,有大厂经历,有海外经历,拿过奖,出过书或博客等能帮助候选人应聘成功的要点,不利点包括,最近频繁跳槽,最近半年的项目背景技术和所需的不匹配,有长时间不在职等。

需要强调的是,候选人如果在面试中表现出的一些不利因素也会记录下来,比如说话太冲,回答问题条理性不强等。

3 第三部分就是结论,结论无非是,通过,不通过,可上可下有继续面试价值,或者是,虽然本组不适合,但可以推荐给其他组面试。

毕竟人家到现场来一次也不容易,所以如果通过,或者可上可下,或者哪怕有继续面试的价值,项目经理一般都会再去面下。如果是可让其他组面试,也会有其他面试官过去沟通。**也就是说,如果你是到现场面试,在技术面试结束后,没有继续被面,那么面试结果可能就未必好。**至于后面项目经理怎么面,就和技术面试无关了,就不再继续展开了。

顺带做个广告,如果你是java初学者,想快速上手Spring boot和分布式组件,可以参考我最近出的这本书。

也写了这么多了,最后做个总结。

1 本文以我做技术面试官为例,讲述了一次面试的大概流程。其中没有展开写具体问哪些问题,因为这很容易查到,但写了结合项目综合考核候选人能力的问法。

2 从文本里大家可以看到,其实面试能力和实际技术开发能力不是一回事,技术能力一般但面试能力强,照样能过面试,反之亦然。

知其然不知其所以然,大厂常问面试技术如何复习?

1、热门面试题及答案大全

面试前做足功夫,让你面试成功率提升一截,这里一份热门350道一线互联网常问面试题及答案助你拿offer

2、多线程、高并发、缓存入门到实战项目pdf书籍

3、文中提到面试题答案整理

4、Java核心知识面试宝典

覆盖了JVM 、JAVA集合、JAVA多线程并发、JAVA基础、Spring原理、微服务、Netty与RPC、网络、日志、Zookeeper、Kafka、RabbitMQ、Hbase、MongoDB 、Cassandra、设计模式、负载均衡、数据库、一致性算法 、JAVA算法、数据结构、算法、分布式缓存、Hadoop、Spark、Storm的大量技术点且讲解的非常深入

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Java)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
份系统化的资料的朋友,可以添加V获取:vip1024b (备注Java)**
[外链图片转存中…(img-kFWmLv1M-1713302162146)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 19
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当然,我可以为您介绍一些Java基础知识点面试题。以下是一些常见的Java基础知识点面试题及其答案: 1. 什么是JavaJava是一种面向对象的编程语言,具有跨平台特性,可以在不同的操作系统上运行。 2. Java的特点有哪些? Java具有以下特点: - 简单易学:Java语法相对简单,与C++相比更易于学习和使用。 - 面向对象:Java支持面向对象的编程范式,具有封装、继承和多态等特性。 - 跨平台性:Java通过虚拟机(JVM)实现跨平台,一次编写,到处运行。 - 安全性:Java提供了安全机制,如内存管理、异常处理和安全检查等。 - 多线程:Java支持多线程编程,可以实现并发操作。 3. 什么是面向对象编程? 面向对象编程(OOP)是一种编程范式,将数据和操作数据的方法封装在一起,形成对象。对象可以通过定义类来创建,类定义了对象的属性和行为。 4. Java中的基本数据类型有哪些? Java中的基本数据类型包括: - 整数类型:byte、short、int、long - 浮点数类型:float、double - 字符类型:char - 布尔类型:boolean 5. Java中的包是什么? 包(Package)是Java中用于组织类和接口的一种机制。它可以将相关的类和接口放在同一个包中,方便管理和使用。 6. 什么是Java的访问修饰符? Java的访问修饰符用于控制类、方法和变量的访问权限。常用的访问修饰符有public、protected、private和默认(没有修饰符)。 7. Java中的异常处理机制是什么? Java中的异常处理机制通过try-catch-finally语句块来实现。当代码可能抛出异常时,可以使用try块来捕获异常,并在catch块中处理异常。finally块中的代码无论是否发生异常都会执行。 8. 什么是Java的多线程? 多线程是指在一个程序中同时执行多个线程,每个线程都是独立的执行流。Java通过Thread类和Runnable接口来实现多线程编程。 9. Java中的垃圾回收是什么? Java中的垃圾回收是自动内存管理的一种机制,通过垃圾回收器自动释放不再使用的内存。开发人员无需手动释放内存,可以专注于业务逻辑的实现。 10. 什么是Java的反射机制? Java的反射机制是指在运行时动态地获取类的信息并操作类的属性和方法。通过反射机制,可以在运行时创建对象、调用方法和访问属性等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值