面试刷题10-4

一面:

1.SpringBoot和Spring的注解有什么区别?

2.SpringMVC的过程,SpringBoot可以实现SpringMVC的所有功能么?

3.设计模式了解哪些?能够手写观察者模式么?

4.并发编程常见的类,让自己说。Synchronized底层实现,volatile底层实现,CountDownLatch具体使用

5.给一个场景一个线程要等待100个线程执行完之后再执行怎么办。是否可以直接使用count来控制?

6.手写sql:查出所有账户每个月的金额之和,表字段:T(name,amount,month)

7.手动垃圾回收怎么实现。了解finalize()么?是什么类的方法?

8.full gc和minor gc的区别?日常写代码时如何避免频繁的full gc?哪些情况会发生full gc?

9.拦截器和过滤器的区别?过滤器只能有一个么?

10.反射了解么?反射破坏了封装性如何避免?反射可以获取到私有的构造方法么?

二面:

主要是针对项目

1.数据库性能挑战赛中如果增加删除的接口,应该怎么设计

hr面

就是一些常见的问题

一面:
1.都学过哪些课程,讲一讲编译原理
2.排序算法,手写冒泡排序及优化
3.final的用法

1.修饰数据

2.修饰方法参数

3.修饰方法

4.修饰类
4.项目
5.TCP三次握手四次挥手

二面:
1.讲讲编译原理
2.数据库的主健,外健,索引


3.问了两道笔试题
4.手写链表逆置
5HTTP与HTTPS的区别
6.HTTP请求报文格式


7.cookie
8两个栈实现队列的优化
三面:
1.JAVA虚拟机的理解,我讲了GC原理
2.智力题,一天时针和分针相遇几次
3.printf的执行过程
4.两个队列实现栈
5.什么时候会发生SOF问题

HR面:
此处省略。。。。。。

 


 

一面(上午,除了技术方面,闲聊差不多一个小时多一点)比较基础,JDK相关方面以及开发中的基本API:

  1. 简单说说面向对象的特征以及六大原则

 

一、三大特性

  1. 封装:  一个类封装了数据以及操作数据的代码逻辑体。定义了数据的可访问属性(私有、公有)
  2. 继承 : 可以让一个类型获取另外一个类型的属性的方式。分为实现继承和接口继承
  3. 多态 : 类实例的一个方法在不同情形下有不同的表现形式,即不同的外在行为。使具有不同的内部结构的对象可以共享相同的外部接口。

 

二、六大原则

单一功能原则 : 每个类型(包括接口和抽象)功能要求单一,只负责一件事情。

开放封闭原则:一个软件实体应该对扩展开发,对修改关闭。可扩展但是不可更改。

     核心:用抽象构建框架,用实现类实现扩展。

替换原则(里氏代换原则):子类能够替换父类,出现在父类能够出现的任何地方

     当使用继承时,尽量遵循历史替换原则,尽量不要去重写或者重载父类的方法,以免破坏整个继承体系的 。因为父类在定义或者实现某些方法时,规定了必须遵守的规则和契约。

依赖原则:具体依赖抽象,上层依赖下层。核心思想是面向接口编程。

     两个模块之间依赖的应该是抽象(接口或抽象类)而不是细节。细节(实现类)依赖于抽象。

依赖原则基于的事实:相对于实现类的多变性,抽象的东西要稳定得多,基于抽象的构架也比基于实现的架构更加稳定,且扩展性更高

接口分离原则:模块间要通过具体接口分离开,而不是通过类强耦合。例如A类对B类的依赖,可以抽象接口I,B实现I,A类依赖I来实现。但是抽象接口必须功能最小化(与单一功能原则有点不谋而合)。

 

迪米特原则:最小依赖原则,一个类对其他类尽可能少的了解,只与朋友通信。降低耦合

  1. 谈谈final、finally、finalize的区别

