2018java后台各大公司面试笔记

阿里

  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

  1. 如果RPC的注册中心挂了怎么办?
  2. RPC两端如何进行负载均衡?
  3. 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.问项目,真的是细,细的有些我自己都忘了(千万要知道项目的细节)  

3.说一下线程池这一块?(讲了线程池的几个参数以及几个线程池的细分)

4.Java提供了几个类加载器?分别是?怎么对类进行加载的?

5.hashCode知道是干什么的吗?如果要你重写,需要注意哪些点?

   SUN官方的文档中规定"如果重定义equals方法,就必须重定义hashCode方法,以便用户可以将对象插入到散列(哈希)表中

 在集合框架中的HashSetHashTableHashMap都使用哈希表的形式存储数据,而hashCode计算出来的哈希码便是它们的身份证。哈希码的存在便可以:

快速定位对象,提高哈希表集合的性能。

只有当哈希表中对象的索引即hashCode和对象的属性即equals同时相等时,才能够判断两个对象相等。

从上面可以看出,哈希码主要是为哈希表服务的,其实如果不需要使用哈希表,也可以不重写hashCode。但是SUN公司应该是出于对程序扩展性的考虑(万一以后需要将对象放入哈希表集合中),才会规定重写equals的同时需要重写hashCode,以避免后续开发不必要的麻烦。

hashCode方法可以这样理解:它返回的就是根据对象的内存地址换算出的一个值。这样一来,当集合要添加新的元素时,先调用这个元素的hashCode方法,就一下子能定位到它应该放置的物理位置上。如果这个位置上没有元素,它就可以直接存储在这个位置上,不用再进行任何比较了;如果这个位置上已经有元素了,就调用它的equals方法与新元素进行比较,相同的话就不存了,不相同就散列其它的地址。这样一来实际调用equals方法的次数就大大降低了,几乎只需要一两次。

重写equals时需要注意满足java语言规范对于equals的要求

Java语言规范要求equals需要具有如下的特性:

自反性:对于任何非空引用 xx.equals() 应该返回 true

对称性:对于任何引用 x y,当且仅当 y.equals(x) 返回 truex.equals(y) 也应该返回 true

传递性:对于任何引用 xy z,如果 x.equals(y)返回 truey.equals(z) 也应返回同样的结果。

一致性:如果 x y 引用的对象没有发生变化,反复调用 x.equals(y) 应该返回同样的结果。

对于任意非空引用 xx.equals(null) 应该返回 false

1.equalshashCode的定义必须一致,两个对象equalstrue,就必须有相同的hashCode。反之,如果两个对象的hashcode相同,equals不一定相同。2.当重写equals方法时,一定要同时把hashcode方法一并重写,因为要保证在实现hash表的扩展性

 

如果不被重写(原生)的hashCodeequals是什么样的?
 

  1.       不被重写(原生)的hashCode值是根据内存地址换算出来的一个值。
  2.       不被重写(原生)的equals方法是严格判断一个对象是否相等的方法(object1 == object2)。

  为什么需要重写equalshashCode方法?
      在我们的业务系统中判断对象时有时候需要的不是一种严格意义上的相等,而是一种业务上的对象相等。在这种情况下,原生的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
     同时对于HashSetHashMap这些基于散列值(hash)实现的类。HashMap的底层处理机制是以数组的方法保存放入的数据的(Node[] table),其中的关键是数组下标的处理。数组的下标是根据传入的元素hashCode方法的返回值再和特定的值异或决定的如果该数组位置上已经有放入的值了,且传入的键值相等则不处理,若不相等则覆盖原来的值,如果数组位置没有条目,则插入,并加入到相应的链表中。检查键是否存在也是根据hashCode值来确定的。所以如果不重写hashCode的话,可能导致HashSetHashMap不能正常的运作、

5.ClassNotFoundException知道吗?遇到场景是什么?怎么解决的?

   常见的场景就是:

  1 调用class的forName方法时,找不到指定的类

  2 ClassLoader 中的 findSystemClass() 方法时,找不到指定的类

     3 ClassLoader 中的 loadClass() 方法时,找不到指定的类

 

二、造成异常的常见原因:

 

1. 所需要的支持类库放错了地方,并没有放在类路径(CLASSPATH环境变量)里面。

2. 使用了重复的类库,且版本不一致。导致低版本的被优先使用。

3.类名错了,一般是使用Class.forName的时候,手工指定了类名的情况。

4. 没有导入纯JAVA驱动包。

