Java 面试刷题10-31

mac2024-11-21  1

1 java后端技术

javase

《核心技术卷1》:面向对象(多态、Object类、关键字)、接口与内部类、集合、泛型、反射 黑马视频

并发

多线程 《Java并发编程的艺术》 慕课网视频:Java并发编程与高并发解决方案

设计模式

《大话设计模式 》:掌握常用的设计模式以及在简历上写到大的框架中的典型应用场景 慕课网视频:java设计模式精讲 Debug 方式+内存分析

java虚拟机

只需要掌握重点 《深度理解java虚拟机》:内存区域、垃圾回收、类加载

框架

掌握核心机制与大致原理 Spring:掌握IOC、AOP、事务 SpringMVC 与 Servlet: 大致处理流程 SpringBoot :自动装配 SpringCloud:各组件核心机制原理 慕课网廖师兄视频

后端进阶

看看就好,能吹出来 包括了分布式理论,以及常见分布式技术比如负载均衡,zookeeper,消息队列,分布式缓存等等。当然,这里面也包括系统架构方面的知识,以及RPC,微服务等内容。

 

3. 计算机基础

数据库

MySQL: SQL刷题、底层原理(索引、事务、锁)参考书籍: 《高性能MySQL 》《MySQL必知必会》 Mybatis : 核心机制 Redis  

 

计算机网络

《计算机网络自顶向下》《图解HTTP》 TCP、IP HTTP

操作系统

《操作系统精髓》 进程、线程

4. 项目

写在简历上的项目点一定要熟悉 开发背景-开发过程-开发中的改进-对应技术的相关知识  

字节跳动

7.17 一面视频挂 原因:sql语句没写出来

顺丰

一面挂 7.29 原因:一面手撕算法没写出来

1. 趋势科技

一面 8.12 技术面 一个面试官 30分钟左右

mybatis中 # 和 ¥ 的区别,sql注入问题blob类型的使用delete truncate 区别sql 语句:将两个订单中的信息统计到一个表中JDBC 的大致流程
redis 内存回收策略redis过期键的处理方式redis 主从复制redis 持久化redis 的底层数据结构redis 的单线程为何快?
Thread.start() ,run() 区别,sleep(),wait()区别Collection 和 Map 架构区别HashMap 的 put()和 get()方法底层算法题,不用实操代码,只说大致思路对笔试题的回顾

二面 8.12 技术面,两个面试官 30分钟左右

项目经历与细节 亮点难点自定义线程池中各参数怎么确认读写锁的实现方式创建线程的两种方式对比java中几种同步方式

高并发的常用技术-缓存、消息队列简单讲讲

Redis 的6中数据结构-着重讲了跳跃表

GitHub上最满意的一个项目给介绍下?

最满意的一篇博客给介绍下?

随便聊聊

其实整体就是根据项目涉及到的知识点来问,自己还得深入了解 。


三面 8.13 hr面 30分钟左右

个人基本情况与工作意向城市在项目开发中,遇到和leader不一致时,怎么处理?在项目开发中最大的提升是哪方面怎么保持在更新迭代快的开发领域的竞争力(我回答的是学习能力)可以举一两个例子体现下自己学习能力么对工作的几个最关注的点有什么问题想问我的么

hr面挂

 

一面挂 一面 8.13 电面 45分钟左右

首先谈基本情况和项目谈了25分钟 同步服务同步的方式,为什么不可以每分钟的同步如何解决跨节点的join关联查询表结构设计的事项 堆排序概念Java的四大基本特性-封装、继承、多态、抽象Java内存模型-主内存和工作内存Java如何保证线程安全(这里自己只答了互斥同步,忘了说非阻塞同步了)Jvm中堆和栈的概念自学能力体现在哪(下次回答对JVM的学习吧,别往算法上靠了)

被拉入公司人才库

 