1、final修饰符(关键字)。被final修饰的类,就意味着不能再派生出新的子类,不能作为父类而被子类继承。因此一个类不能既被abstract声明,又被final声明。将变量或方法声明为final,可以保证他们在使用的过程中不被修改。被声明为final的变量必须在声明时给出变量的初始值,而在以后的引用中只能读取。被final声明的方法也同样只能使用,即不能方法重写。

2、finally是在异常处理时提供finally块来执行任何清除操作。不管有没有异常被抛出、捕获,finally块都会被执行。try块中的内容是在无异常时执行到结束。catch块中的内容,是在try块内容发生catch所声明的异常时,跳转到catch块中执行。finally块则是无论异常是否发生,都会执行finally块的内容,所以在代码逻辑中有需要无论发生什么都必须执行的代码,就可以放在finally块中。

3、finalize是方法名。java技术允许使用finalize()方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在object类中定义的,因此所有的类都继承了它。子类覆盖finalize()方法以整理系统资源或者被执行其他清理工作。finalize()方法是在垃圾收集器删除对象之前对这个对象调用的。
 

  1. Java中==、equals与hashCode的区别和联系

1.基本数据类型,也称原始数据类型

byte,short,char,int,long,float,double,boolean   他们之间的比较,应用双等号(==),比较的是他们的值。 

2.引用类型(类、接口、数组)   

当他们用(==)进行比较的时候,比较的是他们在内存中的存放地址,所以,除非是同一个new出来的对象,他们的比较后的结果为true,否则比较后结果为false。

  1. 谈谈Java容器ArrayList、LinkedList、HashMap、HashSet的理解,以及应用场景
  2. 谈谈线程的基本状态,其中的wait() sleep()  yield()方法的区别。

 

二面(下午)相对来说比较深一点:

  1. JVM性能调优的监控工具了解那些?
  2. 简单谈谈JVM内存模型,以及volatile关键字
  1. 垃圾收集器与内存分配策略
  2. 垃圾收集算法
  3. MySQL几种常用的存储引擎区别

InnoDB存储引擎

MyISAM存储引擎

MEMORY存储引擎

  1. 数据库的隔离级别

为了避免上面出现的几种情况,在标准SQL规范中,定义了4个事务隔离级别,不同的隔离级别对事务的处理不同。

读未提交(Read Uncommitted):只处理更新丢失。如果一个事务已经开始写数据,则不允许其他事务同时进行写操作,但允许其他事务读此行数据。可通过“排他写锁”实现。
读提交(Read Committed):处理更新丢失、脏读。读取数据的事务允许其他事务继续访问改行数据,但是未提交的写事务将会禁止其他事务访问改行。可通过“瞬间共享读锁”和“排他写锁”实现。
可重复读取(Repeatable Read):处理更新丢失、脏读和不可重复读取。读取数据的事务将会禁止写事务,但允许读事务,写事务则禁止任何其他事务。可通过“共享读锁”和“排他写锁”实现。
序列化(Serializable):提供严格的事务隔离。要求失去序列化执行,事务只能一个接一个地执行,不能并发执行。仅仅通过“行级锁”是无法实现事务序列化的,必须通过其他机制保证新插入的数据不会被刚执行查询操作的事务访问到。
 

最后一个算法方面的:

5亿整数的大文件,怎么排?

è¿éåå¾çæè¿°


 

浦发(发了体检通知,但是因为已经拿到了更满意的offer所以拒了,面试过程是先机式再面试)

机试题目:

有三道,都比较简单,目前就记得有一个二进制的加法,有印象是因为当时索引搞错了,然后平常一直用 IDEA ,不会 eclipse 的 dubug 所以印象深刻哈哈哈。

面试,就一面,20分钟:

1.自我介绍

2.讲讲你的项目里面的难点,怎么解决的

3.桌子上面放了一道算法题,给我们讲一下解题思路(去除两条链表中数值重复的元素,排序之后双指针就行了)

4.讲讲 Spring 的 AOP

5.看你们项目用了 redis ,为什么用 redis 集群,你们选型是怎么想的

6.你对 redis 了解多少

redis是内存数据库

7.你对 mysql 了解多少

