回馈一下,一个菜逼的2018秋招后台岗面经合集
大家好,首先我来介绍下自己,
本人dota2mmr4500,王者峡谷四赛季嘴强王者……
开个玩笑,本人读研以后才开始写代码,基础很烂。去年大约3月份开始准备秋招相关的知识,水平菜心态炸。这段时间牛客网还有各位给了我很大的帮助,现在是时候回馈一下了,希望能对准备春招的各位有所帮助。
百度提前批3面
关键字:
final、finally、finalize,final能不能保证线程安全;
static和内存泄露问题;
jvm:
创建一个对象的的过程;
内存模型;
注解的解析在什么时候,生效的时间;
Java对象存在哪里?(堆,极少部分栈上分配,运行时常量池);
集合:
hashmap底层结构、扩容、定位、链表环问题,concurrenthashmap与hashtable;
多线程:
wait、sleep;
为什么要有interruptedException;
Spring:
Bean的生命周期;
Spring boot与spring的差别;
AOP的实现;
前端:
什么是跨域,如何解决跨域(两次请求);
计网:
NIO、BIO、AIO区别;
负载均衡:
一致性哈希是什么,与哈希取余的相比的优势,虚拟节点;
算法:
求开方;
循环求斐波那契,时间复杂度;
爬楼梯问题;
抢红包问题,如何保证每个人所得期望一致;
找矩阵中一个2*2的子矩阵,它的元素和是所有相同大小子矩阵中最大的;
非技术问题:
自我介绍,主要说说自己的优势;
说说老板的问题(因为面试中导师来电话把我骂了一顿,所以面试官就顺便了解一下);
阿里内推电话1面:
有兴趣来杭州吗?没有。好的再见。
美团1面
项目:
java字符编码(unicode);
char占多大,能放中文字符么;
httpclient具体在哪个包;
textrank公式、什么时候迭代终止?
Spring:
Spring boot和spring的差别;
算法:
顺时针打印2维数组;
iHandy:
操作系统:
进程线程协程的区别;
集合:
Hashmap、concurrenthashmap;
Jvm:
如何判断一个对象要不要回收(可达性分析),gc root是什么;
内存模型,哪些是线程私有的,哪些会被gc影响到;
垃圾回收器知道哪些,cms和g1的区别,g1结构
猫眼2面:
Jvm:
内存模型;
方法区和直接内存什么时候会oom;
Jvm调优用过吗?
如何查看java内存使用情况(jconsole、命令jmap、jstack等等)
集合:
Arraylist、linkedlist差异,应用场景;
多线程:
线程的几种状态;
wait、sleep;
volatile如何实现指令重排序;
线程池中的阻塞队列如果满了怎么办(拒绝策略);
Spring:
什么是DI、为什么DI、DI的类型(构造器注入、方法注入);
Spring boot和spring的差别,tomcat如何嵌入spring boot的/spring boot中的tomcat是如何启动的;
Spring如何解决循环依赖问题;
数据库:
ACID,具体是啥意思;
事务隔离级别;
幻读和不可重复读的区别;
Mysql和mongodb有啥区别;
计网:
RPC和http的区别;
输入一个url到返回页面的过程(可以多说一些,比如https、icmp、arp等等);
幂等性;
算法:
找数组中出现次数大于一半的数字;
顺时针打印2维数组;
顺丰:
使用过哪些中间件;
项目:
你的爬***法么;
目前多用户同时调用下载模块时的问题,如何改进;
数据库:
Mysql的聚合函数;
算法:
判断一个数是不是2的整数次幂;
别的忘了;
京东:
集合:
Arraylist扩容过程,如果频繁扩容会怎么样;
多线程:
线程的几种状态;
volatile使用场景(读写并发、或可能产生指令重排序问题的地方);
拒绝策略;
Mysql:
Join(inner、left、right);
Union和union all区别;
如何查看语句执行细节(explain)
算法:
找不重复数组中第二大的数;
快手:
算法:
实现Long.valueOf(String str),异常要抛出;
高效求2的32次幂;
求n!结果中尾部0的个数;
集合:
Hashmap什么时候使用红黑树(size>=64&&链表长度达到8),链表环问题,定位逻辑;
Concurrenthashmap中segment大小、读写;
Arraylist、linkedlist区别,CopyOnWriteArraylist;
多线程:
Synchronized和AQS异同,AQS公平非公平如何实现;
基本类型:
不同情况下int、Integer的==、equals产生的结果;
知乎:
算法:
两个不含相同数字的数组,求排序后第k个数,要求复杂度小于O(m+n)(leetcode no.4);
LRU实现(最佳数据结构是链表);
2叉查找树找两个节点的公共父节点;
实现hashmap的delete(Node);
集合:
Hashmap、concurrenthashmap;
数据库:
ACID,详细说;
计网:
状态码2345开头代表啥;
别的忘了;
腾讯:
深浅拷贝、软弱引用什么的,别的记不太清了
贝壳:
算法:
一个不含重复的数组,找每个位置后面比这个位置里面的数字大的第一个数的索引;
We are family翻转成family are we;
Spring:
Bean的生命周期;
别的忘了;
便利蜂3面:
#面经##秋招##Java工程师##便利蜂##知乎##快手##猫眼#
多线程:
线程池,参数,内部的线程数量变化过程,拒绝策略;
线程池工厂类里面的四个线程池;
同步:
synchronized和AQS实现、异同;
多线程里面对一个整型做加减为啥不能用volatile;
Spring&tomcat:
Spring boot启动过程;
dispatcherservlet;
拦截器和过滤器的区别;
AOP及实现,为什么需要cglib
MySQL:
建立索引有什么原则
为什么是最左前缀原则
给你ABC三个字段,考虑如何建立索引
mongodb的特点,存储结构
Mysql事务隔离级别,innoDB中repeatable read特点(gap lock)
一个含有insert的事务回滚,里面的自增主键会不会回滚,为什么(不清楚。猜猜?不会。为啥?如果回滚时出现并发问题再插入记录时id可能会变小,不符合增长特性。猜的还挺对)
算法:
二叉树宽度遍历
集合:
concurrenthashmap里面的get和put需要加锁么,为啥;
计网:
四次挥手(谁先发起?客户端。为啥?我想一下。好。如果是服务端发起会blabla。还有吗?还会发生blabla的问题。嗯);
如何保证数据包传向正确的目的地
操作系统:
unix如何创建子进程?
什么是僵尸进程,如何解决