首页 > 编程语言 >Java程序员从阿里、京东、美团面试回来,这些面试题你会吗?(文末福利)

Java程序员从阿里、京东、美团面试回来,这些面试题你会吗?(文末福利)

时间:2023-04-28 23:34:30浏览次数:32  
标签:面试题 Java Spring Redis 面试官 问题 面试 MySQL 文末


hi 大家好 我是田哥

今天,给大家分享一些面试干货。我们每次面试基本上都是超过一个小时的,面试官肯定会问很多问题,其实也不是需要我们全部能回答上来。但是,关键点如果回答不上来,就算你其他的回答的不错,也没用,最终offer还是不会给你的。

好吧,话不多说,我们直接开始:

自我介绍

很多人觉得自我介绍不是很重要,错了,自我介绍很烂,也会影响你的offer。因为自我介绍会考察你的表达能力,是否言简意赅,是否介绍了你的优势,你的特点。

很多人都是这样的:

面试官你好,我是XXX,本人某某大学某某专业毕业,XXXX年毕业,毕业后就一直从事Java相关开发,做过系统1、系统2、系统3....,今天想来贵公司面试一份Java开发工作。

就这么简单潦草的把自我介绍搞完,面试官或许都没听到什么关键词,最多估计也是听到某某系统,然后有点感兴趣,就开始聊某个系统了。可是,你可能对某个系统其实不是很了解,只是参与开发了几个接口,然后,你就几句话就把面试官打发了。

或者你是面试官,估计连你都有些不爽,你说你做过某某系统,居然就开发了几个接口,整个系统是干啥的,有些什么工作,业务量怎么样你都不知道,你觉得印象分会高吗?

Java基础部分

现在面试官,基本上是不会问基础部分了,但照顾到某些面试官还是会问,所以还是提一下。

  • String对象创建了,为什么不能变了?
  • Integer的面试题,100=100,1000为什么就不等于1000了?
  • 反射机制是什么?异常有哪些处理方式?如何自定义异常?应该注意些什么问题?
  • 我想自己写个对象作为HashMap的key,行不行?应该注意些什么?
  • ......

JVM部分

个人觉得JVM这部分相当重要,这都没学好,你的代码是怎么运行的,你写出来的代码会不会有问题,有没有优化空间?

  • JVM内存模型(这是最基本的,可能面试官不会直接问你,但是问其他问题的时候可能就需要说了)
  • 类加载机制(类加载器,如何自定义类加载器)
  • 双亲委派模型(如何破坏,在哪些地方见过)
  • 哪些是垃圾对象(很多人始终记不住,那是没有用代码理解)
  • 线上问题处理(这个是很多人都回答不来的,这里同时也是考察你对JVM一些知识的考量)
  • ......

并发编程部分

在面试中,并发编程依旧是热门话题,同时也是大家最害怕的问题之一。

  • 线程创建方式有几种?
  • 线程状态
  • JUC并发包下的相关组件(AQSReentrantLockCountdownLatch等)
  • 线程池(实现原理、创建方式、如何设置线程数、如何监控)
  • 同步锁、重入锁、锁升级、悲观锁、乐观锁、ABA问题
  • ......

Redis部分

现在大部分公司都在用Redis,做缓存、分布式锁等。所以,现在基本上是必问的技术点。

  • Redis数据类型(老实点回答常规的,关于bitmapHyperloglog,如果不是很熟悉就别说,否则给自己挖坑)
  • Redis使用场景()
  • Redis持久化(你们用的是哪种?为什么这么用?这么用会不会存在什么风险?)
  • Redis 线程模型(为什么叫单线程?只有单线程吗?)
  • Redis高可用(Redis集群方式,你们用的是哪种?为什么选这种?)
  • Redis淘汰机制(淘汰算法有哪些?默认是什么?说说你对这几种算法的理解)
  • Redis实现分布式锁(为什么选择Redis来实现分布式锁?具体是怎么实现的?存在问题吗)
  • 缓存三大问题(缓存雪崩、缓存穿透、缓存击穿,回答上来是正常的,回答不上来就回去等通知)
  • 缓存命中(缓存命中率表示什么?怎么提高缓存命中率?)
  • ......

MySQL部分

目前在面试中 MySQL 的占比也是相当的高,并且都会问的挺多的,也问题挺深的。

  • 一条SQL的执行(一条查询SQL是怎么执行的?一条更新的SQL是怎么查询的?)
  • 索引的问题(索引底层数据结构是什么?什么场景需要用到索引?联合索引背后实现原理是什么?...问题非常多)
  • SQL优化(有哪些手段?说说几个项目中优化的场景,MySQL优化手段有哪些?)
  • MySQL日志文件(有几种日志文件?都是干嘛用的?)
  • MySQL事务(MySQL 的事务原理是什么?为什么不要使用长事务?说说你对MVCC原理理解?)
  • MySQL中的锁(MySQL 中有哪些锁?针对这些锁,能不能说说相应场景)
  • ......