6.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分钟)

3.select上限?

1024个套接字(编译内核可以达到65536个)

5.三次握手过程?第三条丢了会怎样?有什么现象?

10.http报头格式?

7.如何解析http报头?

8.子进程和父进程怎么通信?

9.怎样判断是子进程?

11.http有哪些方法?返回状态码?

12.Linux下如何查看端口号?

13.用过哪些linux命令?

腾讯 (二面)

15.怎么把一颗二叉搜索树原地变成一个双向链表?

17.怎么判断一个无符号的整数是不是2的n次方?

19.timewait出现在什么时候?怎么查看那些进程处于timewait状态?

netstat -a | grep TIME_WAIT | wc -l 

20.没有timewait会怎样?https://blog.csdn.net/hzrandd/article/details/74463313

 

顺丰一面面经

2、hashmap底层实现?有哪些是线程安全的?当冲突的时候怎么解决?当hash值相同时,怎么进行比较?

3、concurrentHashMap怎么实现?

4、数据库索引有哪些?底层怎么实现的?数据库怎么优化?

5、http解释一下?tcp/udp解释一下?

6、OOM说一下?怎么排查?哪些会导致OOM?

https://blog.csdn.net/u010256841/article/details/41121755

https://blog.csdn.net/damaolly/article/details/30243125

JVM初始分配的堆内存由-Xms指定,默认是物理内存的1/64JVM最大分配的堆内存由-Xmx指定,默认是物理内存的1/4。默认空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制;
 空余堆内存大于70%时,JVM会减少堆直到-Xms的最小限制。因此服务器一般设置-Xms-Xmx 相等以避免在每次GC 后调整堆的大小。

7、volatile讲讲

8、多线程的锁?怎么优化的?偏向锁、轻量级锁、重量级锁?

9、哪些设计模式?装饰器、代理讲讲?

10、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

设计模式 项目中用过哪些 工厂模式  单例在项目中怎么应用  懒汉饿汉(各写一个)

2.面向对象--举例理解

3.数据结构--设计实现KV结构,查找算法,树

4.网线断了tcp连接情况

5.java static理解,final理解

6.主从同步。

7.treeSet,红黑树

8.JVM,GC垃圾回收机制,垃圾收集器。

9.threadLocal

京东:

4.一面整个过程中,面试官都在问我的项目

5.主要问了我三个项目,其中用的技术,分布式文件分布式储存工作流

6.spring的源码

7.springMVC的整个流程

8.mybatis与Hibernate的区别

11.js的怎么实现面向对象

二面:

3.java与c++的区别,知道多少答多少

5.hashMap源码与currenthashmap源码,1.7与1.8 的区别

7.hashmap在并发情况下,会出现什么问题

8.给了一个场景题,说怎么实现每隔一秒在控制台输出一句话

https://zhidao.baidu.com/question/2011460338755023108.html

9.java多线程怎么实现的

https://www.cnblogs.com/felixzh/p/6036074.html

11.java虚拟机的内存模式

12.怎么打破双亲委派模式

https://www.cnblogs.com/wxd0108/p/6681618.html

https://www.jb51.net/article/102920.htm

13.java虚拟机怎么识别是符合标准的class文件,魔数

每个Class文件的头4个字节被称为魔数,它的唯一作用是用于确定这个文件是否为一个能被java虚拟机所接收的Class类文件,即用于判定文件是否是符合规范的java Class文件。虽然说后缀名“.class”可以表明文件是一个Class文件,但是文件后缀名是可以随意被改动的,基于安全的考虑,很多文件都通过魔数值来唯一确定文件类型,javaClass文件魔数是:0xCAFEBABE.

https://blog.csdn.net/u011958281/article/details/78176980

 

14.mysql的索引用过吧?

15.介绍一下索引?怎么使用索引的?

16.B树与B+树的底层

17.数据库怎么实现分库分表

18.消息中间件用过吗?主要的作用是什么? (项目)待解决

19.我看你简历上面写了前端,我们来问一下前端的知识

20,js的数据类型有哪些? 5个

21.dom对象与js对象、jQuery的区别

22,jQuery对象和js对象之间的互相转换

https://blog.csdn.net/zc474235918/article/details/50300411

23.js中事件触发的流程,怎么阻止冒泡

window.event.cancelBubble=true     e.stopPropagation()

24.怎么预防用户的多次点击事件

1.防止重复点击可以添加标记,第一次点击后变为false,每次点击判断这个标记是true才执行