分布式系统需要考虑哪些方面要素 高性能、高可用、可伸缩、可扩展、安全了解或者知道的分布式系统synchronized底层原理wait() Thread()区别走索引的磁盘IO次数

 

4. 中兴

一面 电话面 8.28 45min

Token过期是怎么处理的

怎么保证token的可靠传输,在传输过程中被截走了怎么办 https安全传输协议,以及token是包含用户信息、客户端信息等,仿造很难

Spring Security 的核心原理 就是一系列的过滤器

OAuth2怎么结合Spring Security实现权限认证的 密码式授权模式

Spring 了解哪些知识 IOC AOP

Redis怎么解决双写一致性问题 两种策略,策略1:先删除缓存,再更新数据库 策略2:先更新数据库,再删除缓存

每次传入参数不同,怎么保证走缓存 前端控制传入参数格式,后端对前端传过来的参数进行验证

影响Redis最大并发性能的主要因素 内存,持久化策略、主从复制、带宽

MySQL的两种引擎的主要区别 锁,事务,索引

索引类别以及底层实现机制,B-Tree 索引在两种引擎中的区别 普通,主键、唯一、聚簇、覆盖索引,B+索引和Hash索引 ,

InnoDB行级锁 共享锁、排他锁、间隙锁

jvm调优有经验么,怎么指定垃圾回收算法

垃圾回收机制

 

5. 美团

一面 9.4 视频面试

自我介绍时说了自己写了博客 ,结果面试官就开始问博客的内容

进程和线程的区别 从操作系统角度 和 JVM 角度答了协程(没听过)进程间的通信方式 信号、管道、消息队列、共享内存进程间使用信号通讯方式时,如果一个进程还在处理之前信号时,又来个信号会怎样? 没答好,我说直接丢弃信号 管道 里面的匿名管道 和 命名管道 (没听过) 转而说了下管道的大致实现流程浏览器输入URL 整体流程-包括网络层、链路层、物理层DNS解析原理路由选择协议-RIP OSPF 实现原理,算法思路可达性分析算法中,可作为根节点的类型是否可达性分析完后,就会立即回收 (答的不好,本来是往finalize()方法答的,自己却扯到CMS垃圾收集器上去了)可达性分析流程以及四种引用概念,四种引用都会被根节点引用到么 (也答的不好,只说前三种会被引用链寻找了) 类加载过程双亲委派模型手撕 单例模式,寻找数组K个最大值、二分查找

 

6. 科大讯飞

一面 9.5号上午 现场面 武汉开发

Java中的循环有几种do while 和 while的区别for循环中能否改变i的值int 和 Integer 的区别联系sql语句执行慢怎么分析写个sql语句向表中添加列的sql语句项目主要业务介绍微服务的相关组件介绍为什么用微服务

二面 9.11 上午 30min左右

前后端怎么保证沟通,遇到意见不一致怎么解决微服务相比单体应用,优点,缺点关系型数据库和非关系型数据库微服务的高性能,高并发常见机智非科班的话,哪些方面比科班生强呢前端有了解么二叉树,平衡二叉树,红黑树,B+树的应用场景职业规划想成为架构师的话,最近有没有学习哪些技术栈面过哪些公司,大致情况对加班的看法

三面 9.21 hr视频面 直接拒了

6. 龙湖集团

开发岗 一面 9.8上午

龙湖 9.8一面(岗位:上海,成都)

常用的数据结构 2 . 集合体系整体架构介绍下ArrayList和 LinkedList的使用场景区别HashMap中的红黑树,为什么要用红黑树和二叉树区别Feign中过滤器的原理(基于动态代理,手撕动态代理)Oauth2协议授权流程简单介绍Oauth2中后台token是存在服务JVM内存中,如果服务崩了的话,token失效了怎么处理(可以用Redis去实现持久化)手撕List转Map(简单,但是面试官说会Stream么,回答说不会)项目开发中最大的难点是什么?反问阶段

二面 9.9 30分钟 (两个面试官,技术面和hr面同时进行)

