前言
前几天因为工作的起因始终没怎么看私信,昨天在整顿私信的时候看到了一个粉丝给我疯狂私信想要我帮忙整顿一份大厂面试题,说本人工作也有几年了想跳槽冲刺一下,然而不晓得该怎么做好后期筹备。我看到这个粉丝也是挺执着的,始终在给我私信,也是花了两天工夫把之前几个敌人的跳槽面试题整顿了一下,具体干货都给大家放在上面了!
Java 根底
1.JDK JRE
- Java 异样理解吗?说说平时遇到的异样?说出 6 种常见的 java 异样。写程序遇到过哪些异样 运行时异样有哪些
- 面向对象 面对对象的几大个性 多态怎么了解
- 修饰符:public;protect;default;private 优先级
- 对 string 类的了解。stringbuffer 和 stringbuilder
- 反射机制介绍一下
- bio,nio,aio 别离介绍一下,nio 的实现形式
- 问了 public 等变量定义修饰词的工夫域
- 问了反射机制,还有问了动静代理的益处和害处,益处答不上来
- 接口和抽象类的区别。
- 有一个 public static final 的 HashMap,里边对象的属性能不能批改?
- 为什么 java 平台无关性 机器码和字节码区别 JVM 加载代码的一个流程
- java 数据类型以及本人的利用 主动拆箱和主动装箱以及本人的利用即什么时候用到的,列举几种状况
- 什么是值传递和援用传递,区别及利用
- 重载和重写
- static 办法是否能重写,接口和抽象类的区别
- 你感觉 java 是一种什么样的语言以及 java 个性
- lamda 表达式理解吗?1.8 新个性有什么?(面试宝典对接口形象这个问题是错的,过期了)
- 内存泄露怎么造成的,怎么排查
- 讲讲 final 修饰符。
- 一个对象占多少内存。
- 最短门路问题
- java 浅拷贝和深拷贝
- 内存泄露的起因和解决
- java 反射机制,长处毛病
- 说说动态变量和非动态变量的区别,用类名调用动态变量和用实例对象调用动态变量有区别吗?非静态方法里能够有动态变量吗?
- static 能不能被重写?
重写办法的目标是为了多态,或者说:重写是实现多态的前提,即重写是产生在继承中且是针对非 static 办法的。
语法上子类容许呈现和父类只有办法体不一样其余都截然不同的 static 办法,然而在父类援用指向子类对象时,通过父类援用调用的仍然是父类的 static 办法,而不是子类的 static 办法。
即:语法上 static 反对重写,然而运行成果上达不到多态目标 - 序列化,反序列化,什么时候用?如何对一个对象序列化
Java 汇合类
- Hashmap 底层(数组 + 链表 + 红黑树)hashmap 为什么线程不平安,如何保障线程平安,就扯到 concurrenthashmap hashmap 底层实现 多线程会呈现什么状况 扩容机制是什么为什么会死锁 如何解决碰撞 Jdk 1.8 的优化。为什么应用红黑树,它是如何做到效率优化的?hashmap 理解不,原理是什么,位图理解不,跳跃表理解不,红黑树理解不,红黑树插入过程,B+ 树理解不,B+ 树特点和插入过程,邻接表和邻接矩阵区别,别离在什么中央用到,插入和查问的流程。
- concurrenthashmap1.7 和 1.8 的区别;concurrenthashmap 说说,它是如何保障线程平安的?jdk1.7 的 hashentry 和 segment 锁。具体说说 segment 锁?能讲下 ConcurrentHashMap 的实现原理么 JDK7 或者 8 都行
- 罕用汇合类 实现类
- list 和 set 区别(反复 / 不反复)
- set,list,map(线程平安的 map,map 怎么实现之类的)
- 红黑树介绍一下,跟均衡二叉树比拟一下,红黑树有哪些利用场景
- 你罕用的数据结构有哪些?
- 红黑树的特点,AVL 树
- 一致性哈希函数以及 hashmap 的 put 办法
- 数组、二叉搜寻树、B 树、B+ 树
- 堆和栈。堆、栈
- 二叉树的最大节点个数;2^n-1;
Java 并发
- java 创立线程的形式,runnable 和 callable 区别(参数不同)1. java 线程的状态有哪些;线程的几种状态
- wait 和 sleep 的区别;wait 和 notify 的应用场景;
- 介绍一下 volatile 以及原理;volatile 介绍一下 Volatile 底层是如何实现的?说了内存可见性和内存屏障,Volatile 是相对线 2 程平安的吗?不是,没有保障原子性。volatile 关键字在线程通信的问题
- 介绍一下 synchornized 以及原理;lock 和 synchornized 的区别;synchronized 锁的降级过程?Synchronized,底层是如何实现的?说了 monitor 对象头,以及两个 monitorenter 和 monitorexit 使用于代码块。对象头是存储了哪些信息?说说 synchronized 的锁优化过程?说了偏差,自旋,轻量和分量。
- 介绍一下 AQS;
- 说一下偏心锁和非偏心锁的原理;
- cas 操作是什么,以及可能呈现的问题;
- 线程池,而后你再平时怎么用的,工作原理,有哪些重要参数,饱和策略有哪些;线程池理解吧,说说如何实现线程池?外围参数哪些?有哪些阻塞队列呢?如何优雅的敞开线程池 线程池(线程大小,阻塞队列)线程创立,线程池参数,说说你罕用的线程池?说了 new *d 和 newFixed。以及介绍各个参数
- 说说你了解的乐观锁和乐观锁?乐观锁有哪些?乐观锁有什么毛病?
- 阻塞队列 线程间通信形式 创立线程形式 创立线程池形式 线程池罕用参数
- 锁有哪些
- 说说你罕用的并发包 JUI?
- 问了如何保障多线程通信
- 你用过 Java 的 J.U.C 并发包吧,给我讲一下 AQS 的原理
- CAS 的原理给我讲一下,他是怎么保障内存的可见性的。CAS 会产生什么问题
- 晓得 Java 中的内存模型吧,它有 8 个指令你给我说一下
- 多线程如何放弃同步?
- java 可见性的关键字及其原理。
- cpu 密集型多线程和 io 密集型多线程的比拟。cpu 密集型里如何治理多线程?用什么样的线程池和阻塞队列?
- cpu 线程特地多会产生什么问题?io 密集型里怎么缩小须要的线程数?
- io 多路复用的原理和实现。怎么缩小解决 io(和磁盘 io 交互)所须要的线程?
- 线程实现形式。有什么区别。线程之间的通信,过程之间的通信。
JVM
- JVM 运行时内存区域划分?哪些线程公有?运行时数据区,公有共享都是哪些?堆区内存如何调配?
- 对象的生命周期?
- JVM 垃圾回收器,cms 和 g1 的特点,两者的区别是什么,比 g1 更加先进的垃圾回收器有理解么,ZGC 原理,可能治理多大的内存,CMS 能治理多大的内存,G1 呢
- JVM 内存模型 类的生命周期 类加载过程 双亲委派机制理解吗 进入老年代过程 什么状况下间接进入老年代
- JVM 内存散布(堆栈等,程序计数器 +jvm 栈 + 本地办法栈线程不共享,堆和办法区线程共享)
- 类加载机制,过程,类加载机制?如何自定义实现类加载器?双亲委派模型、类加载器类别,双亲委派模型实质是解决了什么问题?安全性,有哪几种类加载器?类加载的流程。晓得哪些类加载器。类加载器之间的关系?双亲委派模型。为什么应用双亲委派模型?
- 垃圾回收算法,常见的垃圾回收器及他们之间区别,垃圾回收产生在哪里,怎么判断对象存活、GC Roots 具体有哪些、讲讲对象调配与回收,什么能够作为垃圾回收的对象,垃圾回收算法和流程。
- 栈什么状况下会溢出?
- 动态变量寄存在内存哪个区域?
- 怎么查看 java 虚拟机内存占用?
- 如何缩小 full gc 的次数?办法区是否须要 gc
- 4 个援用类型
计算机网络
- 输出一个 url 后的过程;浏览器从发送申请的全副过程
- OSI 七层和 TCP 四层协定,OSI 七层模型 / 五层模型,每一层有哪些协定,http,tcp,ip 位于哪一层
- TCP 三次握手四次离别,tcp 四次挥手为什么要四次,为什么 TCP 是平安的,TCP,UDP 的区别
- TCP 报文构造,HTTP 构造,TCP,UDP,HTTP 的报文格式(我懵了)
- 设计一个应用层协定(没有答出来
- HTTP 协定连贯过程,HTTPS 连贯过程,HTTP 的长连贯是怎么做的 HTTP2 和 HTTP1 区别,HTTP 申请过程 http 的几种办法,HTTP 跟 HTTPS 的区别,https 加密过程
操作系统
- 程序,过程和线程的区别
- 什么时候状况下要用多线程?
- 过程之间怎么通信的?
- 一个手机应用程序外面的过程和线程别离是怎么进行的?
- 死锁,怎么解死锁,死锁条件,怎么预防
- 过程的状态:阻塞 + 就绪 + 执行
- 手机内存 8g,是 32 位的,一个过程能申请多少内存?
- 线程的利用,举例,线程的阻塞
- 主线程和子线程的区别
Linux :
- linux 中如何查看 CPU 负载 top
- linux 用过嘛(扯到了我训练过深度模型,小哥哥间接来了个场景题)场景题:举荐算法中如何管制广告推送频率(联合强化学习说了一些
- Linux 理解不,df dh 区别,如何格式化磁盘,磁盘挂载过程,tcp 丢包如何排查,docker 是用什么实现的
- 怎么查找特定后缀名或前缀名的文件
Mysql
- 数据库引擎事务隔离级别,串行化如何实现,数据库的隔离级别?四个。你平时应用的是哪个隔离级别。数据库隔离级别以及别离解决了什么问题
- MySQL 的存储引擎有哪些?它们之间的区别?你用的 mysql 存储引擎?为什么抉择它?实现原理?
- 怎么判断一个 SQL 语句有没有走索引?紧接着问 explain 晓得哪些字段吗
- mysql 存储模型 区别 怎么看用没用索引 怎么判断 sql 语句好坏
- 数据库中索引 B + 树
- 一个手机利用要更改数据库,它的底层是怎么实现的?
- sql 查问过程
- MySQL InnoDB 存储引擎中的 MVCC 解决了什么问题,能说下 MVCC 的实现原理么
- SQL 语句常常写吧,那我给你出一道 SQL 题(分组求和排序)
- 你认为什么状况下不应该建设索引
- mysql 有几种锁?怎么实现?
- innodb 事物的级别
- b 树的构造?与二叉树的区别?与 b 树的区别?
- 写过最简单的 sql,手写代码:统计各个科目考试最高分: 最简单的包含了 sum、case、left join、group by,诘问左连贯和内联区别,没答上来
- 聚簇索引跟红黑树
- sql : 给一个日期范畴,统计每天入库的数据总量
- sql 语句里 like 和 in 关键字
- sql 语句,求平均分超过 60 分的学生学号
- 数据库 sql 怎么优化
- 什么状况不能用索引?
- SELECT column_name(s) FROM table_name WHERE column_name BETWEEN value1 AND value2 什么时候会产生死锁;怎么解决死锁;N 个资源怎么办?
redis
- 你晓得 redis 的什么货色
- redis 中 zset,说了一下跳跃表的插入,删除过程;
- 位图晓得原理嘛(操作系统中的位示图还是 bitmap? 不太理解)
- redis 数据类型,redis 的利用场景,为什么 redis 快
- Redis 的 key 的写入和删除的原理
- 怎么保障 Redis 的高可用
- redis 数据结构?单线程还是多线程?
- 用什么样的队列?你是怎么实现?我答复的 redis 的 list 实现的)这种队列有什么毛病?
- 分布式锁;
mq
- 你还用过 rabbitMQ 呀,它可能做什么?
- rabbitMQ 是怎么保障音讯不丢的,从客户端—音讯队列,音讯队列—服务器端的角度思考
spring
- 开源框架有哪些理解的 为什么用 spring 为什么不必 new 就能够自动生产 能不能自己实现一个
- spring security 是干嘛的,原理是啥,jwt 干啥的
- 后盾用什么框架?ioc,aop, 其余还有什么框架也能够做到 ioc,aop(2333~不就 spring?)
- Spring IOC,AOP, 注解
设计模式
- 双重检索单例
- 设计模式分为哪三类,各有什么?设计模式,用过哪些设计模式,讲几个,设计模式和准则
- 代理模式属于哪一类
- 生产者消费者模式, 生产消费者的,以及多生产者同步
- 形容适配器,写单例
- 单例模式,装璜模式,
布式
- 负载平衡的算法有哪些;
- rpc dubbo 的组件有哪些
- 分布式事务,CAP 定理,有没有应用过相干的产品
- zookeeper 理解吗
- hbase 索引的构造,kafka 存储的构造,二进制文件的组织形式,kafka 如何防止音讯失落,zookeeper 在 kafka 中是干啥的,kafka 在 zookeeper 中存储的数据,zookeeper 理解不,zookeeper 的共识算法,分区后如何解决。
- protobuf 理解不,grpc 理解不,用的什么协定,HTTP2 和 HTTP1 区别,websocket 建设连贯过程
- RPC 你理解过吗?
- 如何分布式存储?
算法
- 排序算法有哪些,简述冒泡和归并排序,冒泡算法的优化, 讲讲归并排序, 冒泡的优化晓得吗;答复相等不替换,还有 flag 做已排序标记的优化;间接插入排序,写一下伪代码或者说一下思路, 插入排序,工夫复杂度
- 堆排序原理
- 快排, 快排是什么思维,快排的优化是啥,为啥这么做;
- 字母排序
- 100 个数中找出想要的数
- 一个数组分成 2 个相等或靠近的子数组
- 派单的最短门路问题
- 很大的数据,内存放不下,如何疾速找到两头值
- 手撕栈
- 链表找环 链表找环入口,不必双指针怎么做
- 双向链表实现,写了个 add() 和 add(index) 的
- 求数组的全排列
- 中序遍历,递归非递归
- 求四个数绝对值的最小值
- 黑猫白猫,混在一起,如何把他们辨别开?黑白灰三种猫混在一起,如何依照黑白灰排好序?还有两个小问题遗记了。
- 如何用一个 int 值,示意三种状态?
其余
- 给你 10 个 tomcat 你如何判断本人用哪个(容器?emmmm,求指导)位图晓得原理嘛(操作系统中的位示图还是 bitmap? 不太理解)所谓的 Bit-map 就是用一个 bit 位来标记某个元素对应的 Value,而 Key 即是该元素。因为采纳了 Bit 为单位来存储数据,因而能够大大节俭存储空间。其实就是位示图为原型,01 存储的,倡议面试的时候晓得多少说多少,晓得什么说什么~
- 序列化相干
- 最初还是问我的项目,我的项目中的难点,是如何解决的?
- c++ 编程搞过没,GPU 编程理解不,用的什么 GPU,GPU 运算性能是什么决定的
- 如果某个用户同时申请创建活动接口 100 次,如果避免它被反复创立?创立前查看该记录是否存在、应用锁、如果是分布式的应用分布式锁—这样解决了 99.99% 的问题。除了应用这些计划,还能应用什么办法解决吗?
- 讲讲分布式锁的实现
- io 量很大,队列很长怎么办?
- Q: 感觉用过的模板解析引擎有什么不同的特色。A: 用过 JSP 和 Thymeleaf,JSP 我就说适宜 Java 程序员做前端,实质还是 Servlet,生产环境下调试不便;Thymeleaf 是 SpringBoot 我的项目碰到的,实质是 EL,语法非凡,然而前后端传值、传对象不便。
- 讲一下对 jQUERY 的应用感触 A:研一的我的项目做过 iOS 开发,用 OC 做的 webview APP,用到了 jQuery Mobile 做界面和事件管制,感觉很不便。前面的 Web 我的项目次要用来进行 Ajax 操作,选择器很不便。
- 硕士一个我的项目波及到跨系统集成,要我在纸上画出集成逻辑架构,介绍一下开发用到的技术和业务环境。集成用的 WebService,引入 Apache 旗下的 Axis,波及到文件传输和多数据源配置。。。。
- 用过 eclipse、IDEA、Myeclipse,评估一下区别 代码提醒、插件库、免费与收费、代码模板、资源耗费
- 用过 EJB 和 SSH,评估一下区别
- 问了实习经验 理解分布式吗?
- 你怎么用的 websocket?
- 想做安卓还是 java 后盾?手机端安卓怎么开发的?
- activity 四大组件
- 介绍一下 service
- APP 的启动流程
- Android 事件散发机制
- view 的测量方法;
- Android 之间线程通信
- 介绍一个你用心做的模块,我的项目流程,怎么了解异步同步,什么场景用;static 能不能被重写?
- MD5 为啥要加盐 (彩虹表·);UUID 有多少位 (32 位)
对于面试我还本人总结了一面面试真题次要有:蚂蚁金服、拼多多、阿里云、百度、唯品会、携程、丰巢科技、乐信、软通能源、OPPO、银盛领取、中国安全等初,中级,高级 Java 面试题汇合,附带超具体答案,心愿能帮忙到大家。
最初
大家看完有什么不懂的能够在下方留言探讨,也能够关注我私信问我,我看到后都会答复的。也能够关注我的公众号: 前程有光 ,金三银四跳槽面试季,整顿了 1000 多道将近 500 多页 pdf 文档的 Java 面试题材料,文章都会在外面更新,整顿的材料也会放在外面。谢谢你的观看,感觉对你有帮忙的话能够专一我点个赞反对一下!