2.如果是按钮防止重复点击,可以再按钮点击后,给按钮添加disabled属性,按钮就再也点击不了

 

25.你用过哪些服务器 tomcat nginx

 

26.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就完了

 

阿里:

二面面经:

3.死锁的原因,如何避免

https://blog.csdn.net/ls5718/article/details/51896159

4.现代操作系统有完全解决死锁问题吗 bukeyi

http://www.cnblogs.com/shuaihanhungry/p/5671402.html

5.如何找出服务器负载过高的原因

https://blog.csdn.net/yuanlin65/article/details/52663224

(1)找出文件中出现次数TOPK的字符串 优先级队列最小堆

https://blog.csdn.net/L_kanglin/article/details/70500286

(3)判断一个字符串集合是否能连接成环,首尾字符相同则认为可以相连,如abc,cde,ea

https://blog.csdn.net/Yan456jie/article/details/51206096

http://thinkerou.com/2016-06/interview-is-circle-string/

 

三面面经: 

3.常见的GC算法

4.OOM出现在什么时候

https://www.cnblogs.com/baizhanshi/p/6704731.html

2.针对日访问量上亿做出一些优化

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

3.内存管理方式 (待解决)

https://blog.csdn.net/hguisu/article/details/5713164#commentBox

4.100亿元素排序 https://blog.csdn.net/nigelyq/article/details/52766879

7.常见的设计模式及应用场景

 

百度智能云 数据库部门

 

一面:

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 

 

8  问我栈中需要压入哪些数据。方法参数,返回值,以及返回地址。

 

二面:

 

2 服务器如何负载均衡,有哪些算法,哪个比较好,一致性哈希原理,怎么避免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

 

3.TCP连接中的三次握手和四次挥手,四次挥手的最后一个ack的作用是什么,为什么要time wait,为什么是2msl。

https://blog.csdn.net/weixin_41966991/article/details/81264095

 

4 数据库的备份和恢复怎么实现的,主从复制怎么做的,什么时候会出现数据不一致,如何解决。

https://www.cnblogs.com/visec479/p/4103029.html

https://blog.csdn.net/hardworking0323/article/details/81046408

https://blog.csdn.net/nuli888/article/details/52120600

 

8 Linux查看cpu占用率高的进程

top命令找到最占CPU的进程

https://www.cnblogs.com/pangguoping/p/5715848.html

https://blog.csdn.net/hrn1216/article/details/51426741

9 查看占用某端口的进程

1lsof -i:端口号

2netstat –tunlp | grep 端口号

查看某进程监听的端口

1、先查看进程pid

ps -ef | grep 进程名

2、通过pid查看占用端口

netstat -nap | grep 进程pid

10 如何查询日志文件中的所有ip,正则表达式

三面(8.3号更新):(linux待解决) 

Linux,说一下Linux排查问题常用的命令,ps,top,netstat,free,du等等

P516  du命令也是查看使用空间的,但是与df命令不同的是Linux du命令是对文件和目录磁盘使用的空间的查看,还是和df命令有一些区别的。

3 Linux的内存管理算法,页面置换算法, lru和fifo,lru有什么缺点。

    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

4 Linux的文件系统了解么,讲了一下inode节点,文件和目录的原理。

https://www.cnblogs.com/xiexj/p/7214502.html

shell了解么

5 进程通信方式有哪些,问我分别怎么使用,管道有哪些类型,各有什么优缺点。

 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数据结构和基本原理,

Redis的持久化怎么做,aof和rdb,有什么区别,有什么优缺点。

https://www.cnblogs.com/Anker/p/6099705.html

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

 

23 用队列计算一个树的高度,我说用层次遍历记录节点高度。

 

24 一个黑名单集合,数据量很大,快速查询一个值是否在集合里,怎么设计,布隆过滤器。

https://www.jianshu.com/p/b0c0edf7686e

27 分布式数据库了解么

https://blog.csdn.net/psiitoy/article/details/73201444#commentBox

https://blog.csdn.net/yyd19921214/article/details/68953629

 

百度智能云 账号和消息部门

一面:

2 讲一下AOP吧

3 动态代理和静态代理有什么区别

4 TCP和IP报文是否会分片,分别在什么情况下会分片。 TCP分包之后是否还会进行ip分片

https://blog.csdn.net/ns_code/article/details/30109789

6 写一个斐波那契数列 递归式,要求改进

7 讲一下Linux的内存结构,JVM

两者的内存如何映射,是什么关系,