mysql是关系型数据库

8.聚集索引

9.会不会 python ,考不考虑转大数据,上海去不去

浦发的面试总体来说比较佛系,当然仅限武汉地区,其他地方啥情况我不知道,但是在武汉基本上你把剑指 offer 刷完,基础不太差都能过。

 

这样的面试问的点比较大,比较佛系。

 

 

京东(已offer)

笔试题目快给我搞没了,那个合唱队我到现在都记忆犹新,不过还是给我捞起来面试了

一面(9.2):

1.自我介绍

2.说说项目,我看你项目里面用了反射,讲讲思路是什么样的

3.对 redis 了解多少

4.说说你知道的 redis 的数据结构和它的底层实现(这里我大概说了十几分钟,所以后面问的就很少了哈哈哈)

5.知不知道 mysql 死锁,怎么解决

6.对 Spring 了解多少,讲讲 IOC

依赖倒置

7.看你的项目里用了 rabbitMQ ,为啥要用,不用行不行,用了有什么问题,怎么解决

8.讲讲 JVM

9.垃圾回收算法,垃圾回收器

10.对 JVM 调优了解多少

11.JVM 调优参数

12.你常见的异常

  • ArithmeticException(算术异常)
  • ClassCastException (类转换异常)
  • IllegalArgumentException (非法参数异常)
  • IndexOutOfBoundsException (下标越界异常)
  • NullPointerException (空指针异常)
  • SecurityException (安全异常)

一般回答出下标越界和空指针,

13.线程池用过没,用的哪一个(千万不能说你用了它自带的哪一个线程池,一定要说自己通过参数配置的)

14.线程池的7个参数

15.讲讲拒绝策略

二面(9.3):

1.自我介绍

2.介绍一下你写的这几个项目

3.看你的项目里面做了读写分离,那你知不知道这样做会有什么问题,怎么解决

4.为什么用 Sharding-jdbc ,怎么考虑的

5.为什么用 redis cluster ,怎么选型的

6.问点基础吧,我们来聊聊 HashSet

7.HashMap 的 put 过程

8.为什么容量必须是2的倍数,不是的话会有什么问题

9.扩容为什么选的 8 ,是怎么考虑的

10.你对 Spring AOP了解多少(我说我知道源码直接把源码梭了一遍)

11.图的最短路径算法

12.mysql 事务怎么实现的

 

MySQL 是一个支持多引擎的系统,但并不是所有的引擎都支持事务。比如 MySQL 原生的 MyISAM 引擎就不支持事务,这也是 MyISAM 被 InnoDB 取代的重要原因之一。

4个隔离级别:read uncommited ,read commited ,repeatable read ,serializable 。

 

数据库里面会创建一个视图,访问的时候以视图的逻辑结果为准

“可重复读”隔离级别下,这个视图是在事务启动时创建的,整个事务存在期间都用这个视图

“读提交”隔离级别下,这个视图是在每个 SQL语句开始执行的时候创建的

“读未提交”隔离级别下直接返回记录上的最新值,没有视图概念

“串行化”隔离级别下直接用加锁的方式来避免并行访问
 

13.MVCC

14.RR 和 RC 怎么实现的

15.讲讲间隙锁

16.看你做过微服务,那我如果想把你们实验室的项目拆分成微服务,怎么拆

17.如何做到高内聚低耦合

HR面(9.4):

1.聊聊项目(是的你没看错,HR面聊项目,所以项目真的很重要)

2.你觉得你们这个项目中还有哪些不足的地方,怎么优化

3.为什么不考研

4.平时怎么学的

5.家是哪里的,工作要去北京你愿不愿意

京东整体的面试还是以基础为主,但是会对你的架构设计能力有一定的要求,而且对知识深度的要求会高一点。

 

神策(一面二面过,因为有了更满意的offer婉拒了HR面,给其他同学留HC)

一面:

1.讲讲 redis 的 rdb 和 aof

2.讲讲 mysql

3.一道算法题,在 Trie 中加入一个单词的操作的实现

字典树的添加。

