面试之大厂面经

2021.3.31
java:
抽象类和接口区别
重写和重载区别
linux如何查询硬盘空间大小,如何只查询日志的前三行
mysql table和view的区别,sql语句如何一次性插入三条语句
left join right join union on
mybatis xml文件如何进行表的关联
新生代和老年代的区别
实现多线程的方法
线程池的了解
反射
继承和接口区别
python:
元组和列表的区别
全局变量
传参问题 *arg 列表 **args 字典 固定参数与可变参数

java的四种引用方式,区别
syscon 和lock 区别
hashmap和hashtable区别,哪个线程安全,怎么变得安全 事务角度
接口和抽象类的区别5个方面 泛型角度
关系型数据库非关系型数据库区别,从结构和扩展方面
linux源码 三种态
进程和线程

https://www.nowcoder.com/discuss/689630?type=post&order=time&pos=&page=1&ncTraceId=&channel=-1&source_id=search_post_nctrack

阿里面试:
项目要有规划,数据库表结构,表与表的关系,幂等性怎么实现
StringBuilder和StringBuffer的区别?
重载和重写的区别?
线程里面sleep和wait方法的区别?sleep和wait要不要对对象加锁?
wait() 是 Object 的方法,而 sleep() 是 Thread 的静态方法;
wait() 会释放锁,sleep() 不会。
1、sleep是线程中的方法,但是wait是Object中的方法。
2、sleep方法不会释放lock,但是wait会释放,而且会加入到等待队列中。
3、sleep方法不依赖于同步器synchronized,但是wait需要依赖synchronized关键字。
4、sleep不需要被唤醒(休眠之后推出阻塞),但是wait需要(不指定时间需要被别人中断)。
JVM怎么加载class文件?
JDBC在操作数据库时的过程,步骤?
加载JDBC驱动程序
提供JDBC连接的URL
创建数据库的连接
创建一个Statement
执行SQL语句
处理结果
关闭JDBC对象
MyBatis怎么连接数据库的?
JDBC是什么,有没有用过?
索引有没有用过?
数据库的事务的特性?
数据库事务的隔离级别?

瓜子二手车:
hashmap put过程,string的哈希值计算,string数据类型的组成
线程池,参数,什么时候放到队列,队列满了放哪里
异常怎么分类
mysql存储引擎,区别
三次握手,为什么握手三次,挥手四次
aop使用的什么设计模式
可重入锁是什么,怎么实现
操作系统内存页面抖动是什么,页是什么
redis支持的数据结构,zset的底层原理是什么
不用redis,怎么实现一个排行榜

西山居:
自我介绍?个人认为应该大概介绍一下自己的工作经验和项目经验,概述一下做了什么。
介绍项目,项目中的难点怎么解决的
集合类有什么了解,介绍一下
hashmap的底层原理了解吗
concurentmap底层原理了解吗,1.7和1.8有什么区别,怎么实现的
线程池了解吗,有AB两个线程怎么去设计,有ABCD四个线程,D要等ABC运行完了再运行怎么设计?
和线程同步控制类似。
https://blog.csdn.net/yoonerloop/article/details/81154596?utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-1.control&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-1.control
mysql索引是怎么实现的,为什么要用B+树?
https://mp.weixin.qq.com/s/vwHkXGNCdRdx8k7BeBMy9w
sql语句怎么优化?索引怎么设计,优化?
synchronized和lock有什么区别?
JVM怎么分区的?
内存泄漏是什么?内存泄漏和内存溢出有什么区别?
内存溢出 out of memory,是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory;
内存泄露 memory leak,是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄露危害可以忽略,但内存泄露堆积后果很严重,无论多少内存,迟早会被占光。
memory leak会最终会导致out of memory!
乐观锁和悲观锁是什么,怎么实现的?

狮桥面试:
实习支付模块怎么实现的?
List和Map的特点和区别?
TreeMap是有序的吗?
ArrayList和LinkedList的区别?
redis的数据类型?zset的应用场景?排行榜动态更新怎么处理?
lock和syn的区别?
数据库索引?索引分为哪些类?聚集索引和非聚集索引?
https://www.cnblogs.com/starcrm/p/12971702.html
数据库你还知道哪些内容?
String a=new String(“abc”);新建了几个对象?
switch可以用字符串吗?
equals和的区别?
1)对于

