java最新面试题及答案2020
先墙烈推荐两篇面试博客:
一、背下就能进阿里的百家名企面试题汇总
二、java常见面试题汇总
java面试题及答案2020 百度第一篇
先收藏后点赞,以后更新及时看
文末后续更新答案,持续关注哦
一面
- 手写ArrayList
- 手写进制转换算法,求出一个数的二进制数 1 的个数
- JAVA 基础,equals 和==
- 多线程方式、threadlocal,各种锁,synchronized 和 lock
- 设计模式、spring 类加载方式、实例保存在哪、aop ioc、反射机制6、类加载器,双亲委派模型,热部署
- jvm 内存模型,内存结构、堆的分代算法、堆的分区、gc 算法、gc 过程
- tcp ip,七层模型,rest 接口规范,get 和 post 区别,长度,安全9、tcp ip 的 arp 协议,两个同一网络的主机如何获得对方的 mac 地址10、负载均衡、高并发、高可用的架构
- mysql 的引擎区别
- redis 缓存,redis 的集群部署,热备份,主从备份,主从数据库,hash 映射找到知道指定节点
- 了解云计算么,了解云容器 docker 么,容器和虚拟机的区别
- 百度 java 程序员
二面
-
自我介绍,项目中负责哪些,做了哪些
-
项目中的数据库备份,主从数据库、集群
-
数据库的索引原理,b+树原理,trie 树引申,二叉查找树的原理
-
海量数据中查找一个单词,分布式计算 map reduce,或者用 hsah 映射筛选部分结果5、java 的抽象类和接口区别、java 的 hashmap,java 的内存模型,分区,分代垃圾回收算法。实例、常量放在哪里
-
int 4 个字节,double 8 个字节
-
多线程中的wait 和sleep 区别,notify 的作用
-
设计模式了解哪些,写一个观察者模式。实现两个接口,一个是主题一个是观察者,并写出对应方法
-
写一个生产者消费者队列的方法,分别写两个类代表生产者和消费者,并且用队列模拟其生产消费
-
tcp ip 的四次挥手,子网掩码的作用
-
了解 linux 么,说一下 linux 的内核锁?
-
有没有用过 sed,使用 shell 脚本写一个将文本中的字符替换掉的脚本,大概说了一下用 grep||替换
java面试题及答案2020 百度第二篇
一面
- 自我介绍
- Java 中的多态
- 为什么要同时重写 hashcode 和 equals 4、Hashmap 的原理
- Hashmap 如何变线程安全,每种方式的优缺点
- 垃圾回收机制
- Jvm 的参数你知道的说一下
- 设计模式了解的说一下啊
- 手撕一个单例模式
- 算法题目
- 手撕算法:反转单链表
- 手撕算法:实现类似微博子结构的数据结构,输入一系列父子关系,输出一个类似微博评论的父子结构图
- 手写 java 多线程
- 手写 java 的soeket 编程,服务端和客户端
- 手撕算法:爬楼梯,写出状态转移方程
- 智力题:时针分针什么时候重合
二面
-
自我介绍
-
项目介绍
-
服务器如何负载均衡,有哪些算法,哪个比较好,一致性哈希原理,怎么避免 DDOS 攻击请求打到少数机器
-
TCP 连接中的三次握手和四次挥手,四次挥手的最后一个ack 的作用是什么,为什么要
time wait,为什么是 2msl -
数据库的备份和恢复怎么实现的,主从复制怎么做的,什么时候会出现数据不一致,如何解决
-
Linux 查看 cpu 占用率高的进程
-
手撕算法:给定一个数字三角形,找到从顶部到底部的最小路径和。每一步可以移动到下面一行的相邻数字上
-
然后继续在这个问题上扩展
-
求出最短那条的路径
-
递归求出所有的路径
-
设计模式讲一下熟悉的
-
会不会滥用设计模式
-
多线程条件变量为什么要在while 体里
java面试题及答案2020 百度第三篇
一面 2019/7/22 来自于牛客网
- 自我介绍
- 问我数据结构算法好不好
- 找到单链表的三等分点,如果单链表是有环的呢
- 讲一下项目的架构
- 说一下你熟悉的设计模
- 有没有配置过服务器
二面
-
Spring:有没有用过 Spring,Spring IOC、AOP 机制与实现,Spring MVC
-
多线程:怎么实现线程安全,各个实现方法有什么区别,volatile 关键字的使用,可重入锁的理解,Synchronized 是不是可重入锁
-
集合:HashMap 底层实现,怎么实现HashMap 线程安全
-
JVM 内存管理,GC 算法,HotSpot 里面的垃圾回收器、类加载
-
进程和线程的区别
-
HTTP 有没有状态
-
Java IO,NIO,Java 中有没有实现异步 IO
-
前端会不会,Ajax 是什么,Ajax 实现原理
-
让我设计一个线程池
-
讲几个设计模式,哪些地方用到了,为什么要用
-
Mysql 优化、索引的实现我从数据库设计优化和查询优化两方面讲的。索引 B+树实现, InnoDB 和 MyISAM 主键索引的实现区别,一个聚集一个非聚集
-
事务的隔离级别
-
四种隔离级别,可能会出现哪些异常,mysql 中默认级别
-
有没有用过 Hibernate、mybatis、git
-
从 10 万个数中找最小的 10 个,时间复杂度分析
-
从一个有正有负数组中找连续子数组的最大和,时间复杂度分析
-
满二叉树第 i 层有多少个节点,n 层的满二叉树共有多少个节点
java面试题及答案2020 百度第四篇
一面
-
自我介绍
-
确定了下我学过的东西:Java,linux,mysql 网络,数据结构和算法
-
说一下实习公司的测试流程
-
先问一下java 相关的,说下 java 的作用域
-
重载和重写的区别?
-
知道 error 和 exception 吗?异常处理机制
-
char 类型能否存储一个中文字符?
-
接口可以继承接口吗?抽象类可以实现接口吗?
-
知道序列化吗?反序列化?
-
序列化如何实现?
-
Java 垃圾回收是怎么个情况?
-
如何让jvm 开始垃圾收集?
-
调用了finalize()System、gc()会立刻开始垃圾回收吗? 14、final,finall,finalize 三者的区别?
-
问下网络相关的,说下三次握手和四次挥手的详细过程?
-
http 的状态码,像 1、1、1、0,1、0,1、0 都是什么意思?1、0?
-
算法,写下冒泡排序或者快速排序?
-
冒泡排序俩个循环,可以优化吗?时间复杂度是多少?空间复杂度呢?
-
写下二分查找
-
mysql,student_score 表,有字段:s_id,course,score、写 sql,查出平均成绩大于1、的学生 id
-
linux,查看 cpu 使用率的命令?
-
查看磁盘使用情况的命令?
-
按照文件名查找一个文件的命令?
-
查到某文件并删除如何进行?
-
已知一个进程号,杀掉这个进程的命令?
-
如何友好地停掉一个进程? 27、vim、vi 用的多吗?
-
日志文件是滚动的,要查找日志文件的末 1、行如何查?
-
项目,讲下你简历上写的项目的架构,从数据库->dao->service->controller 30、项目中有没有管理一些配置文件?比如、pom
-
如何使用配置文件呢?(让配置文件生效 xmlPathContextApplication(“application、xml”))
二面 2020/2/28 来自于牛客网
- 无自我介绍,直接介绍实习工作
- 如何保证测试的质量?
- 除了用时间成本,有没有什么有效确保测试质量的措施?
- 遇到难以解决的问题,怎么应对
- 在工作中有没有和别人的合作?实习期间有没有遇到矛盾?
- 觉得工作中什么事情很难抗?
- 你怎么看待开发和测试的关系?
- 对未来职业有什么预期吗?
- java 里面会有内存泄漏吗?什么情况下会有?
- String Stringbuffer StringBuilder 对比11、stringbuffer 和stringbuilder 适用场景? 12、多态理解?
- 算法:求一个字符串内的最大不重复子串
- 算法:无序数组,找出其中和为 target 的元素
- 逻辑:1、1、求 1
- 你的外卖系统,如何来规划测试?
java面试题及答案2020 百度第五篇
一面 2019/1/26 来自于牛客网
-
项目负责模块的流程,具体怎么做
-
git 和 maven 的常用命令(有关于分支、文件对比等相关操作;打包等命令)
-
sql 语句——内联查询,如何在一条 sql 语句执行前输出一个随机数
-
使用redis 的好处
-
如何找到一个链表的中间节点?
-
如何判断一个三角形的类型?
-
如果要对对购物车模块进行测试,阐述一下自己的想法
-
面向对象有三大特征:封装性、继承性、多态性
-
java 中有哪些常见的数据类型?
-
常用哪些工具类?
-
hashmap 的底层实现,以及它的优缺点?
-
linux 命令:查询指定文件的行数
二面 2019/2/6 来自于牛客网 -
自我介绍。有提到服务的模块化改造
-
对于MVC,SOA,微服务的理解
-
看到我项目里面用了redis,为什么要用 redis?是否理解 redis 的线程模型?
-
然后他紧接着问我,你确定redis 比 Mysql 快?
-
redis 的项目中的实际应用场景?
-
我们项目中的那些业务必须要用 redis,既然说 redis 可以给 mysql 减压,那你们系统的用户量和并发量是多少?
-
有没有遇到过 Mysql 顶不住宕机的情况?如果现在系统的流量增加 1、00 被,该从那些层面考虑优化系统性能?
-
在使用redis 的时候你应该注意那些问题
-
看你简历上写你深入理解 OOP,说一下你对 OOP 的理解
-
你说你有良好的编程习惯,具体体现在哪里
-
怎么用的设计模式去重构的流程模块。讲一下思路
-
最近看过那些书?学JAVA 多久了?什么时候能来实习,能来多久?
-
看你熟悉 mysql,简单说一下 MVCC
-
说一下你在线上使用mysql 遇到的具体问题
-
说一下Mysql 线上调优的经验
-
说一下 mysql 中共有那些锁,并分别介绍一下
java面试题及答案2020 百度第六篇
一面 2019/12/18 来自于牛客网
-
实习、项目,问得比较深
-
Java 基本数据类型,int 和 Integer 区别
-
ArrayList 和 LinkedList 区别
-
Stack 和 Heap 区别,空间存放上?内存分配上?
-
代码题:1-7 可以组成的不同且无重复的三位数
-
Redis 存取数据
二面 2018/12/21 来自于牛客网
- 实习和项目经历(较详细),遇到了什么问题,怎么解决的
- 用了什么数据库,读写数据量大不大,用了什么引擎?MyISAM 引擎用过没有?有什么区别?MyISAM 具体用的用途是什么
- 数据库相关隔离级别介绍下,你现在用的是什么隔离级别
- 两个事务A、B,A 是未提交,A 读了一个数据,B 对数据进行写,A 再次读读的是什么数据?
- 我专业不是计算机专业的,问了下和计算机专业的关系,都学了写什么相关的理论
- 排序相关算法,时间复杂度都是怎么样的
- 对于单链表来说,比较好的排序是什么?
- 队列和栈。两个栈怎么实现队列?
- 一群数字如何去重
- 给栈加个辅助功能,实现得到栈此时的最小元素
- Java 并发,内存管理,并发?什么场景遇到过?怎么解决?
- OOM 什么时候遇到过?OOM 时程序有什么表现?进程消掉了还是线程死掉了?
java面试题及答案2020 百度第七篇
一面
- 在线程 A 对 HashMap 进行迭代查询的时候,线程 B 对 HashMap 进行增删改会发生什么
- ConcurrentHashMap,的数据结构与 HashMap,有什么区别与联系3、Java 内存模型中哪一个区域不会发生 OOM 异常
- 类加载流程
- 为什么要有双亲委派,类加载器有哪些
- MVCC 是什么,简述 MySQL 的隔离机制
- MySQL 的锁机制
- Java API 中NIO 和 BIO 的区别
- 消息中间件的好处,如何选型
- Redis 的 IO 模型;常用的数据结构;zset 的内部实现,为什么用跳表不用红黑树,跳表的空间复杂度
- 11、AOP 的抽象属性之间的关系与联系
二面 2019/8/20 来自于牛客网
- 介绍项目,秒杀平台如果想支持更大的并发量应该如何优化?如果把项目部署成多个服务,架构方面应该怎么做
- 数据库的ACID,MySQL 底层是如何保证原子性的
- 设计一个实时监测 MySQL 的工具,可以监测每条 SQL 语句运行时间、事务的运行和数据库的连接信息等
- MySQL 的 binlog、redo log 和 undo log 5、HTTP 和 HTTPS 的区别
- Redis 的主从架构、哨兵机制
- Redis 的持久化,RDB 和 AOF 的对比
- MQ 如何保证消息传输的可靠性
- 问了学校的研究方向、本科学习情况及获奖情况
java面试题及答案2020 百度第八篇
一面
- 数据库的事务,四个性质说一下,分别有什么用,怎么实现的
- 讲到了redo 和 undo 日志,问我分别有什么用,说redo 日志说错了
- 数据库的隔离性如何保证,使用悲观锁和乐观锁有何区别。MVCC 的设计目的是什么, 怎么使用版本号判断数据的可见性
- 问了一道算法,1 到N 的所有数字,按照字典序打印,怎么做,怎么优化,按照数字特征顺序打印,问这个东西和什么结构比较像。提示是树,然后说了个多叉树,问我怎么实现, 最后其实使用dfs 遍历树的每个分支
- 多线程并发的同步实现,有两个方法,每个方法里有a 部分代码和b 部分代码,我要让两个线程分别执行两个方法,并且让他们运行完a 部分代码再一起向下执行,如何实现
- 我说了用 cyclicbarrier 实现,互相等待await
- 然后他问我怎么用信号量实现,并且提示可以再用一个线程
- 问了项目
- 如何把优化递归的代码
二面 2020/3/30 来自于牛客网 - 自我介绍,项目
- 服务器如何负载均衡,有哪些算法,哪个比较好,一致性哈希原理,怎么避免 DDOS 攻击请求打到少数机器
- TCP 连接中的三次握手和四次挥手,四次挥手的最后一个ack 的作用是什么,为什么要
time wait,为什么是 2msl
- 数据库的备份和恢复怎么实现的,主从复制怎么做的,什么时候会出现数据不一致,如何解决
- 开源的技术看过用过么,分布式存储的了解么
- 想做什么方向的开发
- Linux 查看 cpu 占用率高的进程
- 查看占用某端口的进程和某进程监听的端口
- 如何查询日志文件中的所有 ip,正则表达式
java面试题及答案2020 百度第九篇
一面 2020/2/27 来自于牛客网
- 问极光推送 JPush 怎么做的,有什么优缺点,要怎么改
- apk 如何瘦身,如何写脚本去掉多余的资源,内存如何优化,性能如何提升
- protobuffer,和 json 什么区别,分别适用于什么场景,自己设计一套通讯协议,如果尽量压缩每个key
- UI View 渲染流程
- activit 几种启动模式
- view 的attach deatch 是谁触发
- 手写一个快排算法
- tcp 三次握手,sack 是什么
- redis 如何存储用户信息,问我热数据是以什么格式存的,问我用过几种类型数据,什么场景用的
- 服务器如何实现秒传文件
二面
-
问我过度绘制怎么解决,问我如何发现内存泄漏
-
然后就说项目很牛,开始问我基础的4、问我final 有哪些用法
-
static 哪些用法
-
volatile 什么用法
-
java 一共就 2 种,值类型和非值类型的理解
-
锁有几种
-
synchronized 如果加到一个方法,另一个线程想访问类中的其他方法行不行,如果两个方法都加sync 关键字,又是怎样的访问权限
-
public 和默认的什么关键字都不加有什么区别
-
问我对进线 golang 的协程的理解
-
android service 和广播的理解
-
如果我们的应用关闭了,或者根本没打开过,还怎么收到推送
java面试题及答案2020 百度第十篇
一面
- 自我介绍
- Java 中的八大类型及其包装类型
- 说一下 Map 的各种实现类,它们有什么区别
- HashMap 底层实现
- Spring 中的 Bean 生命周期,Spring 初始化过程
- 数据库中的组合索引,数据库优化有了解过吗
- 快排,时间空间复杂度
- Servlet 是单线程还是多线程的,线程安全吗
- 有什么要问我的
java面试题及答案2020
二面
- 实习经历,实习时的项目功职责
- 项目介绍,redis 和 mysql 是如何保证数据同步性的3、rabbitmq 是如何保证可靠的,kafka 适用于什么场景
- springboot 的优介绍一下springboot
- orm 有了解过 Springdata 吗,如何把 mybatis 里的xml 迁移到springboot 6、redis 的作实用场景
- 说一下微服务,docker 的优点,docker 中的端口映射问题
- 静态内部类和非静态内部类,内部类为什么可以访问到它外部类的数据和方法? 9、lambda 表达式在 jvm 里是如何体现的
- hash 冲突了解哪些?说一下 hashmap 里的 hash 冲突,红黑树的定义,put 一个元素到红黑树里红黑树的转变过程
java面试题及答案2020 - 正向反向*,nginx 有了解过吗
- android 里的 handler 了解吗
- zookeepespringcloud 知道吗,你的项目有没有使用多台机器
- 还有什么想问我的
java面试题及答案2020 后续持续更新中。。敬请关注,点赞+收藏,java面试题及答案2020持续更新