4.IOC

5.AOP

6.mysql 的事务

7.你对大数据了解多少,讲讲 Hadoop 的 HDFS

8.你有什么要问我的

二面:

1.算法题,URL去重        Set

2.讲讲 redis

3.讲讲 Spring

4.TCP 和 UDP

5.ICMP          网络层协议, ping

6.Linux的一些操作

7.JVM 分区

8.JVM 调优

9.JMM

神策的面试,总体来说难度也不大,但是算法出的比较偏,幸好我看过 Trie,不然估计一面我就没了

 

平安产险(已offer)

这个是在华科参加的宣讲会,现场笔试然后第二天就去面试了,一轮技术面一轮 HR 面

一面:

1.自我介绍

2.介绍一下你的项目

3.redis 线程模型

4.为什么用 redis cluster

5.redis 主从复制的过程

6.讲讲你对 mysql 的了解

7.redis 那么快是为啥,我们能不能把 redis 当数据库用        可以

8.redis 事务

9.讲讲 Zookeeper

10.Zookeeper 选举过程

11.一致性算法知道多少

12.讲讲 Paxos

13.我们来聊聊 JVM

14.JVM 的分区,各个分区的作用

15.调整新生代和老年代大小的 JVM 参数

16.讲讲 Dubbo 的运行流程

17.为啥用 Zookeeper 做服务注册中心

18.服务注册中心选型怎么选,Zookeeper 和 Eureka 各自的优点的和缺点

19.Spring IOC 容器启动的过程,讲源码

20.说说你的职业规划

21.操作系统的用户态和内核态

22.我这边没问题了,去找HR

HR面:

1.自我介绍

2.手写观察者模式(是的你没看错,这是HR面,当时我也傻了哈哈哈)

3.用三个形容词形容你自己

4.在工作中与周围的同时有矛盾怎么办

5.期望薪资

安产险的面试涉及范围比较广,也可能我是个例,别人技术面都是二十分钟分钟面我面了我一个小时,不过也都答出来了,也可能看我是个本科还是双非的吧

 

新东方在线(已offer)

一面:

1.自我介绍

2.聊聊项目,讲讲项目的整体架构

3.TCP 和 UDP

4.三次握手和四次挥手的详细过程

5.我敲一个 URL ,回车下去会发生啥

6.说说你知道的所有的数据结构

7.Mysql 的事务

2,事务的ACID特性
       事务的原子性

            事务是最小单元,不可再分,要么全部执行成功,要么全部失败回滚。

       事务的一致性

            一致性是指事务必须使数据库从一个一致的状态变到另外一个一致的状态,也就是执行事务之前和之后的状态都必须处于一致          的状态。不一致性包含三点:脏读,不可重复读,幻读

      事务的隔离性

             隔离性是指当多个用户并发访问数据库时,比如操作同一张表时,数据库为每一个用户开启的事务,不能被其他事务的操作所         干扰,多个并发事务之间要相互隔离

     事务的持久性

            DBMS(数据库管理系统)对数据的修改是永久性的。

3,事务的四个隔离级别
      脏读:一个事务处理过程里读取了另一个未提交的事务中的数据

      可重复读:一个事务在它运行期间,两次查找相同的表,出现了不同的数据

      幻读:在一个事务中读取到了别的事务插入的数据,导致前后不一致

                A事务读取了B事务已经提交的新增数据。和不可重复读的区别,这里是新增,不可重复读是更改(或删除)。                   这两种情况对策是不一样的,对于不可重复读,只需要采取行级锁防止该记录数据被更改或删除,然而对于幻读必                   须加表级锁,防止在这个表中新增一条数据。

未提交读
       读未提交,即能够读取到没有被提交的数据,所以很明显这个级别的隔离机制无法解决脏读、不可重复读、幻读中的任何一种。

已提交读
       读已提交,即能够读到那些已经提交的数据,自然能够防止脏读,但是无法限制不可重复读和幻读

可重复读
       可重复读,读取了一条数据,这个事务不结束,别的事务就不可以改这条记录,这样就解决了脏读、不可重复读的问题,

