写点什么

VIVO 一面竟然翻车,含泪整理了这些 Java 面经,看完我悟了

用户头像
极客good
关注
发布于: 刚刚

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 值,表示三种状态?


其他


==


1.?给你 10 个 tomcat 你如何判断自己用哪个(容器?emmmm,求指点)位图知道原理嘛(操作系统中的位示图还是 bitmap?不太了解)所谓的 Bit-map 就是用一个 bit 位来标记某个元素对应的 Valu


【一线大厂Java面试题解析+核心总结学习笔记+最新架构讲解视频+实战项目源码讲义】
浏览器打开:qq.cn.hn/FTf 免费领取
复制代码


e, 而 Key 即是该元素。由于采用了 Bit 为单位来存储数据,因此可以大大节省存储空间。其实就是位示图为原型,01 存储的,建议面试的时候知道多少说多少,知道什么说什么~


2.?序列化相关

用户头像

极客good

关注

还未添加个人签名 2021.03.18 加入

还未添加个人简介

评论

发布
暂无评论
VIVO一面竟然翻车,含泪整理了这些Java面经,看完我悟了