熬夜布秃头啊 2021-08-06 06:13:13 阅读数:292
======
**1.**JDK JRE
2.?Java异常了解吗?说说平时遇到的异常?说出6种常见的java异常。写程序遇到过哪些异常 运行时异常有哪些
3.?面向对象 面对对象的几大特性 多态怎么
4.?修饰符:public;protect;default;private优先级
5.?对string类的理解。stringbuffer 和 stringbuilder
6.?反射机制介绍一下
7.?bio,nio,aio分别介绍一下,nio的实现方式
8.?问了public等变量定义修饰词的时间域
9.?问了反射机制,还有问了动态代理的好处和坏处,好处答不上来
10.?接口和抽象类的区别。
11.?有一个public static final的HashMap,里边对象的属性能不能修改?
12.?为什么java 平台无关性 机器码和字节码区别 JVM加载代码的一个流程
13.?java数据类型以及自己的应用 自动拆箱和自动装箱以及自己的应用即什么时候用到的,列举几种情况
14.?什么是值传递和引用传递,区别及应用
15.?重载和重写
16.?static方法是否能重写,接口和抽象类的区别
17.?你觉得java是一种什么样的语言以及java特性
18.?lamda表达式了解吗?1.8新特性有什么?(面试宝典对接口抽象这个问题是错的,过时了)
19.?内存泄露怎么造成的,怎么排查
20.?讲讲final修饰符。
**21.**一个对象占多少内存。
22.?最短路径问题
23.?java浅拷贝和深拷贝
24.?内存泄露的原因和处理
25.?java反射机制,优点缺点
26.?说说静态变量和非静态变量的区别,用类名调用静态变量和用实例对象调用静态变量有区别吗?非静态方法里可以有静态变量吗?
27.?static能不能被重写?
重写方法的目的是为了多态,或者说:重写是实现多态的前提,即重写是发生在继承中且是针对非static方法的。
语法上子类允许出现和父类只有方法体不一样其他都一模一样的static方法,但是在父类引用指向子类对象时,通过父类引用调用的依然是父类的static方法,而不是子类的static方法。即:语法上static支持重写,但是运行效果上达不到多态目的
**28.**序列化,反序列化,什么时候用? 如何对一个对象序列化
Java集合类
=======
1.?Hashmap底层(数组+链表+红黑树)hashmap为什么线程不安全,如何保证线程安全,就扯到concurrenthashmap hashmap底层实现 多线程会出现什么情况 扩容机制是什么为什么会死锁 如何解决碰撞 Jdk 1.8的优化。为什么使用红黑树,它是如何做到效率优化的? hashmap了解不,原理是什么,位图了解不,跳跃表了解不,红黑树了解不,红黑树插入过程,B+树了解不,B+树特点和插入过程,邻接表和邻接矩阵区别,分别在什么地方用到,插入和查询的流程。
2.?concurrenthashmap1.7和1.8的区别;concurrenthashmap说说,它是如何保证线程安全的?jdk1.7的hashentry和segment锁。具体说说segment锁?能讲下ConcurrentHashMap的实现原理么 JDK7或者8都行
3.?常用集合类 实现类
4.?list和set区别(重复/不重复)
5.?set,list,map(线程安全的map,map怎么实现之类的)
6.?红黑树介绍一下,跟平衡二叉树比较一下,红黑树有哪些应用场景
7.?你常用的数据结构有哪些?
8.?红黑树的特点,AVL树
9.?一致性哈希函数以及hashmap的put方法
10.?数组、二叉搜索树、B树、B+树
11.?堆和栈。堆、栈
12.?二叉树的最大节点个数;2^n-1;
Java并发
======
1.?java创建线程的方式,runnable和callable区别(参数不同)1. java线程的状态有哪些;线程的几种状态
2.?wait和sleep的区别;wait和notify的使用场景;
3.?介绍一下volatile以及原理;volatile介绍一下Volatile底层是如何实现的? 说了内存可见性和内存屏障,Volatile是绝对线2程安全的吗?不是,没有保证原子性。volatile关键字在线程通信的问题
4.?介绍一下synchornized以及原理; lock和synchornized的区别;synchronized锁的升级过程?Synchronized,底层是如何实现的?说了monitor对象头,以及两个monitorenter和monitorexit运用于代码块。对象头是存储了哪些信息?说说synchronized的锁优化过程?说了偏向,自旋,轻量和重量。
5.?介绍一下AQS;
6.?说一下公平锁和非公平锁的原理;
7.?cas操作是什么,以及可能出现的问题;
8.?线程池,然后你再平时怎么用的,工作原理,有哪些重要参数,饱和策略有哪些;线程池了解吧,说说如何实现线程池?核心参数哪些?有哪些阻塞队列呢?如何优雅的关闭线程池 线程池(线程大小,阻塞队列)线程创建,线程池参数,说说你常用的线程池?说了new ***d 和newFixed。以及介绍各个参数
9.?说说你理解的悲观锁和乐观锁?乐观锁有哪些?乐观锁有什么缺点?
10.?阻塞队列 线程间通信方式 创建线程方式 创建线程池方式 线程池常用参数
11.?锁有哪些
12.?说说你常用的并发包JUI?
13.?问了如何保证多线程通信
14.?你用过Java的J.U.C并发包吧,给我讲一下AQS的原理
15.?CAS的原理给我讲一下,他是怎么保证内存的可见性的。CAS会产生什么问题
16.?知道Java中的内存模型吧,它有8个指令你给我说一下
17.?多线程如何保持同步?
18.?java可见性的关键字及其原理。
19.?cpu密集型多线程和io密集型多线程的比较。cpu密集型里如何管理多线程? 用什么样的线程池和阻塞队列?
20.?cpu线程特别多会产生什么问题?io密集型里怎么减少需要的线程数?
21.?io多路复用的原理和实现。怎么减少处理io(和磁盘io交互)所需要的线程?
22.?线程实现方式。有什么区别。线程之间的通讯,进程之间的通讯。
JVM
===
1.?JVM运行时内存区域划分?哪些线程私有?运行时数据区,私有共享都是哪些?堆区内存如何分配?
2.?对象的生命周期?
3.?JVM垃圾回收器,cms和g1的特点,两者的区别是什么,比g1更加先进的垃圾回收器有了解么,ZGC原理,能够管理多大的内存,CMS能管理多大的内存,G1呢
4.?JVM内存模型 类的生命周期 类加载过程 双亲委派机制了解吗 进入老年代过程 什么情况下直接进入老年代
5.?JVM内存分布(堆栈等,程序计数器+jvm栈+本地方法栈线程不共享,堆和方法区线程共享)
6.?类加载机制,过程,类加载机制?如何自定义实现类加载器?双亲委派模型、类加载器类别,双亲委派模型本质是解决了什么问题?安全性,有哪几种类加载器?类加载的流程。知道哪些类加载器。类加载器之间的关系?双亲委派模型。为什么使用双亲委派模型?
7.?垃圾回收算法,常见的垃圾回收器及他们之间区别,垃圾回收发生在哪里,怎么判断对象存活、GC Roots具体有哪些、讲讲对象分配与回收,什么可以作为垃圾回收的对象,垃圾回收算法和流程。
8.?栈什么情况下会溢出?
9.?静态变量存放在内存哪个区域?
10.?怎么查看java虚拟机内存占用?
11.?如何减少full gc的次数?方法区是否需要gc
12.?4个引用类型
计算机网络
=====
1.?输入一个url后的过程;浏览器从发送请求的全部过程
2.?OSI七层和TCP四层协议,OSI七层模型/五层模型,每一层有哪些协议,http,tcp,ip位于哪一层
3.?TCP三次握手四次分手,tcp四次挥手为什么要四次,为什么TCP是安全的,TCP,UDP的区别
4.?TCP报文结构,HTTP结构, TCP,UDP,HTTP的报文格式(我懵了)
5.?设计一个应用层协议(没有答出来
6.?HTTP协议连接过程,HTTPS连接过程,HTTP的长连接是怎么做的HTTP2和HTTP1区别,HTTP请求过程http的几种方法,HTTP跟HTTPS的区别,https加密过程
操作系统
====
1.?程序,进程和线程的区别
2.?什么时候情况下要用多线程?
3.?进程之间怎么通信的?
4.?一个手机应用程序里面的进程和线程分别是怎么进行的?
5.?死锁,怎么解死锁,死锁条件,怎么预防
6.?进程的状态:阻塞+就绪+执行
7.?手机内存8g,是32位的,一个进程能申请多少内存?
8.?线程的应用,举例,线程的阻塞
9.?主线程和子线程的区别
Linux :
=======
1.?linux中如何查看CPU负载 top
2.?linux用过嘛(扯到了我训练过深度模型,小哥哥直接来了个场景题)场景题:推荐算法中如何控制广告推送频率(结合强化学习说了一些
3.?Linux了解不,df dh区别,如何格式化磁盘,磁盘挂载过程,tcp丢包如何排查,docker是用什么实现的
4.?怎么查找特定后缀名或前缀名的文件
Mysql
=====
1.?数据库引擎事务隔离级别,串行化如何实现,数据库的隔离级别?四个。你平常使用的是哪个隔离级别。数据库隔离级别以及分别解决了什么问题
2.?MySQL的存储引擎有哪些?它们之间的区别?你用的mysql存储引擎?为什么选择它?实现原理?
3.?怎么判断一个SQL语句有没有走索引?紧接着问explain知道哪些字段吗
4.?mysql存储模型 区别 怎么看用没用索引 怎么判断sql语句好坏
5.?数据库中索引B+树
6.?一个手机应用要更改数据库,它的底层是怎么实现的?
7.?sql查询过程
8.?MySQL InnoDB存储引擎中的MVCC解决了什么问题,能说下MVCC的实现原理么
9.?SQL语句经常写吧,那我给你出一道SQL题(分组求和排序)
10.?你认为什么情况下不应该建立索引
11.?mysql有几种锁?怎么实现?
12.?innodb事物的级别
13.?b 树的结构?与二叉树的区别?与b树的区别?
14.?写过最复杂的sql, 手写代码: 统计各个科目考试最高分:最复杂的包括了sum、case、left join、group by,追问左连接和内联区别,没答上来
15.?聚簇索引跟红黑树
16.?sql :给一个日期范围,统计每天入库的数据总量
17.?sql语句里like和in关键字
18.?sql语句,求平均分超过60分的学生学号
19.?数据库sql怎么优化20.?什么情况不能用索引?
21.?SELECT column_name(s)FROM table_nameWHERE column_nameBETWEEN value1 AND value2 什么时候会发生死锁;怎么解决死锁;N个资源怎么办?
redis
=====
1.?你知道redis的什么东西
2.?redis中zset,说了一下跳跃表的插入,删除过程;
3.?位图知道原理嘛(操作系统中的位示图还是bitmap?不太了解)
4.?redis数据类型,redis的应用场景,为什么redis快
5.?Redis的key的写入和删除的原理
6.?怎么保证Redis的高可用
7.?redis数据结构?单线程还是多线程?
8.?用什么样的队列?你是怎么实现?我回答的redis的list实现的)这种队列有什么缺点?
9.?分布式锁;
mq
==
1.?你还用过rabbitMQ呀,它能够做什么?
2.?rabbitMQ是怎么保证消息不丢的,从客户端—消息队列, 消息队列—服务器端的角度考虑
spring
======
1.?开源框架有哪些了解的 为什么用spring 为什么不用new就可以自动生产 能不能自己实现一个
2.?spring security是干嘛的,原理是啥,jwt干啥的3.?后台用什么框架?ioc,aop,其他还有什么框架也可以做到ioc,aop(2333~不就spring?)4.?Spring IOC,AOP,注解
设计模式
====
1.?双重检索单例
2.?设计模式分为哪三类,各有什么?设计模式,用过哪些设计模式,讲几个,设计模式和原则
3.?代理模式属于哪一类
4.?生产者消费者模式,生产消费者的,以及多生产者同步
5.?描述适配器,写单例
6.?单例模式,装饰模式,
分布式
===
1.?负载均衡的算法有哪些;
2.?rpc dubbo的组件有哪些
3.?分布式事务,CAP定理,有没有使用过相关的产品
4.?zookeeper了解吗
5.?hbase索引的结构,kafka存储的结构,二进制文件的组织方式,kafka如何避免消息**丢失,zookeeper在kafka中是干啥的,kafka在zookeeper中存储的数据,zookeeper了解不,zookeeper的共识算法,分区后如何解决。
6.?protobuf了解不,grpc了解不,用的什么协议,HTTP2和HTTP1区别,websocket建立连接过程
7.?RPC你了解过吗?
8.?如何分布式存储?
算法
==
1.?排序算法有哪些,简述冒泡和归并排序,冒泡算法的优化,讲讲归并排序,冒泡的优化知道吗;回答相等不交换,还有flag做已排序标志的优化;直接插入排序,写一下伪代码或者说一下思路,插入排序,时间复杂度
2.?堆排序原理
3.?快排,快排是什么思想,快排的优化是啥,为啥这么做;
4.?字母排序
5.?100个数中找出想要的数
6.?一个数组分成2个相等或接近的子数组
7.?派单的最短路径问题
8.?很大的数据,内存放不下,如何快速找到中间值
9.?手撕栈
10.?链表找环 链表找环入口,不用双指针怎么做
11.?双向链表实现 ,写了个add()和add(index)的
12.?求数组的全排列
13.?中序遍历,递归非递归
14.?求四个数绝对值的最小值
15.?黑猫白猫,混在一起,如何把他们区分开? 黑白灰三种猫混在一起,如何按照黑白灰排好序? 还有两个小问题忘记了。
16.?如何用一个int值,表示三种状态?
其他
==
2021年的金三银四一眨眼就到了,对于很多人来说是跳槽的好机会,大厂面试远没有我们想的那么困难,摆好心态,做好准备,你也可以的。
另外,面试中遇到不会的问题不妨尝试讲讲自己的思路,因为有些问题不是考察我们的编程能力,而是逻辑思维表达能力;最后平时要进行自我分析与评价,做好职业规划,不断摸索,提高自己的编程能力和抽象思维能力。
资料领取方式:点击这里免费获取
BAT面试经验
实战系列:Spring全家桶+Redis等
其他相关的电子书:源码+调优
面试真题:
版权声明:本文为[熬夜布秃头啊]所创,转载请带上原文链接,感谢。 https://blog.51cto.com/u_15300828/3289770