如果作用于基本数据类型的变量,则直接比较其存储的 “值”是否相等;
如果作用于引用类型的变量,则比较的是所指向的对象的地址;
2)对于equals方法
注意:equals方法不能作用于基本数据类型的变量
如果没有对equals方法进行重写,则比较的是引用类型的变量所指向的对象的地址;
诸如String、Date等类对equals方法进行了重写的话,比较的是所指向的对象的内容。
spring的事务了解吗?
spring的事务和数据库的事务有什么区别?
mybatis $和#有什么区别?
异常包括哪些?exception下面包括哪些?什么是sql exception?
引用类型有哪些?应用在哪?
重载和重写的区别?
抽象方法可以重载或重写吗?
抽象方法和借口有什么区别?
接口和抽象类都是继承树的上层,他们的共同点如下:1) 都是上层的抽象层。2) 都不能被实例化3) 都能包含抽象的方法,这些抽象的方法用于描述类具备的功能,但是不比提供具体的实现。他们的区别如下:1) 在抽象类中可以写非抽象的方法,从而避免在子类中重复书写他们,这样可以提高代码的复用性,这是抽象类的优势;接口中只能有抽象的方法。2) 一个类只能继承一个直接父类,这个父类可以是具体的类也可是抽象类;但是一个类可以实现多个接口。

京东:
自我介绍
你个人的优点和缺点?
对京东的认识,和阿里的区别
集合类用过哪些?
hashmap有哪些了解?concurrenthashmap有哪些了解?
rpc框架用过哪些,底层怎么实现的?
jvm内存模型?
垃圾回收的算法有哪些?
outofmemory怎么分析?
mysql存储引擎有哪些,有什么区别?
隔离级别?默认用得哪个?
聚集索引和非聚集索引?
springmvc的过程?
IOC和AOP介绍一下?
AOP怎么实现的?
JVM的内存划分
TCP/IP七层模型介绍一下?三次握手四次挥手过程?
redis几种数据结构?持久化机制几种?热点数据的问题碰到过吗?

有赞:
自我介绍
int几个字节?
链表和数组有什么区别?
有序数组怎么查找比较快?
链表怎么处理可以达到和数组一样的查找时间复杂度?
i++怎么变得线程安全?
AtomicInteger怎么保证安全?
ABA问题?怎么解决?
怎么加锁?
syn加在对象和类上有什么区别?
syn和lock有什么区别?
应该用哪个?
innodb怎么实现的?
b+和哈希索引有什么区别?
哈希有什么问题?范围
组合索引(联合索引)一个联合索引,A,B where条件 b>1 and a>1 能用上索引吗?
一个联合索引,A,B where条件 a>1 and b>1 ?
mybatis #和$有什么区别?
#怎么防止sql注入?
为什么要使用redis?
为什么内存比硬盘快?
什么场景下要用消息中间件?好处是什么?
rabbitmq怎么能不丢消息?怎么保证消费者能收到?
计算机怎么计算5的一千次方比较快?(除以2)时间复杂度?
超级大数相乘怎么计算?
项目中怎么存储密码的?(md5或者哈希)加密算法的区别?
登陆注册行为怎么到后端的?具体一点?根据ip怎么找到后端的这台机器?ip的解析过程?

海信
微信登陆怎么实现的?(appid appsecret)
序列化怎么实现的?
full gc怎么实现的?System.gc()会马上执行吗?

小鹏汽车
电子专业,java是自学的吗,怎么学的,有自学过一些东西吗
java内存模型,堆里面的内存怎么划分的,新生代和老年代有什么特点
fullgc的整个过程
spirng ioc是怎样的一个思想,通过什么方法把对象注入到容器(bean)中去的
aop了解吗,具体说一下在开发中怎么用aop来实现一些功能,怎么定义切点的,怎么把切面注入进去,怎么在controller中使用这个切面(怎么让切面生效),有具体应用过吗
aop底层逻辑怎么实现的,什么代理方式,动态代理和静态代理的区别
了解微服务架构吗,有应用过吗,怎么使用的,feign用什么方式进行通信的,通信方式是什么,rpc底层通过什么方式实现的,怎么在程序中实现你调用一个方法就能用另一个地方的方法,是一种什么样的技术
什么情况下会发生线程安全问题,怎么解决线程安全问题
hashmap线程安全吗,有什么替代方案
hashmap和concurrenthashmap有什么区别,concurrenthashmap怎么实现得线程安全,底层数据结构是什么
mysql有哪些搜索引擎,区别
事务的隔离级别,这几个级别分别解决了哪些问题,读取未提交的数据引发的问题叫什么,什么是幻读
链表查询,inner join left join的区别
一张表存了uid字段,username字段,有一些username是相同的,查询username相同的用户数量大于2的用户有多少
给数据库的表加索引的时候遵循哪些原则,索引越多越好吗,为什么不是越多越好,索引过多的时候哪些sql耗时会长
建立索引的最左匹配原则,selec c from whiere c=1 and b=2 and a=3会用上a,b,c的索引吗(应该是可以)
select * form table1 where a=2 and b>3 and c=4这种索引应该怎么建立?
http和https的区别,建立https连接的过程,客户端发起https请求跟服务端建立连接的一个过程,怎么实现的加密通信
redis常用的数据结构,list和set有什么区别,set和zset有什么区别
怎么通过redis来实现一个分布式锁
职业规划
平时有什么学习计划吗,有长远一点的吗
平时有用到linux环境吗
为什么想干java,而不是ai
接触过git吗,跟别人协作过吗,有分支吗

