原子性,一致性,持久性,隔离性
- 学校项目用了哪些技术栈
- 讲一讲ssh协议的源码???
-
线程最底层的数据结构是什么???
-
java虚拟机运行的流程
-
java虚拟机的核心设计思想???
-
非关系型数据库和关系型数据库的区别?
-
http如何保存登录信息
一个进程至少包含一个线程
-
进程之间通信的5种方式
-
算法题:寻找两个有序数组的中位数。
- 知识图谱如何寻找相距一个点距离为2的点
-
阻塞式io和非阻塞式io的区别
-
如何加快数据库查询速度
-
聚集索引和非聚集索引的区别
-
什么时候不该使用索引?
-
算法题1:对单链表进行排序
-
算法题2:给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。求跳到最后一个位置的最小次数。(跳跃游戏2)
-
写代码1:写出hibernate二级缓存源码(我选择死亡)
-
Java线程池有哪些参数?
-
设计题:假如有10亿个数,只有一个重复,内存只能放下5亿个数,怎么找到这个重复的数字?
-
写代码2:寻找单链表的中点(一遍扫描)
-
java有几种基本类型,分别是什么?
-
当一段代码被try catch后再发生异常时,aop的异常通知是否执行,为什么?
-
java中线程创建有几种方式
-
redis有哪些数据结构
-
java序列化的框架有哪些?
-
设计题:如何设计一个秒杀系统(服务端、数据库、分布式)
- 分别讲解M、V、C的各部分
-
四次挥手中客户端何时关闭
-
redis内存满了怎么办
-
redis内存淘汰算法除了lru还有哪些
-
用过哪些linux命令
-
算法题:中序遍历非递归
-
封装、继承、多态的含义
-
算法题1:判断二叉树B是否是二叉树A的子树
-
说出时间复杂度为O(N)的排序算法
-
说出项目用的三种设计模式
- 怎么保证同样的账号同一时间只能在一处登录
- 注销了浏览器客户端页面会不会立刻断开
- 为什么游戏里断线页面就立刻会变化
-
如何保证报文的加密传输
-
如何在项目里使用https协议
freewheel的实习同样走过了hr面,到了录用审批,hr还加了我的微信,可惜最后依然没有过,因为hc只有一个,给了一个北邮的同学。
- 对(a,b,c)加索引,查询ab、ac、bc有没有用?
-
算法题1:求x的n次方(最优解)
-
算法题3:学生表(id,姓名) 科目表(id,科目名,分数)求每个学生最高分的科目和姓名
- 人员权限管理怎么具体实现
- linux查看内存使用情况
-
算法题:给定一个单链表 L:L0→L1→…→Ln-1→Ln ,
(需要实际的进行节点交换)
-
设计题:10亿篇文章,如何找出其中出现次数最多的100个词。
备注:你有10台计算机,每台大概都只能存放总数据量的10分之一
9、深信服星耀计划(实习)
-
画出java运行时内存区结构图
-
类加载器为什么是组合而不是继承
-
redis有哪些数据结构
-
单链表查找复杂度O(n)
-
写出跳表空间复杂度的推导公式
-
如何设计好的hash函数
2. 程序计数器的作用
当前线程所执行的字节码的行号指示器
3. 虚拟机栈里放了什么
描述的是Java方法执行的内存模
型:每个方法在执行的同时都会创建一个帧栈(Stack Frame)用于存储局部变量表、操
作数栈、动态链接、方法出口等信息。每一个方法从调用直至执行完成的过程,就对应着
一个栈帧在虚拟机栈中入栈到出栈的过程。它的线程也是私有的,生命周期与线程相同。
4. 类加载器的双亲委派
如果一个类加载器收到了类加载请求,它首先不会自己去尝试加载这个类,而是把这
个请求委派给父类加载器去完成。每一个层次的类加载器都是如此,因此所有的加载请求
最终都应该传送到顶层的启动类加载器中,只有当父类加载器反馈自己无法完成这个加载
请求(它的搜索范围中没有找到所需的类)时,子加载器才会尝试自己去加载。
5. 为什么需要双亲委派
Java 类随着它的类加载器一起具备了一种带有优先级的层次关系。 例如:类
java.lang.Object,它存放在 rt.jar 中,无论哪一个类加载器需要加载这个类,最终都是委
派给处于模型最顶端的启动类加载器进行加载,因此 Object 类在程序的各种类加载器环境
中都是同一个类(使用的是同一个类加载器加载的)。相反,如果没有使用双亲委派模
型,由各个类加载器自行去加载的话,如果用户自己编写了一个 java.lang.Object 类,并
放在程序的 ClassPath 中,那么系统将会出现多个不同的 Object 类,Java 类型体系中最
基础的行为也就无法保证,应用程序也将变得一片混乱。
16. 精通哪些消息队列???
17. 精通哪些大数据工具???
18. 精通哪些分布式框架???
11、中兴捧月面试大赛
2、每个项目都做了什么
(那时候我还没去实习,写了好多项目,小的也写上了)
3、知识图谱如何实现。
5、接口和抽象类的区别。
7、三次握手四次挥手。
8、进程和线程的区别。
9、说说你知道哪些数据结构?
10、项目中用了哪些设计模式?
12、解释装饰器模式?(之前没说这个)
13、设计题:10亿个数快速寻找中位数
2、vivo提前批后端
技术面:软件工程师(后端方向)
4、对string类的理解。接口和抽象类的区别。
5、静态变量存放在内存哪个区域?
7、说出6种常见的java异常。
8、多线程如何保持同步?
11、怎么查看java虚拟机内存占用?
12、JAVA内存如何分配?
13、堆区内存如何分配?
14、程序计数器的作用?
15、垃圾回收算法和流程。
17、方法区是否需要gc
19、知道哪些类加载器。
20、类加载器之间的关系?
21、双亲委派模型。为什么使用双亲委派模型?
3.1 双亲委派模型的工作过程:
如果一个类加载器收到了类加载请求,它首先不会自己去尝试加载这个类,而是把这
个请求委派给父类加载器去完成。每一个层次的类加载器都是如此,因此所有的加载请求
最终都应该传送到顶层的启动类加载器中,只有当父类加载器反馈自己无法完成这个加载
请求(它的搜索范围中没有找到所需的类)时,子加载器才会尝试自己去加载。
3.2 使用双亲委派模型的好处:
Java 类随着它的类加载器一起具备了一种带有优先级的层次关系。 例如:类
java.lang.Object,它存放在 rt.jar 中,无论哪一个类加载器需要加载这个类,最终都是委
派给处于模型最顶端的启动类加载器进行加载,因此 Object 类在程序的各种类加载器环境
中都是同一个类(使用的是同一个类加载器加载的)。相反,如果没有使用双亲委派模
型,由各个类加载器自行去加载的话,如果用户自己编写了一个 java.lang.Object 类,并
放在程序的 ClassPath 中,那么系统将会出现多个不同的 Object 类,Java 类型体系中最
基础的行为也就无法保证,应用程序也将变得一片混乱。
22、mysql有几种锁?怎么实现?
24、你用的mysql存储引擎?为什么选择它?实现原理?
26、b加树的结构?与二叉树的区别?与b树的区别?
27、redis数据结构?单线程还是多线程?
28、cpu密集型多线程和io密集型多线程的比较。
29、cpu密集型里如何管理多线程?
30、用什么样的线程池和阻塞队列?
31、cpu线程特别多会产生什么问题?
32、io密集型里怎么减少需要的线程数?
33、io多路复用的原理和实现。
34、这个还不够,怎么减少处理io(和磁盘io交互)所需要的线程?
35、用什么样的队列?你是怎么实现?
36、(我回答的redis的list实现的)这种队列有什么缺点?
37、既然有这样问题,为什么不用rabbitmq?(我说我偷懒了。。。)
38、io量很大,队列很长怎么办?
39、如何分布式存储?
40、你还有什么问题问我?
问基础知识,不是特别简单,需要知道一些原理和实现。整体难度和vivo类似。
涉及到网络协议、mysql、多线程、类加载、gc、hashmap、红黑树、b加树、手写设计模式、spring启动原理等方面的各种知识。
详细询问简历上的内容,包括科研,项目和实习。从你用的模型,框架,数据库,缓存等各方面仔细地问,包括原理还有实现,还会给项目出新的情景问题(需求)问你的解决方案。还有关于redis和mysql的各方面包括实际应用问了很多。
从各个方面聊你的生活情况,人生规划等。我感觉展现真正的自己,实话实说就好。
-
大对象放在哪个内存区域
主要的GC算法包括:标记清除方式、复制收集方式、引用计数方式。
用于存储局部变量表、操
作数栈、动态链接、方法出口等信息。
-
哪些对象可以作为GC Root
-
Java怎么实现多线程?
-
Java创建线程的方法?
-
线程池分几种?拒绝策略有哪些?
-
Mysql知道几种存储引擎,有什么区别
-
Innodb的行级锁的实现
-
Innodb的行级锁有几种
-
Redis单线程还是多线程,为什么?
-
Spring动态代理默认用哪一种
-
写代码:写出spring jdk动态代理的实现。
-
了解TreeList吗?底层实现?
-
说一说你了解的红黑树。
-
i加加是不是原子操作,为什么
-
带版本号时的插入删除过程是什么?
-
脏读和幻读的区别是什么?
-
GC中老年代用什么回收方法?
-
Linux如果cpu满了,用什么命令?
-
找到线程之后用什么命令?
-
算法题1:二叉树后序遍历非递归
-
算法题2:链表如何判断有环,链表有环求长度
- String是基本类型吗?
- Wait()是线程的方法吗?
- 项目中使用多线程的场景
-
算法题:如何判断一个数是不是2的整数次幂?
- 介绍实习内容和你做了什么
- 线程同步的实现方式(抛开语言,操作系统里)
- 操作系统的线程/进程调度
- 说三种排序算法(快排、堆排、归并)
- 讲一下其中两种的原理(堆排、归并)
-
算法2:有环链表求环长度
- 说UDP的一个实际应用场景
- TCP的流量和拥塞控制
- Mysql事务是怎么实现的
-
算法3:求二叉树两个节点的最近公共父节点
- Socket可能超时的情况
-
算法题1:连续子数组最大和
-
算法题2:二叉树的右视图
- 重新设计整个项目上传功能
- 实习中用到了哪些设计模式
- redis在项目里怎么用
- 具体怎么写,增删改查流程是什么
- 分布式准备拿什么框架做
- 对java虚拟机的理解
- 为什么hashmap链表要转红黑树
- 为什么要把字符串常量池放到堆区
- java8方法区的变化
- 为什么不选择读博而是工作