串行化
       串行化,多个事务时,只有运行完一个事务之后,才能运行其他事务。
 

 

8.存储引擎有哪几种,说说他们的区别

9.一条 Sql 的执行过程

10.redo log 和 undo log

11.JVM相关的问题(分区,垃圾收集器,GC Roots算法)

12.多线程相关的问题(线程池、JMM)

13.有什么要问我的吗

二面:

1.自我介绍

2.你平时在学校怎么学的,学习和项目怎么平衡

3.最近看的书

4.线程和进程的区别(再不问我都以为我面的HR面了哈哈)

5.提前实习愿不愿意

6.介绍了一下公司的情况

HR面:

1.手上的 offer 情况

2.谈了一下薪资,说可以给到我比别的公司更好的待遇

3.聊了一下新东方在线的发展

新东方在线整体面试体验挺好的,从各个面试官的态度也可以看出来他们确实很重视技术这一块的发展,但是因为有京东的offer所以最后去的几率不是太大

笔记本键盘敲了手疼,等明天去学校有机械键盘了再接着写吧,总的来说我的秋招还算比较顺利,面试的基本上都过了,到目前为止面试只挂了小米,因为问了我一堆操作系统和计算机网络给我问蒙了哈哈哈

 

正在准备明年秋招的同学,特别是双非本科的同学,不要对觉得自己就是比别人差,其实我们这个行业真的挺公平的,除了个别企业卡学校以外,其他的其实都还好,都能有笔试机会,所以与其想自己的学校怎么怎么样不如把这时间花在提升自己的能力上,加油


一面 :
手写算法:  死锁,以O(1)时间复杂度取得最小值的栈,要求有pop  push   getMin方法

使用两个栈的实现最小(大)栈
tcp三次握手加一次变成四次握手有什么问题?
浏览器输入网址之后发生了什么? 
mylsam,innodb的区别,
数据库行锁表锁,什么时候会加锁?
查询语句是否用到索引的分析。
rocketmq消息队列原理,单机性能多少? 为什么这么快?
rocketmq如何支持事务的?

实习项目的问题,为什么要用当前的模型?有没有更好的模型可以选择?为什么不用更好的?

二面:
手写算法: 1.给一个字符串数组,统计每一个字符串出现的次数,要求不能用set,map.时间复杂度O(n).   

2.实现一个阻塞队列,考虑到多线程并发的情况,要求有put,get,isEmpty, isFull方法。
hashMap底层实现,链表过长会做什么操作?红黑树高度过高会做什么操作?
synchronized 和 reentrantlock区别和底层实现。
浏览器输入网址之后发生了什么?
cookie,session相关的知识。

一致性哈希原理,负载均衡算法。
正向代理,反向代理。
redis为什么这么快? 高并发如何处理的?

三面:
手写算法: 反转二叉树
场景题: 1 索引设计:一个表有三个字段A,B,C
常用查询语句有 select .. from table where B=..and C= ..
select .. from table where A=..and B= ..
select .. from table where B=..
说明如何建立索引以及原因
2  设计一个短链接服务,短信中的短网址点开之后变成完整的url,完整的url转成短网址发送到用户短信中。整体流程设计。
3. 给两个文件a,b  a大小为3t, b大小为2t,a中存储的是id 和 name ,b中存储的是id和title,计算机内存2g,要求用最快的方法找出a和b的id重合的部分,输出文件c,c中存储的是id,name,title。 注 id是 varchar 32.


 

一面面经总结

1.先问了我是哪的人,意向工作城市。

(简历上把擅长的写出来,引导面试官问,基本都和你写在简历上的项目相关)

2.自我介绍

3.介绍一个自己做过的项目,问项目架构,Dubbo构成及工作原理,还有一些java的基础问题

针对上述项目,用过哪些框架 画个框图说一下项目

实现哪些功能

你这个项目怎么结构设计的 3层结构

事务管理设计在哪一层