http://www.open-open.com/lib/view/open1420814127390.html

 

二面

3 OSI七层模型,问了每层的作用,问了wifi属于哪一层。

4 线程间的同步用什么方式,

https://www.cnblogs.com/XHJT/p/3897440.html

 

5.使用hashmap时重写哪两个方法,为什么要重写,什么场景下重写。

https://blog.csdn.net/u014590757/article/details/79501332

hashcode用来提高效率的,为速度而散列。因为散列的SetMap是基于hashcode方法来查找对象的,所以你在使用这些类的时候一定要覆盖hashcode方法,而非散列的SetMap,例如TreeSet,TreeMap等, 不需要重写hashcode和equals,通过传入比较器。

6 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

作用域有哪些。

https://blog.csdn.net/panhaigang123/article/details/79452064

autowired如何配置两个类中的一个

@Autowired是根据类型进行自动装配的。如果当Spring上下文中存在不止一个UserDao类型的bean时,就会抛出BeanCreationException异常;如果Spring上下文中不存在UserDao类型的bean,也会抛出BeanCreationException异常。我们可以使用@Qualifier配合@Autowired来解决这些问题

 

8 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

百度智能云

一面

5 事务隔离级别有哪些,默认是什么级别。Mysql(可重复读)

8 僵尸进程和孤儿进程是什么,分别有什么危害。 

https://www.cnblogs.com/Anker/p/3271773.html

https://blog.csdn.net/zhangjg_blog/article/details/18319521

try catch异常处理的jvm底层是什么?

https://blog.csdn.net/hguisu/article/details/6155636

java8新特性

https://www.ibm.com/developerworks/cn/java/j-lo-java8streamapi/index.html

https://www.cnblogs.com/franson-2016/p/5593080.html

二面: 

8、jdk1.8 concurrenthashmap 的新的特性,有没有看过源码

10,问了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分钟):

4、分布式锁是怎么实现的

覆盖索引

5.实时查看运行日志了

tail -f aa.log
6、怎么查看系统磁盘大小?(du -h,df -h)

7、怎么查看文件的固定关键字?(cat A.txt | grep key)

9.AQS,问AQS实现原理。问AQS在闭锁,重入锁中的应用。

https://blog.csdn.net/u010358755/article/details/51063527

https://blog.csdn.net/vernonzheng/article/details/8275624

http://ifeve.com/introduce-abstractqueuedsynchronizer/

虚拟机怎么实现动态绑定

https://blog.csdn.net/sureyonder/article/details/5569617

spring 生命周期

https://www.cnblogs.com/kenshinobiy/p/4652008.html

https://www.jianshu.com/p/3944792a5fff
1.SOA的理解
5.zookeeper的原理

6.zookeeper怎么通信

https://www.cnblogs.com/felixzh/p/5869212.html
8.zookeeper监听器了解吗?7怎么监听

https://blog.csdn.net/hohoo1990/article/details/78617336
9.dubbo的原理
https://blog.csdn.net/qq_33101675/article/details/78701305

https://blog.csdn.net/he90227/article/details/70157046
12.初始化bean干什么你知道吗?IOC容器初始化
13.获取容器的引用,ApplicationContextAware
14.activeMQ了解吗?怎么用
15.activeMQ消息丢失?
16.搭过activeMQzookeeper
18.Redis存对象知道吗

https://blog.csdn.net/softwave/article/details/52202199
19.Redis 的list

https://blog.csdn.net/pfnie/article/details/52204840

5. 内存占满了怎么办啊

https://blog.csdn.net/liyanlei5858/article/details/79639274

Linux里用的哪些命令,修改权限的命令,7代表什么意思,如果不用数字还可以用什么

14. 接口抽象类(Java8中的default)

https://blog.csdn.net/zixiao217/article/details/70197520

20. Swap了解吗

https://blog.csdn.net/x_r_su/article/details/52957559

SQL语句中,fromjoin,where,having,order by,group by,limit之间的执行顺序是怎样的?

https://www.cnblogs.com/Jessy/p/3527091.html


synchronized在方法上是对象锁还是类锁

https://blog.csdn.net/jerrywu145/article/details/79821094


mysql 索引底层实现,为什么不用红黑树

https://blog.csdn.net/buyulian/article/details/77996253


如何优化页面请求速度

https://blog.csdn.net/weightwwc/article/details/5251724

2从浏览器输入网址到出现网页发生了什么

https://www.cnblogs.com/kongxy/p/4615226.html