依图:
项目中的kafka了解的多吗
kafka topic broker partition 关系,代表什么 offset,partition有看过吗
对集合的了解
list包含哪些,arraylist和ilnkedlist有什么区别
为什么arraylist在添加和删除的时候比linkedlist慢
arraylist,指定大小为10,元素数量到10后,再添加一个后会发生什么
知道的排序算法有哪些
快速排序和归并排序思想,时间复杂度,手写快速排序
手写二分法查找有序数组,时间复杂度多少
static关键字有什么理解,修饰什么的时候,类加载的时候会存放到哪里
JVM堆和栈里面都存放什么数据

字节:
实习做的事情,登陆注册模块怎么做的,登录态是怎么在浏览器和服务器之间传输的,为什么离职
软件保护项目用来做什么的,验证通过的流程是什么样的,加密解密用得什么,私钥存在什么地方,java和c++怎么通信的,从用户层面说一下验证交互的流程,你做的java这块和c++的交互,许可池模式下用户怎么使用的
tcp和udp协议有什么区别,tcp怎么保证的可靠性,三次握手和四次挥手怎么能够保证的呢
怎么理解可靠的,什么才叫做可靠,怎么保证消息不缺失
http和https的区别,ssl证书是什么,怎么通过证书来判断是否安全
数据库的事务了解吗,事务是什么,四大特性是什么
事务的隔离级别,分别解决了什么问题,脏读,不可重复读,幻读解释一下
主键索引和其他的索引有什么区别,数据结构有什么区别
写一个sql,distnct关键字是用来干什么的
hashmap底层数据结构,数据结构里面都存了什么,具体怎么实现的
扩容后,什么时间进行数据的转移
继承和多态是什么,子类可以继承父类的哪些东西,所有的属性和方法都可以继承吗,private,protected,public,default都可以继承吗
写编程题,数组暴力法,用什么方法来调试代码

快手:
介绍一下map,底层实现怎么扩容的,扩容的话7和8有什么区别,头插法和尾插法有什么好处和缺点
java的集合,arraylist怎么能变得线程安全
进程和线程的区别
java的内存模型,有哪几部分,线程私有的部分,共有的部分
多个线程访问共享资源会产生什么问题,什么是线程不安全,怎么让线程安全
syn怎么实现的,在哪实现的(jvm),通过jvm的什么机制实现的
lock介绍一下
用Java多久了
mysql引擎有哪些,区别,innodb是怎么支持事务的,通过什么方式支持事务的
mysql的索引有哪些
spring有什么特点,我们为什么要用spring,说一下ioc和aop
spring的事务,怎么管理数据库事务的,声明式事务有哪些注解,用过吗,切面啊,切点啊之类的
算法题,链表是否有环

京东:
app解决了什么问题,用到了哪些java的技术框架
java常用的数据结构
hashmap的实现原理,扩容如何实现,扩容的时候数据怎么迁移过去的,通过什么方式迁移的(一条一条迭代还是分组还是多线程还是内存游标)
JVM的内存管理,fullgc实现过程,如果判断这个对象要放到老年代,标志在哪维护,什么标志,根节点什么时候维护类的调用关系,类运行时怎么告诉root节点。
实习过程中java的技术栈,技术框架

携程:
手写快排
CMS垃圾回收过程
三色标记法(黑白灰)
什么是回表
主键索引又叫什么索引
mysql索引的数据结构,b树可以吗
线程有哪几个状态,五态
就绪态持有资源吗
volatile做什么的
redis setnx和setex区别是什么,为什么nx可以加分布式锁
布隆过滤器了解过吗
冒泡排序时间复杂度,是稳定的吗
hashmap的resize()的加载因子默认多少,怎么避免频繁的resize