项目用。。。技术,说一下。。。技术,使用中碰到什么难点

ssm框架介绍一下 你在项目中用到了递归,递归有什么注意点

4.spring和springmvc区别

Spring是具有控制反转(IOC)思想和支持面向切面(AOP)的容器框架,通俗来说,spring就是一个装对象的容器,容器中装什么对象就有什么功能,spring负责管理项目中所有的对象。

Spring web mvc是属于web层的框架,它是基于spring的功能,想要用springmvc必须先依赖spring。

springmvc怎么动静分离?

5.TCP和UDP区别

6.讲讲mybatis用了哪些设计模式

7.论文,专利

8. 对着简历非常认真的问

介绍一下堆和栈的区别,分别举了两个例子判断存储在内存的什么位置

全局变量和static变量的区别

socket网络编程的服务器端会用到哪些函数方法

MySQL存储过程

数据库增删改查分别举例

tcp三次握手

9.说下常用的容器

ArrayList和LinkedList区别,两者分别适用于什么场景

10.熟悉哪些排序算法,快排的基本思想

11.递归的缺点

占用栈空间,容易栈溢出

12.怎样创建一个线程

13.怎样保证代码的线程安全

14.一些数据什么情况下用List什么情况下用Map

15.java怎么定义抽象方法?抽象类与接口的区别

16.写一个sql语句,自由发挥,能多复杂多复杂(好久没写过,只写了一个连表查询)

17.多线程,线程池

18.spring

20.反射

21.设计模式

22.简历里面写了一个基于ssm框架的项目,先问了项目实现了什么功能,自己负责的哪一块,碰到了什么问题怎么解决的

配置过tomcat吗?

项目数据从现场传回来怎么传的?写了个TCP的服务端 用到多线程了吗? 多线程了解吗?讲一下

ssm框架各个层讲一下,各个层次之间怎么调用怎么返回。前端到后台,后台到数据库,查到数据之后到后台再返回到前端的整个流程。

Spring面向切面编程做过吗? springMVC和mybatis源码看过吗?

怎么防止sql注入?按月模糊查询怎么查询?sql语句怎么写?降序排序sql语句怎么写?

23.创建线程的几种方式

创建对象的几种方式

软件工程的生命周期

gc

redis是什么类型的数据库,他有哪些数据类型

linux基本命令

项目中有没有用到设计模式

i++线程安全吗?为什么

集合中哪些类是线程安全的

24.进程与线程的区别

25.怎么避免死锁,死锁发生的条件

26.多线程的好处,对线程安全的了解,java里哪些类是保障线程安全的

27.介绍下字符串(我从String,StringBuilder和StringBuffer方面说的); 说说创建线程有哪几种方法(介绍完后让在纸上使用任一种方法写创建线程的代码); mysql的存储引擎介绍下; 介绍下事务;

28.mysql怎么分页,写下命令

 

 

春招:

天猫一面:

1:jvm如何支持编解码?

2:口头做题

(1)25匹马,5个赛道,选出最快3匹(竞赛树)

(2)2,3,5面额硬币,用最少数目得到250

(3)选出时钟分钟重合次数算法

3:BIO和NIO区别?

4: 各种树的时间复杂度?

5:两种动态代理区别以及如何使用?

6:wait,notify?

7: StringBuilder 为什么比String快?

String 不可变

8:前台页面出现乱码怎么办?

 

天猫二面:

1:TCP拥塞控制

2:自定义类加载器

3:数据库一致性方案?

4:HTTP1.0  2.0  3.0

 

天猫三面:

1:python的垃圾回收和java的垃圾回收有什么区别?

2:cms会STW吗?

3:cglib原理?

4:spring bean是什么?

5:上过那些技术网站?

6:8和CPU可不可以同时运行16个进程?

7:为什么要进行分代回收?

 

 

天猫四面

1:自我介绍?

2:提到了专利,你是第几发明人?

3:自己的职业规划?

4:提到了成为架构师,那你有没有了解过负载方面的知识?

5:使用天猫过程中有没有考虑过一些技术问题?