Distinct 和 Group. byreplace 和 update区别主键,唯一索引,索引区别外键手写单例手撕字符串解析(四则运算和数字)Spring Cloud 和 Dubbo区别注册中心Rureka流程解释String StringBuilder 的区别Java中的容器讲讲sleep() 和wait()区别

终面 9.16下午 视频面 只面试了3分钟,就是简单聊聊

7. 招银网络科技

一面 9.10号上午 电话面 30min

静态内部类 和 成员类的区别 定义方式,外部对象访问方式

abstract 方法可以有static关键字么,为什么不能有 static相当于是类对象的方法,而abstract 方法只是一种声明

synchronized 能修饰 abstract方法么 回答的能,其实是不能,因为synchronized既然是同步锁,就肯定要有锁的方式

java中对象的生命周期 jvm对象创建-对象使用-垃圾对象回收

类加载过程

事务的四个特性

常用的数据库连接池以及连接池基本原理

动态规划的基本原理,举个使用动态规划的例子

贪心算法的基本原理

动态规划和贪心算法的区别

代理模式和装饰者模式区别,分别属于什么模式 答的不好,具体区别没答出来

结构型模式的特点

二面 9.20号下午 现场面 40min

SpringCloud怎么实现服务治理,服务治理Eureka的原理Dubbo简单讲讲,性能比较RPC协议调用流程负载均衡器Ribbon的实现原理,常见负载均衡策略多线程中的生产消费者实现思路ThreadLocal的应用场景,1000个线程时,会不会有内存泄露问题HashMap原理平衡二叉树和红黑树区别常用的hash算法,一致性hash算法线程安全实现方式手撕一道算法手写一个sql线程池的各参数概念,IO密集型、CPU密集型下的核心线程池数量

三面 9.20号下午 现场 40min 基本围绕项目在讲

系统整体架构,自己负责哪些?为什么引入RedisRedis双写一致性解决方案权限认证服务流程mybatis的作用?和Spring Data Jpa的比较讲一道算法题的思路,统计一个文本中每个单词的出现次数以及首次,最后出现

四面 9.20号下午 hr 现场 40min

为什么考完研不直接去实验室?

 


8. 阿里

新零售 一面 9.12 电话面50min

四种进程间通信方式Socket了解么,如果有报文丢失,怎么处理(没回答好)TCP vs UDP ,什么场景用UDPTCP三次连接过程Java中常用的锁以及底层原理(基本上每种锁都将一遍)十大排序算法(每种排序都讲一遍)数据库底层实现原理(B+树)项目整体开发流程,遇到问题,亮点,哪些地方可以改进给定a、b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a、b文件共同的url?(分而治之/Hash映射)HashMap中的 hash算法,其余hash算法呢?重写equals() 和 hash() 方法内存溢出与内存泄露(没答好,应该先从哪些情况会引起溢出,然后怎么解决去答)

9. 贝壳

首先是9.10在贝壳华科宣讲会上进行现场笔试,3道算法题a了2道

9.12 一面、二面技术面、三面hr面(hr面做了一道简单的算法题)

一面 45min左右

Hystrix 熔断原理,为什么用熔断Feign 通信原理负载均衡策略,以及Ribbon原理BeanFactory创建Bean过程BeanFactory 和FactoryBean的区别zuul四种过滤器原理拦截器和过滤器底层原理ThreadLocal底层原理,内存泄漏问题四种引用弱引用的使用场景虚引用的使用场景删除list集合中满足条件的节点的方式手撕一道DPSql查询慢怎么定位MySQL索引原理,有索引的情况下怎么插入数据

一面就被吓到了,这问的原理问题也太多了,结果没想到进入二面了。


二面 40min

整个项目的一个开发经历(重点是讲自己的一些思考感悟,而不是按照简历来)引入Redis的整个思考过程Redis中用的哪种数据结构,底层原理Redis中Hash的使用场景线程池并行计算的方式( Future 以及 普通的execute,这里答的太模糊了,得熟悉下)数据库的分页机制,以及一个场景分析( limit 0,5 为什么比 limit 5000,5005快)聊聊职业规划,指点下简历应该怎么写啦,应该把重心放在哪之类的