完美世界
自我介绍
static
final
重载和覆盖
集合类,多线程的了解
syn和lock区别
线程池原理,四种拒绝策略以及应用场景
组合索引select * from table1 where a=1 and c=2; 索引a,b,c
索引分为哪些,b+树索引又分为哪些,非聚集索引又分为哪些
自己定义的类String a=new String(“abc”);能编译通过吗
两个线程交替打印奇偶数

百度
自我介绍
hashmap介绍一下,链表什么时候升级为红黑树,什么时候降级为链表,new HashMap(17),17什么意思呢,什么时候扩容,容量不够64怎么样,为什么,怎么解决线程安全问题,还有其他方案吗
concurrentmap怎么解决的线程不安全的问题
syn和lock的区别
syn怎么实现的,具体描述对象头里面的标志位怎么变化的,a线程获得到锁,b线程会怎么样,锁升级的过程,什么时候升级判断条件是什么
lock底层是什么,aqs是什么
公平锁和非公平锁,怎么实现的
非公平锁,a的锁释放掉,b,c,d哪个可以得到锁
lock用过哪些实现的锁,还有呢
并发的压力测试,100个线程同时访问接口怎么实现
class a 1234方法,12是static方法,34是普通方法,都用syn修饰,
A a A b new了两个对象,调用A a 的1方法,b的哪些方法不能被调用
调用A a 的3方法,b的哪些方法不能被调用 为什么呢
静态方法锁的对象头信息是什么
调用A a 的3方法,b可以调用4号方法吗,为什么呢
线程池有什么理解,参数有哪些,你会用工具类创建线程池吗,工作原理
mysql数据库事务隔离级别,为什么默认是可重复读呢,各自都有什么问题
什么是幻读
mysql的可重复读也有幻读问题吗
mvcc是什么,版本号是要手动设置吗,怎么判断版本号,从哪里获得呢
mysql的索引是什么,b+树的样子描述一下,+体现在哪,还有呢
索引a,b,c,where b= and a= and c= 会走索引吗,为什么
a= and b> and c=
设计一张表的话,主键怎么设置,为什么呢
有一张人员信息表,里面有账号,密码,昵称,手机号。登录要有一张表,应该设置哪些索引
这样只用两列的值,你是要把这些列都读到内存里吗,你的联合索引怎么设置呢
手机号登录,昵称登录,邮箱登录应该怎么设计表?手机号/邮箱/用户名登录,这种多种方式登录怎么设计?手机号和昵称有可能是一样的,后台应该怎么办呢?
不同登录方式的id怎么关联起来的,微信登录和你原来的id怎么关联起来的
他又问手机号和昵称有可能是一样的,你该去搜索哪一列
每个用户可以设置三个不同的用户名你该怎么设计,加三个列吗?(同一行)
三合一登录你该怎么办,你也不知道用户输入的是会员名还是手机号,他俩可能是一样的
sql执行时间比较长,怎么优化呢
explain分析需要关注哪些列呢
覆盖索引知道吗
redis用过吗,可以用来做什么
已关注的人要存在redis中吗
分布式锁用过吗,原理是什么
设置了锁,服务器挂掉了怎么办
释放锁怎么释放,直接删掉是吗
unlock的原理怎么释放的
spring循环依赖,可以启动吗
三级缓存具体
一个service里面两个方法a,b,a上有个事务注解,a调用b,b里面报了错,a会回滚吗
事务注解在什么时候会回滚呢
new一个对象,对象的内存分配顺序,分配在堆的哪一部分,分配到堆之前有什么操作
三个天气站,客户端会请求后台,后台从三个天气站,会找到一个最快返回我结果的天气站的数据返回给我的客户端,怎么来实现这个后台

三一:
哈希碰撞的四种解决方法
数组和链表的区别
arraylist和linkedlist扩容时的区别
堆和栈的区别
怎么确定对象是否要被回收,可达性分析的根节点怎么找
进程是什么,拥有哪些资源
进程通信的方式
进程切换,操作系统会有哪些操作,进程上下文里面有什么
数据库默认隔离级别是什么,什么叫可重复读
mysql索引
a,b索引 select * from table1 a= in呢
http请求头里面的keep alive是什么,用来做什么的,哪些场景
tcp和udp的区别
jvm垃圾回收的方式有哪些,老年代用哪种
linux,git,docker用过吗,docker有哪些命令,docker的作用
spring和springboot的区别
spring和springboot有哪些注解
syn和volatile的区别
volatile怎么实现的可见性
快速排序描述一下
除了javac外还用过哪些命令
b+树最多有几层,可以存放多少数据量

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值