面试刷题10-16

发个面经攒RP
10.10一面   10.12二面   10.15offer

一面   60min
自我介绍
hashmap  concurrenthashmap
多线程
线程池
aqs
平衡二叉搜索树  
项目
spring ioc aop理解
hash算法
一致性hash
分布式 微服务的了解
cap  base  



hashmap

hashmap的线程安全问题,如何解决线程安全问题

ConcurrentHashMap,CAS的ABA问题。

红黑树是什么样子的。



JVM了解什么,

JVM内存模型,运行时数据结构,(类加载机制没说)

GC的三种算法。

Minor GC的时候其他线程是否可以继续运行?

JVM进程运行时的CPU占用???

线程池有哪些?不断创建线程会占用哪些资源???

数据库

存储引擎,Innodb和MyISAM的优势是什么,

InnoDB里面的B+树了解吗

事务的隔离级别

读未提交,读提交,不可重复读,串行化

用过的隔离级别。

数据库的主从同步




网络

tcp和udp的区别

http1.0和2.0的区别

一个tcp连接有几个http请求 

1个

http2.0多路复用的话,一个tcp连接是否可以有多个http请求。

可以


redis

redis的数据结构,

string,hash,set,list,zset

redis挂了怎么办?redis的高可用性。

项目里面,如果redis挂了怎么办

项目的接口优化怎么做

项目里面的异步队列挂了怎么办

还了解什么异步队列,(kafka)

SpringBoot了解吗?SpringCloud了解吗?

微服务了解吗

dubbo了解吗?

语义分析的word embedding是怎么做的

模型是什么样子的

讲一下Bi-LSTM模型。

NLP了解吗?

机器翻译的模型是什么样子的。


 

字节跳动一面

自我介绍

项目实现

cpu调度方

7层网络模型

http、tcp、ip在哪层

tcp的滑动窗口机制

tcp的拥塞控制

垃圾回收的gc root是哪些

jvm的内存分区

final是什么,可以修饰哪些

修饰方法,修饰类,修饰变量

死锁的四个要求

互斥条件,占有且等待,不可强制占有,循环等待条件

1 互斥条件:一个资源每次只能被一个进程使用。

2 占有且等待:一个进程因请求资源而阻塞时,对已获得的资源保持不放。

3)不可强行占有:进程已获得的资源,在末使用完之前,不能强行剥夺。

4 循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。

这四个条件是死锁的必要条件,只要系统发生死锁,这些条件必然成立,而只要上述条件之

一不满足,就不会发生死锁。

写一个死锁

数据库 事务acid 及意义

A原子性

C一致性

I隔离性

D持久性

数据库 范式

数据库有三范式

left join,right join,full outer join ,inner join

简单算法题

二面

1. 二叉树的非递归中序遍历

2.项目实现

3.单例实现

4.volatile是什么 有什么用

修饰变量的关键字,保证内存可见性,禁止指令重排

5.四种引用,什么情况用什么引用

6.一个数组里,有一个数的个数是奇数,其余数的个数是偶数,求这个数。(网上答案是用 异或)




1.自我介绍
2.jvm的内存划分,gc算法

线程共享区域为:(1)java堆 (2)方法区

线程私有区域为:(1)JVM栈 (2)本地方法栈 (3)程序计数器

3.s锁r锁,乐观锁悲观锁,java并发的一些api什么的,公平锁非公平锁,线程的生命周期
4.还有判断一个对象是否是垃圾对象,判断一个线程是否死亡,守护线程


5.mybatis和ibatis的区别,springMVC的运行流程,mybatis里#和$的区别

 


6.集合的接口,ArrayList,hashmap(1.7,1.8的区别,为什么并发会出错(put的时候会操作丢失,resize的时候会(头插入,死循环)))


7.并发hashmap,怎么得到并发安全的ArrayList(collections的synchronizedlist(),copyonwriteArrayList),hashset,treeset(avl树,copareable接口的copareto方法)


8.数据库的隔离级别


 

阿里天猫

一面 3.14

1. 自我介绍
2. 说说项目
3. 负责哪一块
4. 说一下项目架构和部署情况
5. 说说权限管理
6. HandlerInterceptor的原理
7. 数据库索引怎么建的
8. Spring的IOC原理,启动流程是什么,怎么加载Bean的
9. 源码你知道吗?
10. AOP源码呢,你平时怎么学习Spring的
11. JVM的类加载机制,原理
12. 为什么Java是跨平台的语言,class文件怎么被加载的
13. 垃圾收集算法
14. Java的内存模型,Java8做了什么修改

 


15. 了解哪些容器,看过源码吗
16. 说一下ConcurrentHashMap的源码
17. 红黑树是什么原理,为什么要用红黑树,不用其他树
18. 堆排序怎么实现的

 

 

二面 3.18

 

1. 介绍一下的学习情况和项目
2. 这个电商后台是做什么的呢?
3. 说一下权限管理怎么实现的?有那几张表
4. 为什么不用现有的权限框架
5. 自己怎么拦截操作
6. 每次都要去数据库中查吗?怎么优化
7. 我说session存权限,问怎么优化
8. 我说用redis?问redis怎么做,达到什么效果,解决了什么问题
9. 那你觉得session那个方法能解决问题吗?
10. 那你们是怎么判断用户登录状态的呢?
11. 如果用户掉线怎么知道他掉线了?
12. 你说一下你都熟悉什么技术

 