Spring家族

Spring是我们开发中必备的,因为它解放了我们的双手,尤其是Spring Boot让我们之前的那么多xml配置给消失了。

  • 你们项目中为什么使用Spring框架?
  • 说说你对Spring MVC的理解
  • 谈谈你对Spring的AOP理解
  • 说说你对Spring的IOC是怎么理解的
  • 解释一下Spring Bean的生命周期
  • Spring 是怎么解决循环依赖的?
  • Spring 框架中的单例 Bean 是线程安全的么?
  • 说说Spring Boot的自动装配原理
  • Spring Boot 的核心注解是哪些?
  • Spring Boot中的 starter 到底是什么 ?
  • 说说Spring Cloud的核心组件
  • Eureka自我保护机制是什么?
  • 如何设计一个注册中心?
  • Eureka和Zookeeper的区别?
  • 什么是Hystrix?它如何实现容错?
  • Ribbon和Feign的区别?
  • ....

消息队列部分

市面上的消息队列很多,下面我们以RabbitMQ为例。

  • 为什么要使用消息队列?使用消息队列会存在哪些问题?
  • 如何避免消息堆积?
  • 如何保证消息不丢失?
  • 如何保证消息顺序一致性?
  • 如何保证消息不被重复消费?
  • 有哪些消费模式?
  • RabbitMQ有些什么特点?
  • 为什么要选择为什么选择RabbitMQ
  • RabbitMQ中消息可能有的几种状态?
  • 如何保证RabbitMQ消息队列的高可用?
  • 生产者消息没到交换机,相当于生产者弄丢消息,怎么办?
  • ......

其他部分

个人觉得,上述部分应该是必备部分,开发中通常都会使用的。其他部分,由于每个人的技术栈不同,所以也不能全部列出来,下面再来看看其他部分:

  • Zookeeper相关问题
  • 分布式事务相关问题
  • 分库分表相关问题
  • 常用工具MavenGit相关问题
  • Netty相关问题
  • Dubbo相关问题
  • 搜索引擎相关问
  • 数据结构与算法相关问题
  • ...

说实话,这年头太卷了,面试要求也越来越高了。但与其说是卷,还不如说竞争非常激烈。现在各行各业都是这样的,哪个好赚钱,立马很多人就开始加入了。

面试造火箭,进去拧螺丝

这句话看起来有那么些悲观情绪,或者负面情绪,希望大家能理解背后含义。

进入公司大部人大多数时候都是搞CRUD,很多人都是高级开发了,但依旧是天天CURD。

DDDD:这里不是带带弟弟,哈哈,是懂的都懂

其实,作为面试官,肯定想你知道的越多越好,会的越多越好。不然,说不好那天和其他团队有业务交叉的地方,让你去聊技术方案,一不小心就被人家给否定了,严重的还可能会替别人背黑锅。

所以,面试造火箭,貌似也是有必要的。

福利

我之前搞过一本《面试小抄》后台回复77即可获取.

 

Java程序员从阿里、京东、美团面试回来,这些面试题你会吗?(文末福利)_redis

Java程序员从阿里、京东、美团面试回来,这些面试题你会吗?(文末福利)_spring_02

再多说几句

很多人以为自己背背八股文,改改简历,然后就直接去面试了。其实,真正用心准备面试的人不是这样的。既然决定面试,那就还是得花点心思在上面。

但是,八股文那么多,你能背完吗?尤其是临时抱佛脚的,背了前面忘了后面,面试时候就是吱吱呜呜的结束了。

很简单的一个问题,自我介绍:每次的自我介绍都是临场发挥,发挥得好就说的很流利,发挥不好三两句话就解决,甚至说着说着自己都讲不下去了,草草了事。为什么就不能事先准备好呢?就当做背也行呀(只要是自己用心构思过写过的,其实也不用背也能很滑溜的说)。

还有就是面试中,遇到问题不会怎么办?面试后面如何反问面试官?......

大不无准备的仗

自己没有准备好,就开始出去面试,会导致哪些问题?

  • 机会浪费
  • 浪费时间
  • 丧失自信

浪费机会:很多面试机会可能是朋友介绍的,或者是自己意向的公司,但是你没准备好就去面试,很有可能这种机会就

浪费了。

浪费时间:很多人都是靠着面试过几家公司后,才找到面试的感觉。比如说:面试三家才找到面试的感觉,就相当于你请假三天。就算按照每家半天,最少也得花一天半时间。

丧失自信:由于自己没有准备好,面试中受挫也是在说难免的,被面试官怼的怀疑人生,怀疑自己是否适合干这一行。