三面是hr面,聊的挺开心的,中间还穿插做了一道简单的算法题,只用说大致思路

 

 

 

一面+二面+三面:(视频面)

Redis数据类型的底层数据结构,String类型和SortedSet类型

SDS字符串和跳跃表

中断处理中cpu现场环境存储在哪里MySQL中有a,b两列各自建立索引,在进行查询的时候,走哪个索引,怎么设计三面主要问项目中的消息中间件和场景题代码题目:leetcode 85最大矩形 , 判断链表有无环,手写hashmap

 

一面(视频面)(1h20min)

代码题:单例模式,数组的题阻塞队列实现怎么设计一个线程池的各个参数,各种场景下线程池的设计

CPU密集型,最大线程数是CPU的核数,IO密集型,最大线程数是CPU的核数的两倍

cas底部是怎么实现的保证原子性(底部到硬件指令)最后,讲一下虚拟机的知识点吧只记得一些典型的问题了,一面还是基础问的比较多,细致~

 

二面(电话面)

聊项目.gif(感受到一丝凉意)hadoop和spark区别,为什么用spark,优势为什么用这个消息队列,高可用,保证消息不丢失的机制为什么用线程池,线程池有哪些,以及应用场景 垃圾回收的知识,为什么要垃圾回收,可达性分析,回收算法,垃圾回收器写sql语句,查询各门科目成绩都>80的学生姓名

SELECT name FROM student where ....

聚簇索引和非聚簇索引 聚簇索引:将数据存储与索引放到了一块,找到索引也就找到了数据 mysql事务和隔离级别,默认的隔离级别

读提交,读未提交,可重复读,串行化,MySQL 的默认隔离界别是可重复读

sychronized和可重入锁的区别

关键字,后者是一个类对象

ORM框架——mybatisSpring和Springboot (我以为会被挂的地方,不太懂Spring)

 

三. 网易(杭州)

几乎和百度同时进行~

一面(视频面)

聊项目.jpg,主要聊了分布式的项目,源码等等那我们来问一下java知识吧java内存区域java有哪些等待通知机制

wait() 和 notify()

Countdownlatch了解嘛,底层怎么实现的?

CountDownLatch是什么?

jdk1.5开始concurrent包里提供的,并发编程工具类。 CountDownLatch这个类能够使一个线程等待其他线程完成各自的工作后再执行。例如,应用程序的主线程希望在负责启动框架服务的线程已经启动所有的框架服务之后再执行。

CountDownLatch如何工作?

CountDownLatch是通过一个计数器来实现的,计数器的初始值为线程的数量。每当一个线程完成了自己的任务后,计数器的值就会减1。当计数器值到达0时,它表示所有的线程已经完成了任务,然后在闭锁上等待的线程就可以恢复执行任务。API countDownLatch.countDown() countDownLatch.await();

CountDownLatch应用场景例子

CountDownLatch底层原理

CountDownLatch通过AQS(AbstractQueuedSynchronizer)里面的共享锁来实现的。 ReentrantLock也是使用AQS

说下AQS 什么时候申请堆外内存内存映射以及内存映射的方法是哪个分布式缓存redis,怎么做成分布式一致性hash 不用redis cluster怎么做?redis cluster一个宕机了会有哪些处理?分布式数据库了解吗?发布订阅模式,以及一个消费者组集群模式怎么消费了解Spring吗(不了解不清楚别问我我没看)web下服务器怎么做负载均衡的?

二面(视频面)

项目和场景题负载均衡的几种方法缓存击穿,雪崩的应对方法,详细讲

HR面(现场面)

常规HR问题

四. 阿里(等最终通知)

一面(电话面)

