前言
这篇记录一下今年在vivo面试的准备所有面经,我给大家简单的做了一个分类汇总,本来是用来为vivo二面提前做准备的,谁知道一面都没过,现在人还在人才库里。 我还是很想去vivo的,希望下次能有机会吧。
vivo 面经汇总
Java基础
**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.