6描述异常类的体系

7描述集合类的体系

10多线程的优点,单核CPU是如何调度多线程的,为什么单核CPU调度多线程也能有比较高的效率

https://blog.csdn.net/jia416644/article/details/77367470

二面

1.cookie和session的区别。然后又问session在服务器端具体是怎样的实现的,当session中的数据量过大的时候,主要对服务器的哪些方面造成影响?CPU?内存?网络?

3Javascript中的双等号和三等号的区别

https://blog.csdn.net/ntc10095/article/details/51302920

11. 数据库用到的操作,索引(B+树,B+树与B树区别),增加节点,删除节点,B+树原理
6)nio与bio的区别。
7)nio的实现

https://blog.csdn.net/u013851082/article/details/53942947#commentBox

https://blog.csdn.net/skiof007/article/details/52873421

8)虚拟机,什么时候会进行Full GC。

https://blog.csdn.net/yhyr_ycy/article/details/52566105


9)什么时候需要打破双亲委派模型。


10)一个类的静态块会被执行两次吗?为什么。

https://blog.csdn.net/jimoluoxue2016/article/details/79141389


11)动态代理的实现。
12)cglib无法增强的类,final修饰的类。

https://blog.csdn.net/zghwaicsdn/article/details/50957474


13)spring容器的启动过程。

https://blog.csdn.net/u013510838/article/details/75066884#commentBox


14)数据库隔离级别中可重读读的实现。

https://blog.csdn.net/huanghanqian/article/details/79517480

https://blog.csdn.net/whoamiyang/article/details/51901888

https://www.cnblogs.com/YFYkuner/p/5178684.html
15)什么情况下索引会失效。

https://www.jianshu.com/p/9c9a0057221f

https://www.cnblogs.com/areyouready/p/7802885.html

幻读:间隙锁

https://blog.csdn.net/soonfly/article/details/70238902
 



2)使用过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
4)ReentrantLock的实现原理。

https://www.cnblogs.com/xrq730/p/4979021.html

https://www.jianshu.com/p/fe027772e156
5)FutureTask的实现原理。

https://blog.csdn.net/codershamo/article/details/51901057

7)线程池有哪些RejectedExecutionHandler,分别对应的使用场景

画出代理模式与适配器模式的uml类图。(待解决)
9)手写djikstra算法

Mysql知识点

https://www.cnblogs.com/PiPifamily/p/8655458.html

10亿数字找最大100个数,不考虑内存问题


3、存在大量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


7、mysql写数据的时候,需要先将数据写到buffer里,再写到磁盘里,万一MySQL这时候突然挂了,怎么办?redo undo checkPoint

Nginx服务器(待解决)

16、背包算法
https://blog.csdn.net/a784586/article/details/63262080

4、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


11、跳台阶=递归非递归,两种解法


12、生日概率问题

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动态代理,讲了下实现的原理 (重要)

 

二面

2.假如双十一等一些促销有高并发访问量要来访问我们的数据,怎么样做到可靠的服务

https://blog.csdn.net/u011225629/article/details/47393169

1.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

 

蚂蚁金服:

 

2 缓存是怎么使用的,里面存哪些东西,为什么要存这些东西,哪些高并发场景不能使用缓存;

 https://blog.csdn.net/dinglang_2009/article/details/53464196

https://blog.csdn.net/simba_1986/article/details/77823309

 

5 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

 

6 自己设计一个数据库连接池怎么设计

 https://blog.csdn.net/clint2002/article/details/9312125

7 怎么用原生的JDBC访问数据库

https://blog.csdn.net/xiaozhegaa/article/details/70208646

 

8 阻塞队列不用java提供的自己怎么实现

https://blog.csdn.net/new_aiden/article/details/72453257

9 拥塞窗口讲一讲,为什么要用慢启动算法

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个小时):

9 快速排序和堆排序对比,快排怎么优化(三向切分,主要用于具有大量重复数据的情况,可以大大提高效)

https://blog.csdn.net/qq_28352347/article/details/69159271


10 jdbc操作数据库流程,如果加入事务,流程又是怎么样

https://blog.csdn.net/weiqianghu/article/details/46761343

5 CAP的理解 分布式详解

https://www.jianshu.com/p/1156151e20c8

一面

8.共享内存是如何实现的,如何保证同步问题

https://blog.csdn.net/u011244446/article/details/52608002

4.进程调度方式

https://blog.csdn.net/nishiwodeangel/article/details/9816667