13. HashMap你知道吧,它线程安全吗?
14. 线程安全的map有哪些,都是怎么实现的?

ConcurrentHashMap,HashTable


15. hashtable用synchronized修饰,那你说一下synchronized都能修饰什么,区别是什么?

修饰代码块,修饰方法
16. ConcurrentHashMap是怎么解决并发问题的?

JDK1.8之前采用分布式锁,JDK1.8之后采用CAS


17. 数据库你了解过吧?隔离级别说一下,以及都产生什么问题

读未提交,脏读,幻读,不可重读读都有。

读提交解决脏读

可重复读,解决不可重复读

串行化所有都解决。

 

五面(交叉)4.24

时隔13天,接到了面试官电话,直接面

  • 了解一下项目
  • 都做了什么                                                                                                                                                                                                                                                                                                                                                                       
  • 项目时部署在公网吗,然后就说网址面试官直接登录,用测试帐号看了一下
  • 最后聊了聊具体模块设计和实现

HR面 4.24 18点左右

北京在下雨,吃饭的路上接到hr电话,很激动

  • 聊聊本科和研究生学习方面
  • 项目方面
  • 意向以及工作城市选择
  • 可以来杭州吗?(我在北京)
  • 有什么问题问我吗?

我问:

  • 可以告知面试评价和评级吗?
    答:不要担心,能面到HR说明评级没问题。

  • 大概什么时候有结果呢?
    答:阿里每周五下午和晚上统一发放意向书,请注意关注。

感谢

感谢一起和我在实验室奋斗的同窗,大家互相鼓励才得以坚持下来,感谢牛客给我提供这个互联网求职平台,使得我可以接触到这么多优秀的牛友,大家一起分享知识一起加油。

希望大家的努力都不被辜负,也祝所有人都能在接下来收到满意的offer

 

 

 

一面:

1、自我介绍,问项目,因为没实习过还是本科生,能扯一下的项目只有一个大创项目

2、问了一下关于线程池参数的含义

3、线程的几种状态以及它们之间如何切换

线程共有六种状态

面试刷题10-16_第1张图片

4、volatile关键字的作用

 

5、Java锁的分类,像乐观锁悲观锁,共享锁和排它锁之类的。还问了一下CAS

6、Java泛型的类型擦除

7、HashMap结构,是否线程安全。ConcurrentHashMap如何保证线程安全

8、说一下用过哪些设计模式

9、URL访问的流程,用到哪些协议

10、三次握手、tcp重传机制、tcp拥塞控制

11、tcp和udp的区别

12、讲一下虚拟内存

13、数据库的隔离级别,以及它们可能出现的问题

14、代码:”之“字形打印一棵二叉树

二面:

1、自我介绍,项目

2、又问了一遍线程池相关的东西

3、发生死锁的条件和如何预防死锁

互斥,占有且等待,不可强行占有,循环等待

通过破坏死锁的四个必要条件,实现避免死锁。

4、JVM内存区域划分,垃圾回收算法。CMS垃圾收集器

5、A、B都是异常类,B是A的子类,问下面代码的输出

1

2

3

4

5

6

7

8

9

10

11

12

        try {

            try {

                throw new B();

            }catch (A a){

                System.out.println("catch A");

                throw a;

            }

        }catch (B b){

            System.out.println("catch B");

        }finally {

            System.out.println("Finish");

        }

 

6、数据库事务特性,以及如何保证这些事务特性

原子性,一致性,隔离性,持久性

7、MySql如何避免不可重复读

设置隔离级别为可重复度

8、手撕代码:判断二叉树是否对称

三面:

1、学过什么课外的东西

2、问了下Spring IOC和AOP相关问题

3、redis中持久化策略RDB和AOF

4、Servlet2.5和 3.0区别,因为说了可以使用注解代替写配置文件,面试官顺势又问了一下Java注解

5、Linux查看端口号的指令

  ps -ef|grep java
lsof -i | grep pid

 

问到查看端口,记住lsof和netstat

 

 

 

6、是否有时间实习

7、反问环节


18. Jvm的gc你了解吧,说一下
19. 那你说可达性分析,是什么结构的?是树吗?
20. 那你认为它是深度优先还是广度优先遍历
21. 你是网络技术研究院的,你知道网络IO有哪些?
22. 提醒我?BIO和NIO什么区别?           阻塞IO和非阻塞IO
23. 你最近在学什么新知识呢?
24. 你在学习生活中有什么可以给我分享的吗?
25. 你的职业规划是什么?
26. 你有什么问题问我吗?
27. 我问技术栈需要补充些什么?
1. 答:虽然你们项目是单机的,但是你要考虑当项目变大,用户量超大的时候怎么办,项目架构如何演进,电商项目肯定是有复杂业务的,如何将业务解耦做到微服务,要研究项目如何优化才能适应不断增长的需求
2. redis学习方面,不仅要了解原理,更要理解它的使用场景,在什么场景下使用redis可以解决什么样的问题是关键,结合自己的项目,进行设计和思考

 

 

你可能感兴趣的:(算法)