项目相关:有调研其他的消息中间件吗?为什么用rocketmq?线程池的原理以及各种线程池的应用场景线程池中使用有限的阻塞队列和无限的阻塞队列的区别如果你发现你的sql语句始终走另一个索引,但是你希望它走你想要的索引,怎么办mysql执行计划数据库索引为什么用b+树(磁盘io的深入了解)你在做sql优化主要从哪几个方面做,用到哪些方法工具

二面 +  三面 +  交叉面 +  HR面(电话面)

(我已经忘完了,忘记记录面经了😭)

在坐地铁的路上面了个疑似交叉面的面试,刚开始以为是挂了,然后被别的部门捞了,也没听清楚是什么部门,内心很崩溃,当时面的感觉是秋招面的最差的一次。

却意外地等到了HR面,才知道前一面可能是交叉面(来自从没体验过交叉面的疑惑😅)~~

面试官让我帮忙推没有面过的简历,太难找了,问了别的实验室也没有,尽力啦,等最终通知!!

 

五. 美团(上海)

一面(电话面)

太太遥远了,不记得了.jpg

二面+三面+HR面(现场面)

距离一面有1个多月,期间收到了HR通知去上海现场面,但当时有些懒得跑,想等南京现场面,就木有去,终于等到南京现场面

线程池的原理以及各种线程池的应用场景项目深挖,画出架构图,加MQ源码MQ不能保证只会消费一次,如果让你在MQ中加入,你要怎么设计消息去重保证幂等性有哪些方法

我是只有七秒记忆么,这是最近面的一个了,大多还是不记得了😂

 

六. 小米(南京)

一面(现场面 2h)

去了南京小米公司面了一波,整整两个小时让我怀疑人生

问了研究方向项目中使用的MySQL版本号,使用哪个引擎,为什么MySQL两个引擎的区别,为什么INNODB使用聚簇索引,而不用MyISAM行指针的形式SQL优化的几个方面Redis的数据类型,SortedSet底部实现

跳跃表

Redis分片的几种形式,Redis Cluster介绍一下JVM知识Java线程池原理及其应用场景Concurrent并发包里几个类介绍一下HashMap求hash值的时候,无符号右移16位的意义解决hash冲突的几种方法,在哪些地方用哪种tcp粘包和拆包的方法,tcp可靠性通过哪几个方面保证http无状态的,session和cookie存储在哪里调用一个模块的服务的请求参数是加在哪里,修改http请求头来保持请求的状态一个服务部署在多个服务器上,怎么负载均衡,怎么让请求打到某个服务器上,怎么寻址,一个服务器宕机怎么感知io多路复用,select,poll,epoll的底部原理手写一致性hash算法题:两个集合求交集,其中相同的数字出现多次就输出多次,无序

二面(电话面)

不想再跑一趟了,向面试官改成了电话面

避免幻读的方法,MVCC中怎么避免幻读的某个方面Full GC什么时候发生,各种垃圾回收器,哪些是年轻代,哪些是老年代数据库索引结构,为什么是B+树项目ing感觉面的不太好,二面面试官说有三面,没等来三面,等来了Offer Call

七. 华泰(南京)

一面

项目问题ing....http的get和post区别大量数据不能一次性放到内存,出现频率最大的数字,数据倾斜的极端情况怎么办

课题考察

分布式全局唯一ID生成器

耗费心血,熬夜三天

HR面(5分钟)

主要问成绩,家庭情况和职业规划

已经收到体检通知啦,希望一切顺利,加油

八. 招商银行信用卡中心(等最终通知)

初面

项目里用了什么设计模式,详细讲一下项目ing微服务

终面(技术+HR面)

问了研究方向....详细讲讲看

项目问题

HR问题:如果转前端可以吗,学习要多久(回答的是更想做后端,害怕.jpg)

 

秋招已经基本结束了,希望遵循本心,做出一个不会后悔的选择叭~~祝大家Offer多多~

 

 

最新回复(0)