2019.09.10 一面
- hashmap的实现原理?
数组加链表
- hashmap的扩容是怎么做的?
当容量到达一个负载因子时,总容量的0.75,就会2倍扩容,然后重新调整位置。
- ConcurrentHashMap 和 HashMap 相比的差别?它是怎么保证线程安全的?
ConcurrentHashMap底层采用CAS操作,线程安全
- 你了解的设计模式有哪些能说一下吗?
单例模式,工厂模式
与,或,异或
- 动态代理用 JDK Proxy 和 CGLib 有什么区别?
- Java 的位操作(& | ^)能说一下吗?
- 一个数组,里面的数字都是成对出现的(有两个一样的),只有一个只出现了一次,有什么方法可以找出这个单独出现的数?
- 数据库索引的原理?(索引的数据结构)
B+ 树
- 分页查询的过程是什么样的?
- 当表很大的时候,有什么方法可以优化最后几页的查询?考虑数据只有逻辑删除,没有物理删除的情况,即,不考虑删除操作。
- 索引覆盖知道吗?
- redis 里hash数据结构,怎么给其中的一个 field 赋值?
- 如何保证多次重复 post 操作只做一次?
- linux 的命令知道哪些?
- 网络端口怎么看?
netstat -an
- 远程登陆的命令?
ssh
- 如果要在日志中查一个关键字,可以怎么做?
grep '关键字' 日志
- 工作中遇到问题会怎么解决?
- 自己对工作环境的要求是怎么样的?
2019.10.12 二面
- Object 类里面的方法有哪些?
- wait() 和 notify() 方法的实现原理?和类中其他方法的实现有什么不同?
- native 方法知道吗?自己写过吗?
本地方法
- String 的 toString() 方法是怎么实现的?
- String 和 StringBuilder 有什么区别?(说一个可变一个不可变)
- 为什么 StringBuilder 可变,String 不可变?
String 的byte数组有final关键字
- StringBuilder 和 String 有长度限制吗?
- Java中的反射是什么?如何通过反射的方式获取一个对象实例?
- 获取一个类的Class对象的方法有哪些?
- 使用 JSON 进行数据交互的好处有哪些?
- 常用的 json 数据处理工具有哪些?
- RPC 了解多少?
- Spring 框架为 web 开发者做了哪些事情?
- 简历中写到嵌套事务,使用的场景是什么?
- 嵌套事务不一定安全,有什么方式可以保证多个数据库操作的最终一致性?(面试官:分布式事务一致性问题,消息中间件是一种解决方式)
- MySQL索引的数据结构有哪些?
- MySQL 为什么选用 B+ 树做索引?
- 如何进行 SQL 优化?
- 写sql:学生表、课程表、成绩表。1)查每个学生的平均成绩和学号;2)查询总分大于500分的学生的姓名和总分。
- 实现二叉树的后序遍历。
- 自己平时的学习方式是怎么样的?
京东提前批
一面
- 项目构成
- 作为项目组长怎么分工的
- 采用什么开发
- 讲讲volatile,可见性举个例子
- 你说你了解juc,你说说juc,举个例子
- ArrayList和LinkedList
- 设计模式,项目中运用了吗
- 说说你的优势吧
- 说了自己喜欢看基础,面试官说那是底层,是加分项,
- 应该重运用,不能纯理论
- 最后问了面试官建议,让我多运用运用,底层是加分项,首先得基础好
8.13 智能供应链部一面
- 自我介绍
- jvm内存模型,GC
线程独有的虚拟机栈,本地栈,程序计数器,线程共享的有堆,方法区
- 类加载机制
双亲委派机制,类加载器分为启动,扩展,应用程序,类加载的时候先调用其父类方法,父类加载不成功,在调用当前方法
- ClassLoader的分类
启动,扩展,应用
- JDK1.8新特性,主要问了流Stream
- hashmap
- 聊聊框架,SpringBoot,spring,springmvc三者关系
- spring AOP
- 基于spring的应用,我想让这个程序启动之后,然后再打印一个log,或者一个定时任务,这个怎么实现
- AOP 两种代理的区别,什么时候用
- mybatis的一个接口,一个xml文件,执行SQL语句是怎么实现
- synchronized和volatile
- maven的scope有几种
- MySQL优化
- Redis的数据类型
- 项目经验,登录页面怎么做的,越细越好
- 后台怎么获取到登录人的
- 我说了requestparam,好像不是很好
- 后台怎么获取到登录人的
- cookie和session
8.14 智能供应链部二面
- 项目
- 根据项目负责的一些点提新的需求让我设计
- MySQL索引B+树问题,为什么B+
主要就是项目问的多
贝壳找房(三轮面过后挂)
至今提前批的现场面,流程快,每轮面试间隔就5分钟,屁股都没有坐热,面完之后,自我感觉挺好的,问的也不难,9.4问HR结果,挂了
8.24:
一面:
- 自我介绍
- 项目
- 手撕反转链表
- Java基础你还了解哪些
- 我说了多态的两种形式
- 看过ArrayList和LinkedList源码
- AOP
- tcp三次握手
- 索引你用过吗
- 高并发知识你了解什么
- 说了synchronized、ReentrantLock、volatile
- volatile的原理知道是什么吗?
- 我说了JMM,面试官说不是
- volatile的原理知道是什么吗?
- 说了synchronized、ReentrantLock、volatile
- 线程池几种你了解过吗
- 说了几种线程池
- 继续问我线程池的区别,线程池参数的各自含义
- 什么时候才会达到最大线程数
- 说了几种线程池
- GC说一说吧
- 类加载机制
二面:感觉很重业务运用
- 自我介绍
- 抽象类和接口的区别
- 能不能用一个设计模式来说明
- 设计模式你都了解哪些
- int和Integer区别
- Session和cookies的区别
- HTTP在哪一层
- 我说了应用层
- HTTP的状态码说一说
- OOA,OOD,OOP是什么说一下
- 数据库的乐观锁和悲观锁了解吗
- 如果给数据库加行级锁,怎么操作
- 索引了解吗
- 高并发说一说吧
- 我说了synchronized、volatile、ReentrantLock
- 说说你的优点和缺点吧
- 你认为最开心和最难过的事是什么
- 你认为有什么书对你影响比较大,不限类型
- 有什么想问我的
HR面:
- 你感觉前两轮面试如何
- 你家里人对你工作的看法
- 想去什么公司
- 了解贝壳吗
- 优缺点
- 为什么不考研
- 能提前来实习是吧
- 有什么想问我的
阿里(二面挂):
菜鸟网络内推
8.22:一面:
- 全程就撕项目,提新的需求给方案
- tcp udp区别
- session和cookie区别
8.26:二面:
- 哈夫曼树原理
- 一致性哈希算法
- UDP不可靠会丢包,为什么还用它
- 后面就是开始聊人生了,具体忘记了
8.28:拒信:
多益网络(挂)
7.17一面:
-
自我介绍
-
互联网加班怎么看?
-
项目
-
给定一个正整数n, 输出1到n的所有排列
输入 3
输出
123, 132, 213, 231, 312, 321 -
用什么语言开发?
-
如果让你建议小白学习Java,你推荐看什么书?
- Java核心技术卷和视频相结合
-
Java的缺点,跟c++和c比?
- Java比c++慢
-
排序算法,哪些是稳定的
-
解决哈希冲突的方法?
-
有其他公司的offer吗?
- 没有,目前就投了多益
-
做了我们的IQ测试,感觉如何,感觉难不难,是不是提前时间完成的
Bigo(二面挂)
9.2一面:
-
自我介绍
-
分代收集算法
-
什么参数能够调整新生代的比例?
-
如何一个程序频繁的发生Full GC,有什么办法改善这个情况?
-
标记-清除和标记整理区别?
- 程序发生内存泄漏,你会怎么去查这个问题?
- 讲一下hashmap的数据结构吧
- ConcurrentHashMap
-
Java如何实现线程池
-
Java实现线程同步有哪些方式?
-
原子类你用过吗?
- 用过,AtomicInteger,底层是用的CAS实现的
- CAS怎么实现的
- CAS本质性实现原理是什么?
- 是这样的,但是不是我想问的,哈哈哈(邪恶的笑)
-
进程和线程调度算法?
- 讲讲数据库吧,数据库引擎
- select count(*) form 表 用哪个引擎快一点
- 组合索引是a,b,select 语句 where b = 1 and c = 2
- like 走索引吗
- 邪恶一笑,where a = 1 ,b = 2 OR b =3 走索引吧
- 如何查看慢查询
- 如何查看SQL语句的每一个查询计划,就是每一步消化多少毫秒
-
你自己还可以讲一下其他SQL语句优化
-
Redis基本数据类型
-
发现服务器上TIMEWAIT(我听成摊位)状态的TCP过多是什么问题?
-
说说项目吧,不用太详细,讲一个难点吧
9.12二面:
- 根据前序中序生成树
- 还有一个算法题忘了
- 线程池参数,execute(),里面那个是实现了什么接口
- 单例模式
- 设计题:在控制层,记录访问次数,每次访问,count++,我说这个不安全,加锁可以保证安全,他说还有其他的吗
滴滴(目前没有收到结果,也没有二面)
9.16:一面(1小时20分钟)
-
Java集合说一说吧set ,list,map都问了一遍
-
TreeSet和HashSet区别
-
hashmap和concurrenthashmap
-
线程池用过没,线程池的参数什么意思,每个都问了一遍
-
拒绝策略说一说
-
synchroBlockQueue 到底可以存几个
-
锁用过没
- 锁的什么方法你用过
- lock和tryLock区别
-
lock的公平锁和非公平锁的怎么实现的(源码级别),不限于概念
-
类加载机制,不是类加载几个过程
-
如果多个类加载器加载同一个类,会出现什么情况
-
tomcat的加载过程
- spring的生命周期,不是bean
-
AOP
-
ASM怎么实现cglib
-
mybatis的插件用过没,
-
项目,
背景:暂存数据,每一次把用户填写的数据暂存到数据库,暂存字段,0暂存,1正式存
-
如果实现a用户暂存数据1,b用户暂存数据2,实现a下次只能看见数据1,
给car表加一个操作人字段,每次判断
-
car表怎么设计的,
id,车牌号,xxx,xx,暂存标记
-
car表主键是什么
主键id
-
主键id有什么规则吗?
自增长
-
如果一个车牌号重复了,添加的时候怎么处理的
每次填入的时候,都会在数据库里查询一下,判断是否有
-
如果4个人同时填入车牌号为888的车,怎么处理这个问题
叭叭叭半天,给添加这个操作加锁,给判断重复车牌号方法加锁,
-
加锁为消化资源,你考虑一下在数据库进行操作吧
叭叭了隔离级别,说了mysql默认隔离级别(可重复读)
此时感觉不对了,没有get到点上了
-
隔离级别是解决什么问题的啊
并发的时候问题,叭叭脏读等问题,
-
隔离级别什么时候才出来啊?
不知道
这个点没有回答好
-
-
数据库索引,索引类别
唯一索引,聚簇索引,非聚簇索引
-
聚簇索引和非聚簇索引区别
-
二叉树和B+树的区别
- 那如果把二叉树弄成,所有数据都存在叶子节点呢
- 那如果平衡二叉树呢
- 怎么减少IO操作的
- 磁盘上所有文件都是B+树存储吗?
-
磁盘上怎么存储这些数据的
-
你了解什么文件格式
- Linux操作系统了解过吗
- Linux命令用过哪些
- Linux根目录下有哪些文件夹
-
手撕翻转树,递归+递推
-
手撕最小路径和
网易互娱(目前没有收到结果,也没有二面)
9.26 一面:27分钟
-
自我介绍
-
面向对象聊聊吧
-
构造函数能不能继承
-
Java基本类型
-
那基本类型的比较用什么进行比较的啊,是否比较
-
对象比较呢
-
对象的比较是用的什么原理比较吗
-
hashcode了解过吗
-
简单介绍一下list和set的区别吗
- 查找大量数据里是否存在某一数据
- 优化高效的办法
-
项目
-
MySQL语法,海量数据分页吧,用什么实现
-
MySQL常见的引擎,两者区别
-
查询效率来说,哪个快一点
- MySQL用的什么版本,5.5和5.7版本的一个区别
- 平常用到json吗?