另外,大家都知道,田哥现在是全职做面试辅导和技术分享。

10年码农,为你面试保驾护航!

面试辅导主要内容:

  • 提供面试资料,精简面试八股文,核心知识总结。
  • 车轮战模拟面试,(面试-->总结问题-->再面试-->再总结-->再面试...找个最优状态
  • 美化简历,很多人的简历那真是烂得一塌糊涂,投出去必定沉默大海。

如果工作后,遇到什么技术问题、职场问题都随时可以找我一起探讨。


标签:面试题,Java,Spring,Redis,面试官,问题,面试,MySQL,文末
From: https://blog.51cto.com/u_11702014/6235787

相关文章

  • javaweb用户登录界面
    实验名称用户登录界面成绩评定所用仪器材料eclipsetomcatwin11实验目的或要求1.实验目的使用JSP实现用户登录验证。2.实验内容通过创建一个用户登录的页面,让用户输入正确的用户名、密码,并进行校验,若用户名和密码输入正确,则弹出您好,你的名字首字母,否则弹出用户名或密码错误,请重新输......
  • Linux/Win/MacOS系统 安装JDK(Java)教程,JDK下载
    JDK下载安装与环境变量配置图文详细教程,Window、Linux和MacOS(M1)系统安装jdk教程。我的世界(Minecraft)开服教程:https://blog.zeruns.tech/tag/mc/性价比高的服务器/VPS推荐:https://blog.zeruns.tech/archives/383.html什么是JDK?SUN公司提供了一套Java开发环境,简称JDK(JavaDevelopm......
  • #yyds干货盘点# LeetCode面试题:子集 II
    1.简述:给你一个整数数组nums,其中可能包含重复元素,请你返回该数组所有可能的子集(幂集)。解集不能包含重复的子集。返回的解集中,子集可以按任意顺序排列。 示例1:输入:nums=[1,2,2]输出:[[],[1],[1,2],[1,2,2],[2],[2,2]]示例2:输入:nums=[0]输出:[[],[0]]2.代码实现:classSolu......
  • java -- JDBC
    JDBCJDBC(JavaDataBaseConnectivity,java数据库连接)是一种用于执行SQL语句的JavaAPI。JDBC是Java访问数据库的标准规范,可以为不同的关系型数据库提供统一访问,它由一组用Java语言编写的接口和类组成。JDBC需要连接驱动,驱动是两个设备要进行通信,满足一定通信数据格式,数据格式由......
  • JAVA中的for循环和while循环详解
    for循环格式fou(初始化;条件判断语句;条件控制语句){循环体语句:}执行流程:执行初始化语句执行条件判断语句,结果是false的话循环结束,结果是true执行循环语句执行条件控制语句  while循环格式:while(条件判断语句){循环体语句;条件控制语句;}for和while......
  • 对Java课程PTA4-6题目集的反思与总结
     前言:三次题目集一共涵盖了以下知识点:面向对象编程的封装性,List-Arrays方法的使用,强制类型转换的方法,字符串的处理,字符串截断方法split的使用,对象数组的建立以及使用,Java源码自带的多种日期类方法的使用,各种正则表达式及其运用,运用聚合的方法自行写日期类,综合运用现学的所......
  • JVM系列——java文件到JVM中的整个过程
    关注“Java后端技术栈“回复“面试”获取最新资料今天来聊聊从java文件到class文件,最后class文件是怎么到JVM中的。首先是编写一个HelloWorld.java类,然后通过这一系列的编译操作,最终成了HelloWorld.class文件。然后把HelloWorld.class文件加载到JVM中的整个过程:1,装载。查找和导入cl......
  • Dubbo常见面试题
    关注Java后端技术栈“回复“面试”获取最新资料其实关于Dubbo的面试题,我觉得最好的文档应该还是官网,因为官网有中文版,照顾了很多阅读英文文档吃力的小伙伴。但是官网内容挺多的,于是这里就结合官网和平时面试被问的相对较多的题目整理了一下。1,说说一次Dubbo服务请求流程?基本工作流......
  • Java高频面试题和答案
    一、Java基础篇Object有哪些常用方法?大致说一下每个方法的含义Java创建对象有几种方式?获取一个类对象的方式有哪些?ArrayList和LinkedList的区别有哪些?用过ArrayList吗?说一下它有什么特点?有数组了为什么还要搞个ArrayList呢?说说什么是fail-fast?Hashtable与HashMap的区......
  • JavaBlog2
    一、前言本次博客文章主要是关于java课程第二阶段关于PTA题目集、超星作业以及期中考试的总结。相较于第一阶段的作业总结而言此次作业更加针对于总结在面向对象过程中的三大技术特性,即封装性、继承性和多态性,以及相关一些面向对象设计过程中的一些基本原则的理解和分析此阶段作......