网易一面:
2、A、B、C并发执行完,D、E、F并发执行实现方式

https://blog.csdn.net/wangtaomtk/article/details/52301892


4、CountDownLatch、LinkedHashMap、AQS实现原理

 


9、Condition和sychronized实现Condition两种方式有什么区别

Condition的强大之处在于它可以为多个线程间建立不同的Condition


15、Redis集群方式

https://www.zhihu.com/question/21419897

https://www.jianshu.com/p/14835303b07e


17、Redis备份
     https://blog.csdn.net/wzzfeitian/article/details/42081969

 


24、MySQL日志文件

https://blog.csdn.net/zidasine/article/details/5436981

mysql默认存储引擎?MyISAM、InnoDB、MEMORY的区别

http://ailikes.iteye.com/blog/2280546

AQS详细原理

  1. lock公平锁和非公平底层怎么实现的?
  2. https://blog.csdn.net/rickiyeat/article/details/78307739
  3. 怎么实现一个线程安全的计数器?用AQS
  4. http://lialun.github.io/2014/06/08/thread-safe-counter.html
  5. http://shifulong.iteye.com/blog/2248131
  6.  
  7. 原子类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

  1. dubbo的生产者如何发布服务,注册服务,消费者如何调用服务?
  2. https://blog.csdn.net/chao_19/article/details/51764150
  3. dubbo的集群容错机制以及负载均衡?

https://blog.csdn.net/hll814/article/details/50891417

 

  1. Redis有哪些数据结构?底层的编码有哪些?有序链表采用了哪些不同的编码?

https://www.cnblogs.com/yangmingxianshen/p/8054094.html

https://my.oschina.net/javahongxi/blog/1524085

  1. ScheduledThreadPoolExecutor中的使用的是什么队列?内部如何实现任务排序的?

https://www.cnblogs.com/micrari/p/7643668.html

  1. 谈一谈ArrayList?如何添加元素的?删除元素后会自动缩小空间吗?

http://www.cnblogs.com/flotang/archive/2018/06/23/9216098.html

9.单点登录?

https://blog.csdn.net/WuCourage/article/details/77802812

 

11.100的阶乘后面有几个0? 24

https://blog.csdn.net/fightforyourdream/article/details/16338883

 

SpringMVC参数绑定实现原理

http://www.cnblogs.com/w-y-c-m/p/8443892.html

 

200G数据,每一行一个字符串,CPU 8G,排序(分治法、归并)

https://blog.csdn.net/shangqing1123/article/details/47811945

 

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 相关

僵尸进程

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

最短路径的两种算法 (jianboke)

图有哪些存储结构

https://blog.csdn.net/wstz_5461/article/details/78290682

设计模式了解吗?策略模式?责任链模式?

缓存一致性

https://coolshell.cn/articles/17416.html

https://www.cnblogs.com/johnsblog/p/6426287.html

 四面

  1. 出现死锁怎么排查?

https://www.cnblogs.com/aflyun/p/9194104.html

  1. 如果查看堆内存信息? 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/

  1. 出现OOM怎么排查问题?

https://blog.csdn.net/john8169/article/details/55802651

美团一面:

1.进程间共享内存的方式有哪些?(8种)

https://www.cnblogs.com/wust221/p/5414839.html

2.linux下如何查看网络端口状态(netstat),如何查看内存使用情况(top);  

7.给你n个不重复的整数,随机找出m个不重复的整数,要求时间和空间复杂度都是O(m)。(方法很简单,就是每次把取出来的数放到后面,只在前面的数组随机访问就可以了,)。

15.说说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

3. 数据库范式

https://www.cnblogs.com/knowledgesea/p/3667395.html

 

7. 单例模式的用处,是否所有的共享对象都用单例模式

https://www.cnblogs.com/damsoft/p/6105122.html

https://www.cnblogs.com/tangxiao1996/p/7899393.html

 

15 哪些情况会触发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

 

19 服务注册中心实现什么功能,消费者的本地缓存如果失效了怎么办

https://blog.csdn.net/xiaohuzi__945/article/details/79606845

 

 

12、幻读的避免是如何实现的? 间隙锁

https://www.jianshu.com/p/2953c64761aa

https://blog.csdn.net/ashic/article/details/53735537

 

10. http请求报文头格式?http长连接和短连接的区别?

5.java的线程和操作系统的线程什么关系

https://blog.csdn.net/cringkong/article/details/79994511

7.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

 

10.不用乘法实现乘法

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面试)