6:电商、云计算、这些部门中,对哪一块比较感兴趣?为什么?

 

腾讯一面

1:@Bean和@Resource区别

2:TCP  UDP区别

3:Redis如何持久化

4:session cookie区别?禁止cookie会怎样?如何解决?

5:c3p0  druid连接池?

 

腾讯二面(二面挂了,因为笔试时候摄像头不好使,判我作弊......)

1:CDN原理以及如何更新缓存?

2:springboot启动流程?

3:mysql索引为什么要用B+树?

4:二叉树深度优先广度优先进行查找?

5:mysql语句性能评测?

6:docker如何重写?

7:垃圾回收如何处理循环引用问题?


秋招

天猫一面:

太久远,忘了,问的比较简单。。。

天猫二面(交叉面,难度不小,面完以为挂了)

1:CPU密集型任务和IO密集型任务对线程池线程数大小的影响

2:Netty的集中使用模式(大概是这么问的)

3:Netty线程数的设置?监听线程设多少?处理任务线程设置

4:JVM对反射做了什么优化?

5:RPC过程?牵扯到那些技术点?

6:除了JAVA序列化、JSON序列化还有什么序列化你了解过?

7:TCP的窗口滑动、拥塞控制这些机制都是为了防止出现什么问题才设计的?

8:并发和并行的区别?ForkJoin听过吗?

天猫hr面:

聊项目,聊不足,聊春招为啥挂了,各种聊,也是尬聊。

hr面结束后33天收到了意向书。

 

美团一面(美团也不知道啥时候投递的,突然接到了通知面试,面了一面也没后续了):

设计模式

二叉树的非递归遍历

sql有时候为什么不走索引,系统判断依据?

sql执行器

线程池初始的默认核心线程数大小

缓存击穿、缓存雪崩怎么防止

hashtable 和hashmap的数据结构有什么不同



 

百度面经

一面

看了一眼我的项目,问是不是github上面的,我说是。。

面试官:你还挺老实,直接承认了

然后就没有问过我的项目了。。

1.spring BeanFactory和FactoryBean

2.spring bean生命周期

3.ConcurrentHashMap size()过程(我说我没看过这部分源码,面试官说可以自己发挥)

4.Synchronized ReentrantLock锁

5.写代码,多线程,三个方法A,B,C,循环打印十次A、B、C。没写出来,后面换了一道先执行完A、B再执行C

6.二叉树每个节点添加一个next指针,指向同一层的下一个节点(层次遍历,但是面试官说他觉得深度遍历更简单)

7.一个有障碍物的迷宫,求小球是否可以从左上角滚到右下角(有墙,可以向四个方向滚动,但会一直滚动到撞墙为止)

8.数据库隔离级别,innodb默认隔离级别,什么是幻读,innodb能不能解决幻读,怎么解决

 

(只记得这么多了。。)

最后他问我innodb怎么解决幻读的时候我直接说我忘了,面试官就笑了说你挺牛逼啊。。。当时就觉得凉了。。

 

二面(是个小姐姐)

1.同步和阻塞的区别

2.redis缓存穿透,缓存击穿,怎么解决

3.tcp协议的状态

4.线程池核心参数

5.线程池shutdown和shutdownnow的区别,实现原理

6.写代码,正则表达式匹配(剑指offer原题)

 

三面(全程被吊打)

从简历开始,说我的项目太简单没必要写,不如写自己研究方向

具体的问题记不太清了,还是偏技术的,我说的最多的就是不好意思/不清楚/不知道/不了解

(当时只想快点结束让我走吧)

两道代码题:

1.二叉树层次遍历

2.n个骰子,抛出点数和为m的概率(写了一个暴力的,他说让我回去看看动态规划。。)

结束的时候我问面试官这个是技术面吗,面试官说综合面,我问为什么不问我hr的问题,,,

面试官:我不看重这个,那我们就随便聊聊hr的问题吧。。

然后就随便聊了一下人生就结束了。。

 

希望大家秋招顺利上岸!

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值