回馈牛客!各大公司java面试整理对应问题博客整理!
Posted 招聘消息汇总
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了回馈牛客!各大公司java面试整理对应问题博客整理!相关的知识,希望对你有一定的参考价值。
回馈牛客!各大公司java面试整理对应问题博客整理!
来源:牛客网
回馈牛客!各大公司java面试整理对应问题博客整理!
阿里:
1.分库分表
2.数据库中间件
3.MyCAT是一个强大的数据库中间件,不仅仅可以用作读写分离,以及分表分库、容灾管理,而且可以用于多租户应用开发、云平台基础设施
4.高并发请求处理
5.高流量限流
6.多线程
7.concurrentHashMap
8.CAS
9.乐观锁
10.mysql limit分页如何保证可靠性
二面 7月26日(22分钟):
1.http是否需要多次建立tcp连接?https://blog.csdn.net/huangyuhuangyu/article/details/78220005
2.如果RPC的注册中心挂了怎么办?
3.RPC两端如何进行负载均衡?
4.MQ推拉模式,优缺点
ActiveMQ是一个消息中间件,对于消费者而言有两种方式从消息中间件获取消息:
Push方式:由消息中间件主动地将消息推送给消费者;
Pull方式:由消费者主动向消息中间件拉取消息采用Push方式,可以尽可能快地将消息发送给消费者 而采用Pull方式,会增加消息的延迟,即消息到达消费者的时间有点长但是,Push方式会有一个坏处:如果消费者的处理消息的能力很弱(一条消息需要很长的时间处理),而消息中间件不断地向消费者Push消息,消费者的缓冲区可能会溢出。
1.MySQL数据库索引那些?
2.组合索引怎么用?
在对表需要进行查询或者排序***作时,可以对表中某个或者某几个字段添加索引,对一个字段添加索引就是单个索引,对多个字段添加索引时就是组合索引。从前往后依次使用生效,如果中间某个索引没有使用,那么断点前面的索引部分起作用,断点后面的索引没有起作用;
京东
一面:
1、HashMap、concurrentHashMap底层原理把知道的都说一遍
2、线程池把知道的都说出来
3、线程同步(synchronized、volatile、ReenreantLock、ThreadLocal)
4、设计模式把知道的说一遍
二面:
1、Java基本数据类型
整型 byte(1字节) short (2个字节) int(4个字节) long (8个字节)
浮点型 float(4个字节) double(8个字节)
逻辑性 boolean(八分之一个字节)
字符型 char(2个字节,一个字符能存储下一个中文汉字)
byte->short , char->int->long
float->double int ->float long->double 小可转大,大转小会失去精度。
2、arrayList、linkedList底层原理以及其区别,各自的使用场景
4、HashMap有哪些缺点、是不是线程安全的、扩容
5、红黑树、b树、b+树底层原理
6、索引采用b+树和HashMap的区别,使用场景,数据库为什么用b+树做索引,而不用HashMap
7、数据库隔离级别以及各种隔离级别有可能会产生什么问题
腾讯
1.问项目,真的是细,细的有些我自己都忘了(千万要知道项目的细节)
2.说一下线程池这一块?(讲了线程池的几个参数以及几个线程池的细分)
3.Java提供了几个类加载器?分别是?怎么对类进行加载的?
4.hashCode知道是干什么的吗?如果要你重写,需要注意哪些点?
SUN官方的文档中规定"如果重定义equals方法,就必须重定义hashCode方法,以便用户可以将对象插入到散列(哈希)表中"
在集合框架中的HashSet,HashTable和HashMap都使用哈希表的形式存储数据,而hashCode计算出来的哈希码便是它们的身份证。哈希码的存在便可以:
快速定位对象,提高哈希表集合的性能。
只有当哈希表中对象的索引即hashCode和对象的属性即equals同时相等时,才能够判断两个对象相等。
从上面可以看出,哈希码主要是为哈希表服务的,其实如果不需要使用哈希表,也可以不重写hashCode。但是SUN公司应该是出于对程序扩展性的考虑(万一以后需要将对象放入哈希表集合中),才会规定重写equals的同时需要重写hashCode,以避免后续开发不必要的麻烦。
重写equals时需要注意满足java语言规范对于equals的要求:
Java语言规范要求equals需要具有如下的特性:
自反性:对于任何非空引用 x,x.equals() 应该返回 true。
对称性:对于任何引用 x 和 y,当且仅当 y.equals(x) 返回 true,x.equals(y) 也应该返回 true。
传递性:对于任何引用 x、y 和 z,如果 x.equals(y)返回 true,y.equals(z) 也应返回同样的结果。
一致性:如果 x 和 y 引用的对象没有发生变化,反复调用 x.equals(y) 应该返回同样的结果。
对于任意非空引用 x,x.equals(null) 应该返回 false。
1.equals与hashCode的定义必须一致,两个对象equals为true,就必须有相同的hashCode。反之,如果两个对象的hashcode相同,equals不一定相同。2.当重写equals方法时,一定要同时把hashcode方法一并重写,因为要保证在实现hash表的扩展性
如果不被重写(原生)的hashCode和equals是什么样的?
2.不被重写(原生)的equals方法是严格判断一个对象是否相等的方法(object1 == object2)。
为什么需要重写equals和hashCode方法?
在我们的业务系统中判断对象时有时候需要的不是一种严格意义上的相等,而是一种业务上的对象相等。在这种情况下,原生的equals方法就不能满足我们的需求了
所以这个时候我们需要重写equals方法,来满足我们的业务系统上的需求。那么为什么在重写equals方法的时候需要重写hashCode方法呢?
我们先来看一下Object.hashCode的通用约定(摘自《Effective Java》第45页)
1. 在一个应用程序执行期间,如果一个对象的equals方法做比较所用到的信息没有被修改的话,那么,对该对象调用hashCode方法多次,它必须始终如一地返回 同一个整数。在同一个应用程序的多次执行过程中,这个整数可以不同,即这个应用程序这次执行返回的整数与下一次执行返回的整数可以不一致。
2. 如果两个对象根据equals(Object)方法是相等的,那么调用这两个对象中任一个对象的hashCode方法必须产生同样的整数结果。
3. 如果两个对象根据equals(Object)方法是不相等的,那么调用这两个对象中任一个对象的hashCode方法,不要求必须产生不同的整数结果。然而,程序员应该意识到这样的事实,对于不相等的对象产生截然不同的整数结果,有可能提高散列表(hash table)的性能。
如果只重写了equals方法而没有重写hashCode方法的话,则会违反约定的第二条:相等的对象必须具有相等的散列码(hashCode)
同时对于HashSet和HashMap这些基于散列值(hash)实现的类。HashMap的底层处理机制是以数组的方法保存放入的数据的(Node<K,V>[] table),其中的关键是数组下标的处理。数组的下标是根据传入的元素hashCode方法的返回值再和特定的值异或决定的。如果该数组位置上已经有放入的值了,且传入的键值相等则不处理,若不相等则覆盖原来的值,如果数组位置没有条目,则插入,并加入到相应的链表中。检查键是否存在也是根据hashCode值来确定的。所以如果不重写hashCode的话,可能导致HashSet、HashMap不能正常的运作、
4.ClassNotFoundException知道吗?遇到场景是什么?怎么解决的?
常见的场景就是:
1 调用class的forName方法时,找不到指定的类
2 ClassLoader 中的 findSystemClass() 方法时,找不到指定的类
3 ClassLoader 中的 loadClass() 方法时,找不到指定的类
二、造成异常的常见原因:
1. 所需要的支持类库放错了地方,并没有放在类路径(CLASSPATH环境变量)里面。
2. 使用了重复的类库,且版本不一致。导致低版本的被优先使用。
3.类名错了,一般是使用Class.forName的时候,手工指定了类名的情况。
4. 没有导入纯JAVA驱动包。
5.NoSuchMethodException遇到过吗?
反射时候会出现,查了下Class的文档,该类下原来有两个方法:getMethod,getDeclaredMethod。看了下说明大概的意思就是getMethod只能调用public声明的方法,而getDeclaredMethod基本可以调用任何类型声明的方法
腾讯音乐(一面,50分钟)后台开发方向
1.讲讲priority_queue的底层数据结构实现过程和原理。
2.讲讲hash的原理,解决哈希冲突的方法。
3.Hash和搜索二叉树的优缺点。
4.一个8g的数据文件,怎样找出积分排名前100的用户(数据内容是一列ID,一列积分,积分是流动的)。
5.如何监听tcp丢包问题。(细节知识点)。
6.TCP和UDP的细节知识点(建立和断开的状态转移)。
7.单链表找倒数第n个节点,说所有你能想到的方法。
9.线程和进程的区别以及优缺点。
腾讯音乐 (二面 20分钟)
1.select上限?
1024个套接字(编译内核可以达到65536个)
2.三次握手过程?第三条丢了会怎样?有什么现象?
3.http报头格式?
4.如何解析http报头?
5.子进程和父进程怎么通信?
6.怎样判断是子进程?
7.http有哪些方法?返回状态码?
8.Linux下如何查看端口号?
9.用过哪些linux命令?
腾讯 (二面)
1.怎么把一颗二叉搜索树原地变成一个双向链表?
2.怎么判断一个无符号的整数是不是2的n次方?
3.timewait出现在什么时候?怎么查看那些进程处于timewait状态?
netstat -a | grep TIME_WAIT | wc -l
4.没有timewait会怎样?https://blog.csdn.net/hzrandd/article/details/74463313
顺丰一面面经
1、hashmap底层实现?有哪些是线程安全的?当冲突的时候怎么解决?当hash值相同时,怎么进行比较?
2、concurrentHashMap怎么实现?
3、数据库索引有哪些?底层怎么实现的?数据库怎么优化?
4、http解释一下?tcp/udp解释一下?
5、OOM说一下?怎么排查?哪些会导致OOM?
https://blog.csdn.net/u010256841/article/details/41121755
https://blog.csdn.net/damaolly/article/details/30243125
JVM初始分配的堆内存由-Xms指定,默认是物理内存的1/64;JVM最大分配的堆内存由-Xmx指定,默认是物理内存的1/4。默认空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制;
空余堆内存大于70%时,JVM会减少堆直到-Xms的最小限制。因此服务器一般设置-Xms、-Xmx 相等以避免在每次GC 后调整堆的大小。
6、volatile讲讲
7、多线程的锁?怎么优化的?偏向锁、轻量级锁、重量级锁?
8、哪些设计模式?装饰器、代理讲讲?
9、redis集群会吗?
阿里:
mysql存储引擎
事务隔离级别
不可重复度和幻读,怎么避免,底层怎么实现(行锁表锁)
https://blog.csdn.net/gaoshan_820822/article/details/4582561
事务四个特性
i++和++i满足原子性么
类加载机制 三种加载器(双亲委派) 三种加载器怎么协同工作? 加载过程? 类初始化五种情况
Java容器层次结构
Object类的方法 12
map怎么实现hashcode和equals,为什么重写equals必须重写hashcode(扯回HashMap的put***作。源码)
同步机制synchronized 重入锁
synchronized底层实现原理:(monitor)字节码层面 同步方法和同步代码块不一样!https://www.cnblogs.com/paddix/p/5367116.html
对象锁是用来控制实例方法之间的同步,类锁是用来控制静态方法(或静态变量互斥体)之间的同步。
J.U.C体系结构(java.util.concurrent)
https://blog.csdn.net/hp910315/article/details/50963095
什么是Spring IOC和AOP的实现原理
Spring事务管理方式
https://blog.csdn.net/bao19901210/article/details/41724355
https://blog.csdn.net/chinacr07/article/details/78817449
SpringMVC是什么 原理
什么是servlet 生命周期 一个项目model可以有多个servlet么
Servlet是一种独立于***作系统平台和网络传输协议的服务器端的Java应用程序。
https://www.cnblogs.com/whgk/p/6399262.html
设计模式 项目中用过哪些 工厂模式 单例在项目中怎么应用 懒汉饿汉(各写一个)
1.面向对象--举例理解
2.数据结构--设计实现KV结构,查找算法,树
3.网线断了tcp连接情况
4.java 中static理解,final理解
5.主从同步。
6.treeSet,红黑树
7.JVM,GC垃圾回收机制,垃圾收集器。
8.threadLocal
京东:
1.一面整个过程中,面试官都在问我的项目
2.主要问了我三个项目,其中用的技术,分布式文件,分布式储存,工作流等
3.spring的源码
4.springMVC的整个流程
5.mybatis与Hibernate的区别
6.js的怎么实现面向对象
二面:
1.java与c++的区别,知道多少答多少
2.hashMap源码与currenthashmap源码,1.7与1.8 的区别
3.hashmap在并发情况下,会出现什么问题
4.给了一个场景题,说怎么实现每隔一秒在控制台输出一句话
https://zhidao.baidu.com/question/2011460338755023108.html
5.java多线程怎么实现的
https://www.cnblogs.com/felixzh/p/6036074.html
6.java虚拟机的内存模式
7.怎么打破双亲委派模式
https://www.cnblogs.com/wxd0108/p/6681618.html
https://www.jb51.net/article/102920.htm
8.java虚拟机怎么识别是符合标准的class文件,魔数
每个Class文件的头4个字节被称为魔数,它的唯一作用是用于确定这个文件是否为一个能被java虚拟机所接收的Class类文件,即用于判定文件是否是符合规范的java Class文件。虽然说后缀名“.class”可以表明文件是一个Class文件,但是文件后缀名是可以随意被改动的,基于安全的考虑,很多文件都通过魔数值来唯一确定文件类型,java的Class文件魔数是:0xCAFEBABE.
https://blog.csdn.net/u011958281/article/details/78176980
9.mysql的索引用过吧?
10.介绍一下索引?怎么使用索引的?
11.B树与B+树的底层
12.数据库怎么实现分库分表
13.消息中间件用过吗?主要的作用是什么? (项目)待解决
14.我看你简历上面写了前端,我们来问一下前端的知识
15,js的数据类型有哪些? 5个
16.dom对象与js对象、jQuery的区别
17,jQuery对象和js对象之间的互相转换
https://blog.csdn.net/zc474235918/article/details/50300411
18.js中事件触发的流程,怎么阻止冒泡
window.event.cancelBubble=true e.stopPropagation()
19.怎么预防用户的多次点击事件
(1).防止重复点击可以添加标记,第一次点击后变为false,每次点击判断这个标记是true才执行
(2).如果是按钮防止重复点击,可以再按钮点击后,给按钮添加disabled属性,按钮就再也点击不了
20.你用过哪些服务器 tomcat nginx
21.tomcat和nginx的配置文件,你怎么配置的。
https://blog.csdn.net/Neil_Wesley/article/details/51307676
阿里
· 分布式事务 2pc
· Java内存模型
· 堆和栈
· concurrenthashmap在1.8和1.7里面有什么区别
· 线程有自己的空间吗,如果有,有多大
· 线程池
· Fork/Join跟线程池有什么区别
https://segmentfault.com/a/1190000008140126
· 讲一下迪杰斯特拉算法的流程 (小甲鱼)
· 讲一下弗洛伊德算法的流程
https://blog.csdn.net/longshengguoji/article/details/10756003
阿里:
1.java的线程安全queue需要注意的点
https://blog.csdn.net/madun/article/details/20313269#commentBox
https://www.ibm.com/developerworks/cn/java/j-jtp04186/
http://yanxuxin.iteye.com/blog/586943
2.加锁需要注意什么 锁优化的思路和方法
http://www.importnew.com/21353.html
3 java无锁原理
http://www.hao124.net/article/52
5. 数据库索引了解原理么?
答:从b+树说b+和b比的优势,又提到了innodb和myisam之间聚簇索引和非聚簇索引之间的区别,优缺点,实际上还可以扯扯hash,联合索引,前缀匹配啥的
问:java相关的框架了解哪些
答:spring,springboot,springcloud,mybatis
问:spring了解些啥?
答:ioc,aop的原理,顺便说了下ioc的好处
问:大量日志去重怎么弄
答:
问:大量整数排序
答:问了是int,觉得直接用bitmap就完了
阿里:
二面面经:
1.死锁的原因,如何避免
https://blog.csdn.net/ls5718/article/details/51896159
2.现代***作系统有完全解决死锁问题吗 bukeyi
http://www.cnblogs.com/shuaihanhungry/p/5671402.html
3.如何找出服务器负载过高的原因
https://blog.csdn.net/yuanlin65/article/details/52663224
(1)找出文件中出现次数TOPK的字符串 优先级队列最小堆
https://blog.csdn.net/L_kanglin/article/details/70500286
(2)判断一个字符串集合是否能连接成环,首尾字符相同则认为可以相连,如abc,cde,ea
https://blog.csdn.net/Yan456jie/article/details/51206096
http://thinkerou.com/2016-06/interview-is-circle-string/
三面面经:
1.常见的GC算法
2.OOM出现在什么时候
https://www.cnblogs.com/baizhanshi/p/6704731.html
3.针对日访问量上亿做出一些优化
https://blog.csdn.net/yang_best/article/details/50893785
https://blog.csdn.net/u012373815/article/details/71435926
https://blog.csdn.net/sun_wangdong/article/details/51137008
4.内存管理方式 (待解决)
https://blog.csdn.net/hguisu/article/details/5713164#commentBox
5.100亿元素排序 https://blog.csdn.net/nigelyq/article/details/52766879
6.常见的设计模式及应用场景
百度智能云 数据库部门
一面:
1 数据库的事务,四个性质说一下,分别有什么用,怎么实现的。。
https://www.zhihu.com/question/30272728
2 讲到了redo和undo日志,问我分别有什么用。
https://blog.csdn.net/kobejayandy/article/details/50885693
3 数据库的隔离性如何保证,使用悲观锁和乐观锁有何区别。MVCC的设计目的是什么,怎么使用版本号判断数据的可见性。
https://blog.csdn.net/whoamiyang/article/details/51901888
4 问了一道算法,1到N的所有数字,按照字典序打印,使用dfs遍历树的每个分支。
https://blog.csdn.net/wumingkeqi/article/details/70940978
https://blog.csdn.net/u011437229/article/details/53188837
5 多线程并发的同步实现,有两个方法,每个方法里有a部分代码和b部分代码,我要让两个线程分别执行两个方法,并且让他们运行完a部分代码再一起向下执行,如何实现。
https://www.cnblogs.com/dolphin0520/p/3920397.html
二面:
1.服务器如何负载均衡,有哪些算法,哪个比较好,一致性哈希原理,怎么避免DDOS攻击请求打到少数机器。
https://blog.csdn.net/Gy__My/article/details/78790280
https://www.cnblogs.com/xrq730/p/5154340.html
https://segmentfault.com/a/1190000004492447
https://www.cnblogs.com/zlhff/p/5459070.html
2.TCP连接中的三次握手和四次挥手,四次挥手的最后一个ack的作用是什么,为什么要time wait,为什么是2msl。
https://blog.csdn.net/weixin_41966991/article/details/81264095
3. 数据库的备份和恢复怎么实现的,主从复制怎么做的,什么时候会出现数据不一致,如何解决。
https://www.cnblogs.com/visec479/p/4103029.html
https://blog.csdn.net/hardworking0323/article/details/81046408
https://blog.csdn.net/nuli888/article/details/52120600
4.Linux查看cpu占用率高的进程
用top命令找到最占CPU的进程
https://www.cnblogs.com/pangguoping/p/5715848.html
https://blog.csdn.net/hrn1216/article/details/51426741
5. 查看占用某端口的进程
(1)、lsof -i:端口号
(2)、netstat –tunlp | grep 端口号
查看某进程监听的端口
(1)、先查看进程pid
ps -ef | grep 进程名
(2)、通过pid查看占用端口
netstat -nap | grep 进程pid
6. 如何查询日志文件中的所有ip,正则表达式
三面(8.3号更新):(linux待解决)
1.Linux,说一下Linux排查问题常用的命令,ps,top,netstat,free,du等等
2.P516 du命令也是查看使用空间的,但是与df命令不同的是Linux du命令是对文件和目录磁盘使用的空间的查看,还是和df命令有一些区别的。
3. Linux的内存管理算法,页面置换算法, lru和fifo,lru有什么缺点。
4. LRU是最近最少使用页面置换算法(Least Recently Used),也就是首先淘汰最长时间未被使用的页面! LFU是最近最不常用页面置换算法(Least Frequently Used),也就是淘汰一定时期内被访问次数最少的页!
https://blog.csdn.net/u011080472/article/details/51206332
https://blog.csdn.net/hguisu/article/details/5713164#commentBox
5. Linux的文件系统了解么,讲了一下inode节点,文件和目录的原理。
https://www.cnblogs.com/xie***/7214502.html
6.shell了解么
7. 进程通信方式有哪些,问我分别怎么使用,管道有哪些类型,各有什么优缺点。
https://blog.csdn.net/wh_sjc/article/details/70283843
8. JVM内存模型
9.gc算法,分代回收。
10.设计模式了解么,说了7种,问我分别怎么用,实际应用过吗
11. MySQL的引擎讲一下,有什么区别,使用场景
https://www.2cto.com/database/201703/616547.html
12.查询最新的10条数据,
select *from table order by update_time desc limit 10
13. MySQL的union all和union有什么区别,
https://www.cnblogs.com/wangyayun/p/6133540.html
14. MySQL有哪几种join方式,底层原理是什么
https://www.cnblogs.com/JohnABC/p/7150921.html
https://www.cnblogs.com/ggjucheng/archive/2012/11/15/2772148.html
15.Redis数据结构和基本原理,
16.Redis的持久化怎么做,aof和rdb,有什么区别,有什么优缺点。
https://www.cnblogs.com/Anker/p/6099705.html
17.Redis使用哨兵部署会有什么问题
https://juejin.im/post/5b7d226a6fb9a01a1e01ff64
https://www.cnblogs.com/mafly/p/redis_cluster.html
https://my.oschina.net/zhangxufeng/blog/905611
https://blog.csdn.net/c295477887/article/details/52487621
18. 用队列计算一个树的高度,我说用层次遍历记录节点高度。
19. 一个黑名单集合,数据量很大,快速查询一个值是否在集合里,怎么设计,布隆过滤器。
https://www.jianshu.com/p/b0c0edf7686e
20.分布式数据库了解么
https://blog.csdn.net/psiitoy/article/details/73201444#commentBox
https://blog.csdn.net/yyd19921214/article/details/68953629
百度智能云 账号和消息部门
一面:
1.讲一下AOP吧
2.动态代理和静态代理有什么区别
3.TCP和IP报文是否会分片,分别在什么情况下会分片。 TCP分包之后是否还会进行ip分片
https://blog.csdn.net/ns_code/article/details/30109789
4. 写一个斐波那契数列 递归式,要求改进
5.讲一下Linux的内存结构,JVM
6.两者的内存如何映射,是什么关系,
http://www.open-open.com/lib/view/open1420814127390.html
二面:
1.OSI七层模型,问了每层的作用,问了wifi属于哪一层。
2. 线程间的同步用什么方式,
https://www.cnblogs.com/XHJT/p/3897440.html
3.使用hashmap时重写哪两个方法,为什么要重写,什么场景下重写。
https://blog.csdn.net/u014590757/article/details/79501332
hashcode用来提高效率的,为速度而散列。因为散列的Set和Map是基于hashcode方法来查找对象的,所以你在使用这些类的时候一定要覆盖hashcode方法,而非散列的Set和Map,例如TreeSet,TreeMap等, 不需要重写hashcode和equals,通过传入比较器。
4.Spring中的ioc和aop。ioc的注解有哪些。
https://www.cnblogs.com/hoobey/p/6961410.html
https://blog.csdn.net/u011277123/article/details/73518774
autowired和resource有什么区别,
https://blog.csdn.net/weixin_40423597/article/details/80643990
5.作用域有哪些。
https://blog.csdn.net/panhaigang123/article/details/79452064
6.autowired如何配置两个类中的一个
@Autowired是根据类型进行自动装配的。如果当Spring上下文中存在不止一个UserDao类型的bean时,就会抛出BeanCreationException异常;如果Spring上下文中不存在UserDao类型的bean,也会抛出BeanCreationException异常。我们可以使用@Qualifier配合@Autowired来解决这些问题
7. Java内存泄漏、内存溢出
https://blog.csdn.net/wisgood/article/details/16818243
https://blog.csdn.net/anxpp/article/details/51325838
https://blog.csdn.net/bigtree_3721/article/details/50550248
http://www.open-open.com/lib/view/open1453730058980.html
百度智能云
一面
1.事务隔离级别有哪些,默认是什么级别。Mysql(可重复读)
2. 僵尸进程和孤儿进程是什么,分别有什么危害。
https://www.cnblogs.com/Anker/p/3271773.html
https://blog.csdn.net/zhangjg_blog/article/details/18319521
3.try catch异常处理的jvm底层是什么?
https://blog.csdn.net/hguisu/article/details/6155636
4.java8新特性
https://www.ibm.com/developerworks/cn/java/j-lo-java8streamapi/index.html
https://www.cnblogs.com/franson-2016/p/5593080.html
二面:
1、jdk1.8 concurrenthashmap 的新的特性,有没有看过源码
2,问了redis扩容,失效key清理策略等
https://blog.csdn.net/men_wen/article/details/72896682
https://blog.csdn.net/wuliusir/article/details/51598372
3,设计一个算法,实现两个10g大文件在10m的内存中将两个大文件中重复的放进第三个文件
https://blog.csdn.net/tiankong_/article/details/77234726
老虎证券面试题目:
1、osi七层结构,每层结构都是干什么的?
https://blog.csdn.net/superjunjin/article/details/7841099
2、ping使用了什么协议,icmp,控制报文协议
3、icmp怎么实现ping的
https://www.cnblogs.com/Akagi201/archive/2012/03/26/2418475.html
最左前缀匹配原则,非常重要的原则,mysql会一直向右匹配直到遇到范围查询(>、<、between、like)就停止匹配,比如a = 1 and b = 2 and c > 3 and d = 4 如果建立(a,b,c,d)顺序的索引,d是用不到索引的,如果建立(a,b,d,c)的索引则都可以用到,a,b,d的顺序可以任意调整。
· =和in可以乱序,比如a = 1 and b = 2 and c = 3 建立(a,b,c)索引可以任意顺序,mysql的查询优化器会帮你优化成索引可以识别的形式
阿里菜鸟物流一面(14分钟):
1、分布式锁是怎么实现的
2、覆盖索引
3、实时查看运行日志了
tail -f aa.log
4、怎么查看系统磁盘大小?(du -h,df -h)
5、怎么查看文件的固定关键字?(cat A.txt | grep key)
6.AQS,问AQS实现原理。问AQS在闭锁,重入锁中的应用。
https://blog.csdn.net/u010358755/article/details/51063527
https://blog.csdn.net/vernonzheng/article/details/8275624
http://ifeve.com/introduce-abstractqueuedsynchronizer/
7、虚拟机怎么实现动态绑定
https://blog.csdn.net/sureyonder/article/details/5569617
8、spring 生命周期
https://www.cnblogs.com/kenshinobiy/p/4652008.html
https://www.jianshu.com/p/3944792a5fff
1.SOA的理解
2.zookeeper的原理
3.zookeeper怎么通信
https://www.cnblogs.com/felixzh/p/5869212.html
4.zookeeper监听器了解吗?7怎么监听
https://blog.csdn.net/hohoo1990/article/details/78617336
5.dubbo的原理
https://blog.csdn.net/qq_33101675/article/details/78701305
https://blog.csdn.net/he90227/article/details/70157046
6.初始化bean干什么你知道吗?IOC容器初始化
7.获取容器的引用,ApplicationContextAware
8.activeMQ了解吗?怎么用
9.activeMQ消息丢失?
10.搭过activeMQ、zookeeper
11.Redis存对象知道吗
https://blog.csdn.net/softwave/article/details/52202199
12.Redis 的list
https://blog.csdn.net/pfnie/article/details/52204840
13. 内存占满了怎么办啊
https://blog.csdn.net/liyanlei5858/article/details/79639274
14.Linux里用的哪些命令,修改权限的命令,7代表什么意思,如果不用数字还可以用什么
15 接口抽象类(Java8中的default)
https://blog.csdn.net/zixiao217/article/details/70197520
16. Swap了解吗
https://blog.csdn.net/x_r_su/article/details/52957559
17.SQL语句中,from,join,where,having,order by,group by,limit之间的执行顺序是怎样的?
https://www.cnblogs.com/Jessy/p/3527091.html
18.synchronized在方法上是对象锁还是类锁
https://blog.csdn.net/jerrywu145/article/details/79821094
19.mysql 索引底层实现,为什么不用红黑树
https://blog.csdn.net/buyulian/article/details/77996253
20.如何优化页面请求速度
https://blog.csdn.net/weightwwc/article/details/5251724
21.从浏览器输入网址到出现网页发生了什么
https://www.cnblogs.com/kongxy/p/4615226.html
22.描述异常类的体系
23.描述集合类的体系
24.多线程的优点,单核CPU是如何调度多线程的,为什么单核CPU调度多线程也能有比较高的效率
https://blog.csdn.net/jia416644/article/details/77367470
二面
1.cookie和session的区别。然后又问session在服务器端具体是怎样的实现的,当session中的数据量过大的时候,主要对服务器的哪些方面造成影响?CPU?内存?网络?
2.javascript中的双等号和三等号的区别
https://blog.csdn.net/ntc10095/article/details/51302920
3. 数据库用到的***作,索引(B+树,B+树与B树区别),增加节点,删除节点,B+树原理
1)nio与bio的区别。
2)nio的实现
https://blog.csdn.net/u013851082/article/details/53942947#commentBox
https://blog.csdn.net/skiof007/article/details/52873421
4)虚拟机,什么时候会进行Full GC。
https://blog.csdn.net/yhyr_ycy/article/details/52566105
5)什么时候需要打破双亲委派模型。
6)一个类的静态块会被执行两次吗?为什么。
https://blog.csdn.net/jimoluoxue2016/article/details/79141389
7)动态代理的实现。
8)cglib无法增强的类,final修饰的类。
https://blog.csdn.net/zghwaicsdn/article/details/50957474
9)spring容器的启动过程。
https://blog.csdn.net/u013510838/article/details/75066884#commentBox
10)数据库隔离级别中可重读读的实现。
https://blog.csdn.net/huanghanqian/article/details/79517480
https://blog.csdn.net/whoamiyang/article/details/51901888
https://www.cnblogs.com/YFYkuner/p/5178684.html
11)什么情况下索引会失效。
https://www.jianshu.com/p/9c9a0057221f
https://www.cnblogs.com/areyouready/p/7802885.html
幻读:间隙锁
https://blog.csdn.net/soonfly/article/details/70238902
1)使用过concurrent包下的哪些类,使用场景等等。
https://blog.csdn.net/lh87522/article/details/45973373
concurrenthashmap1.8
https://blog.csdn.net/u010723709/article/details/48007881
https://blog.csdn.net/universe_ant/article/details/71334648
2)ReentrantLock的实现原理。
https://www.cnblogs.com/xrq730/p/4979021.html
https://www.jianshu.com/p/fe027772e156
3)FutureTask的实现原理。
https://blog.csdn.net/codershamo/article/details/51901057
4)线程池有哪些RejectedExecutionHandler,分别对应的使用场景
画出代理模式与适配器模式的uml类图。(待解决)
5)手写djikstra算法
Mysql知识点
https://www.cnblogs.com/PiPifamily/p/8655458.html
10亿数字找最大100个数,不考虑内存问题
4、存在大量closed_wait有什么危害
http://www.voidcn.com/article/p-kksszaoc-r.html
CLOSE_WAIT状态不会自己消失,除非对应的应用进程死掉,不会消失就意味着一直占用服务器资源,端口总数又只有65535,因此这里的服务器作为连接的发起者就会造成大量端口被占用,一旦占用完就导致后面的请求都发不出去
5、如何设计一个线程安全的hashmap
https://soulmachine.gitbooks.io/system-design/content/cn/hashmap.html
6、mysql写数据的时候,需要先将数据写到buffer里,再写到磁盘里,万一MySQL这时候突然挂了,怎么办?redo undo checkPoint
Nginx服务器(待解决)
7、背包算法
https://blog.csdn.net/a784586/article/details/63262080
8、osi模型,每一层做了什么事情,有什么协议
上传文件不用刷新页面的方案
https://www.nowcoder.com/questionTerminal/a6af4fdfacc347a69e536557a27e4d5b?orderByHotValue=1&page=1&onlyReference=false
9、组合索引?B+树如何存储的?
https://blog.csdn.net/weixin_30531261/article/details/79329722
https://www.cnblogs.com/gengsc/p/7230514.html
10、跳台阶=递归非递归,两种解法
11、生日概率问题
https://www.zybang.com/question/888b12cdab13f8db9d50ac02ea8f5978.html
一面,
1:为什么缓存更新策略是先更新数据库后删除缓存
https://coolshell.cn/articles/17416.html
2:两个线程打印1.2.3.4打印到100怎么实现
https://blog.csdn.net/random_7474/article/details/52770222
https://blog.csdn.net/lmaz007/article/details/8753529
3 spring的aop的实现方式,aspectj和jdk动态代理,cglib动态代理,讲了下实现的原理 (重要)
二面,
1.假如双十一等一些促销有高并发访问量要来访问我们的数据,怎么样做到可靠的服务
https://blog.csdn.net/u011225629/article/details/47393169
2.jvm虚拟机老年代什么情况下会发生gc,给你一个场景,一台4核8G的服务器,每隔两个小时就要出现一次老年代gc,现在有日志,怎么分析是哪里出了问题
https://blog.csdn.net/topdeveloperr/article/details/81303745
三面,7.20:
1消息队列的生产者消费者中消费者没有收到消息怎么办,
https://blog.csdn.net/u010310183/article/details/51683141
2下单过程中是下订单减库存还是付款减库存,分析一下两者的优劣
http://blog.sina.com.cn/s/blog_9841ded30102wizh.html
3 高并发场景的限流,你怎么来确定限流限多少,
https://blog.csdn.net/wangnan9279/article/details/79287646
https://www.jianshu.com/p/2596e559db5c
蚂蚁金服:
1 缓存是怎么使用的,里面存哪些东西,为什么要存这些东西,哪些高并发场景不能使用缓存;
https://blog.csdn.net/dinglang_2009/article/details/53464196
https://blog.csdn.net/simba_1986/article/details/77823309
2 http报文头部是什么,为什么要有版本号,1.0,1.1,2.0的区别,2.0中的多路复用怎么实现会话的串行传输;
https://www.jianshu.com/p/52d86558ca57
https://blog.csdn.net/zhuyiquan/article/details/69257126?locationNum=4&fps=1
3自己设计一个数据库连接池怎么设计;
https://blog.csdn.net/clint2002/article/details/9312125
4 怎么用原生的JDBC访问数据库;
https://blog.csdn.net/xiaozhegaa/article/details/70208646
5 阻塞队列不用java提供的自己怎么实现
https://blog.csdn.net/new_aiden/article/details/72453257
6 拥塞窗口讲一讲,为什么要用慢启动算法;
https://www.jianshu.com/p/e715e439e4d4
1CPU使用率100%怎么分析解决;
https://blog.csdn.net/mrczr/article/details/56834796
https://blog.csdn.net/green1893/article/details/72357032
https://blog.csdn.net/hj7jay/article/details/79000657
补码反码,
https://www.cnblogs.com/author/p/8954127.html
第二批
京东一面(1个小时):
1.快速排序和堆排序对比,快排怎么优化(三向切分,主要用于具有大量重复数据的情况,可以大大提高效)
https://blog.csdn.net/qq_28352347/article/details/69159271
2. jdbc***作数据库流程,如果加入事务,流程又是怎么样
https://blog.csdn.net/weiqianghu/article/details/46761343
3.CAP的理解 分布式详解
https://www.jianshu.com/p/1156151e20c8
一面
1.共享内存是如何实现的,如何保证同步问题
https://blog.csdn.net/u011244446/article/details/52608002
2.进程调度方式
https://blog.csdn.net/nishiwodeangel/article/details/9816667
网易一面:
1、A、B、C并发执行完,D、E、F并发执行实现方式
https://blog.csdn.net/wangtaomtk/article/details/52301892
2、CountDownLatch、LinkedHashMap、AQS实现原理
3、Condition和sychronized实现Condition两种方式有什么区别
Condition的强大之处在于它可以为多个线程间建立不同的Condition
4、Redis集群方式
https://www.zhihu.com/question/21419897
https://www.jianshu.com/p/14835303b07e
5、Redis备份
https://blog.csdn.net/wzzfeitian/article/details/42081969
6、MySQL日志文件
https://blog.csdn.net/zidasine/article/details/5436981
mysql默认存储引擎?MyISAM、InnoDB、MEMORY的区别
http://ailikes.iteye.com/blog/2280546
AQS详细原理
lock公平锁和非公平底层怎么实现的?
https://blog.csdn.net/rickiyeat/article/details/78307739
怎么实现一个线程安全的计数器?用AQS
http://lialun.github.io/2014/06/08/thread-safe-counter.html
http://shifulong.iteye.com/blog/2248131
原子类AtomicInteger实现原理是什么?
https://www.cnblogs.com/qcblog/p/7750388.html
9月6号二面
1.项目中用到dubbo?那你说说什么是rpc框架?和http调用的区别是什么?
https://blog.csdn.net/zhaowen25/article/details/45443951
https://qinjiangbo.com/rpc-services-vs-http-services.html
https://blog.csdn.net/b1303110335/article/details/79557292
2.dubbo的生产者如何发布服务,注册服务,消费者如何调用服务?
https://blog.csdn.net/chao_19/article/details/51764150
3.dubbo的集群容错机制以及负载均衡?
https://blog.csdn.net/hll814/article/details/50891417
4.Redis有哪些数据结构?底层的编码有哪些?有序链表采用了哪些不同的编码?
https://www.cnblogs.com/yangmingxianshen/p/8054094.html
https://my.oschina.net/javahongxi/blog/1524085
5.ScheduledThreadPoolExecutor中的使用的是什么队列?内部如何实现任务排序的?
https://www.cnblogs.com/micrari/p/7643668.html
6.谈一谈ArrayList?如何添加元素的?删除元素后会自动缩小空间吗?
http://www.cnblogs.com/flotang/archive/2018/06/23/9216098.html
7.单点登录?
https://blog.csdn.net/WuCourage/article/details/77802812
8.100的阶乘后面有几个0? 24
https://blog.csdn.net/fightforyourdream/article/details/16338883
9.SpringMVC参数绑定实现原理
http://www.cnblogs.com/w-y-c-m/p/8443892.html
10.200G数据,每一行一个字符串,CPU 8G,排序(分治法、归并)
https://blog.csdn.net/shangqing1123/article/details/47811945
11.200G数字,每一行一个数字 去除重复并排序(位图)
https://www.cnblogs.com/yangjiannr/p/da-shu-ju-chu-libitmap.html
一面:
★mysql的having和内连查询
https://www.cnblogs.com/rollenholt/archive/2012/05/15/2502551.html
https://blog.csdn.net/bingogirl/article/details/52559302
https://blog.csdn.net/u012129558/article/details/51253644
★Linux 相关
1 僵尸进程
https://www.cnblogs.com/Anker/p/3271773.html
2 日志或者字符文件处理命令
https://www.cnblogs.com/zdz8207/p/linux-log-tail-cat-tac.html
https://www.cnblogs.com/aaronLinux/p/8038520.html
3.最短路径的两种算法 (jianboke)
4.图有哪些存储结构
https://blog.csdn.net/wstz_5461/article/details/78290682
5.设计模式了解吗?策略模式?责任链模式?
6.缓存一致性
https://coolshell.cn/articles/17416.html
https://www.cnblogs.com/johnsblog/p/6426287.html
四面
1.出现死锁怎么排查?
https://www.cnblogs.com/aflyun/p/9194104.html
2.如果查看堆内存信息? Jstat jmap
http://www.codeweblog.com/java%E6%9F%A5%E7%9C%8B%E5%A0%86%E5%86%85%E5%AD%98%E7%9A%84%E5%91%BD%E4%BB%A4%E5%8F%8A%E6%96%B9%E6%B3%95/
3.出现OOM怎么排查问题?
https://blog.csdn.net/john8169/article/details/55802651
美团一面:
1.进程间共享内存的方式有哪些?(8种)
https://www.cnblogs.com/wust221/p/5414839.html
2.linux下如何查看网络端口状态(netstat),如何查看内存使用情况(top);
3.给你n个不重复的整数,随机找出m个不重复的整数,要求时间和空间复杂度都是O(m)。(方法很简单,就是每次把取出来的数放到后面,只在前面的数组随机访问就可以了,)。
4.说说mybatis配置了xml过后是如何完成数据库***作的? 底层实现
https://blog.csdn.net/luanlouis/article/details/40422941
https://blog.csdn.net/qq_33824312/article/details/73771008
https://blog.csdn.net/qq_21420941/article/details/61030974
https://blog.csdn.net/wuke929229/article/details/79032506
5. 数据库范式
https://www.cnblogs.com/knowledgesea/p/3667395.html
6. 单例模式的用处,是否所有的共享对象都用单例模式
https://www.cnblogs.com/damsoft/p/6105122.html
https://www.cnblogs.com/tangxiao1996/p/7899393.html
7.哪些情况会触发full gc,full gc是否包括young gc和major gc,如果只包括这两个,为什么要特地做full gc,我回答的是full gc还会回收方法区和堆外内存。
https://blog.csdn.net/chengxuyuanxingcheng/article/details/58729631
http://www.importnew.com/15820.html
8.服务注册中心实现什么功能,消费者的本地缓存如果失效了怎么办
https://blog.csdn.net/xiaohuzi__945/article/details/79606845
9.幻读的避免是如何实现的? 间隙锁
https://www.jianshu.com/p/2953c64761aa
https://blog.csdn.net/ashic/article/details/53735537
10. http请求报文头格式?http长连接和短连接的区别?
11.java的线程和***作系统的线程什么关系
https://blog.csdn.net/cringkong/article/details/79994511
12.hash冲突的解决方式,如何判断各个方式的优劣
大量的 CLOSE_WAIT 会怎么样?
1.占用系统内存
2. 如果连接数满了就不能对相应的对段端口创建连接了
某种情况下对方关闭了socket链接,但是我方忙与读或者写,没有关闭连接。
对称加密与非对称加密区别。
https://www.cnblogs.com/labimeilexin/p/7350448.html
SpringBoot和SpringCloud的理解
Spring Cloud架构
我们从整体来看一下 Spring Cloud主要的组件,以及它的访间流程
1、外部或者内部的非 Spring Cloud目都统一通过API网关(Zuul)来访可内部服务.
2、网关接收到请求后,从注册中心( Eureka)获取可用服务
3、由 Ribbon进行均负载后,分发到后端的具体实例
4、徹服务之间通过 Feign进行通信处理业务
5、 Hystrix负责处理服务超时熔断
6、 Turbine监控服务间的调用和焠断相关指标
Redis多路复用
https://blog.csdn.net/tanswer_/article/details/70196139
算法题:
1.不用pow计算开根
https://blog.csdn.net/lsq_401/article/details/79678187
2.有序数组合并
https://www.cnblogs.com/clarke157/p/6910425.html
3.不用乘法实现乘法
https://blog.csdn.net/chen134225/article/details/81569009
1:求阶乘和
写一下二叉树深度遍历非递归。
https://my.oschina.net/husthang/blog/852982
https://blog.csdn.net/snow_7/article/details/51818580
秋招已大规模开启!
牛客精品面经为你保驾护航!
▼▼▼
更多互联网校招面试经验查看面经大全
▼▼▼
点击“阅读原文”与作者交流吧~
以上是关于回馈牛客!各大公司java面试整理对应问题博客整理!的主要内容,如果未能解决你的问题,请参考以下文章
爆肝整理近 5 年来各大互联网公司 1353 道 Java 面试真题,找工作面试必备!(上万好评)