蚂蚁金服实习(裸)
电话面试,问的很基础,int和integer的内存区别,String类可以被继承吗,linkedlist和arraylist的区别,final的特性。其他和项目相关的东西(redis,zookeeper,dubbo,solr) 推荐看操作系统和编译原理。
阿里巴巴实习(半裸)
- 先做自我介绍
- 没有多余的机器怎么实现分布式(推荐使用Docker容器)
- zookeeper与dubbo怎样配置
- 商城怎样实现秒杀系统
- redis做缓存(分布式下)怎样实现线程安全
- 缓存穿透问题的解决方案
- JUC包的特性
- ConcurrentHashMap与HashMap的区别
- JAVA各种锁机制
- 找出另两个字符串的最大重复子串数(KMP)
中兴通讯提前批
一面:
- 自我介绍
- 商城里的购物车系统怎么实现的
- 介绍文章专利(晶振的老化漂移)
- TCP/IP协议
- Linux基本命令(查看cpu使用率和磁盘使用率没答出来)
- 怎样完成项目开发后期测试工作
二面:
- 自我介绍
- 怎样看待加班
- 如果在工期内完不成工作怎么办
- 英语自我介绍
- 介绍项目的人员分配与相互协作
三面:
- 个人情况,家庭背景之类
- 爱好,在学校的校园活动
- 项目的开发流程,压力测试
- 实验室的工作
- 有没有兴趣做别的职位
OPPO提前批
一面:
- 自我介绍
- 有没有学过计算机网络,操作系统,数据结构相关课程
- 如何实现和启动一个线程(自己实现接口start / 线程池excute或submit)
- 线程池的构造器参数有什么,各个代表什么,线程池接受一个请求时的各种情况,拒绝策略的几种方式
- 了解过NIO吗,对Netty了解吗?(这个说不是特别了解,其实应该答一些)
- 用过哪些数据结构,Atomic原子类的原理,HashMap是线程安全的吗, 它put一个数据的过程
- ConcurrentHashMap,HashTable和Collections.SynchorizedMap都是怎么实现线程安全的
- JVM加载一个类的过程,双亲委派模型的概念,解决的什么问题(自定义String类由哪个类加载器加载)
- Spring的IOC的优点和原理
- SpringMVC接收到一个请求的处理过程
- Dubbo和zookeeper实现服务注册请求的过程
- Dubbo的底层框架原理和通信协议
- 项目中的SSO单点登录系统是如何实现的
- 项目中的nginx的应用场景
- 场景题1:检测上亿用户的登录状态,并给已登录用户推送信息?
答:通过一致性哈希为每个用户分配一个用户ID,将用户的状态信息集体传入BitMap中,最后通过检测BitMap中的用户ID状态信息进行推送,BitMap中的用户信息进行定时更新。
- 场景题2:上亿用户请求服务器资源,怎样保证服务器性能?
答:搭建服务器集群,通过nginx实现软负载均衡,将用户的SessionID存入redis中,每个SessionID对应一台服务器,考虑到数据量庞大,搭建redis集群(面试官推荐使用redis分片)。实现每个用户去固定的服务器请求服务。
字节跳动
一面:
- 自我介绍
- 计算机网络七层模型,每一层的含义及应用场景(数据链路层的作用,路由协议哪一层)
- 数据结构有哪些,了解哈希吗(答得不好)
- 快排的实现原理
- 进程和线程的区别
- 操作系统切换进程的内部流程
- 操作系统的内存块和内存页的含义(不太了解)
- 死锁产生的原因和产生的条件
- Java虚拟机的类加载机制的加载过程,每个过程的工作
- Java的初始化顺序
- 数据库的ACID每个的含义
- 算法题(蓄水池最大容量)
二面:
- 自我介绍
- TCP三次握手,四次挥手的原因
- 如何避免死锁产生
- 数据库索引Hash索引,B+树索引各有什么优缺点
- 红黑树的特点
- HashMap拉链法同扩容原理及为什么按2倍扩容
- 堆排序的实现原理
- 垃圾收集器的底层原理
- 垃圾收集器的几种算法各自的应用场景和利弊
- 面向对象的特点
- Final的作用
- Java底层怎样实现多态的
- 算法题(判断一个树根节点到叶子节点的值的和是否等于期望值)
美团
一面:
- 自我介绍
- 介绍项目的整体框架
- 为什么用zookeeper实现注册中心
- MySql怎么去重(distinct)
- 如果两个用户同时提交订单但库存只有一件,怎么解决(事务)
- 项目中用到的事务,怎么实现的
- 知道活锁吗
- Java中堆内存怎么实现的,对应的垃圾收集算法
- Java中堆内存溢出产生的原因,及排查方式
- CAP的概念(一致性,分区容错性,持久性)
- 项目中用到的设计模式(回答策略模式),怎么实现的
- 给出一个命题,用策略模式给出设计方案(汽车经销商)
- SpringIOC的底层实现,三个业务层同时请求持久层的Bean实例,会有几个Bean
- sychorized和reentranlock的区别
- 写一个 归并排序(递归和非递归实现)
二面:
- 自我介绍
- 先自己用代码实现一个栈结构
- 然后问这个栈是不是线程安全的,如果不是怎样实现,除了用锁还可以用什么实现(用CAS怎么实现)
- 一个线程的生命周期,sleep会占CPU吗
- sleep和wait方法的区别
- 死锁的产生原因和解决方法
- Java多态有什么好处
- 为什么要重写equals方法
- TCP三次握手的原因
- 了解哪些设计模式,写一个模板设计模式
- 有哪些常用的数据结构
- JUC包用过哪些,介绍一下ConcourrentMap的原理
- B+树的特点,B树和B+树的区别
- 怎样保证cap里的一致性
- 哪些情况下要用到事务
- 了解分布式事务吗
- 了解数据库的MVCC吗
- 系统CPU飙升的原因有哪些(只说了死锁。。),怎样排查CPU飙升问题
- 看过哪些微服务的书
- 说一下分布式的概念和特点
- 数据库的锁有哪些,介绍一下独占锁
- 负载均衡策略有哪些,轮询和一致性哈希的区别
- 介绍一下事务的ACID,说一下脏读,重复读,虚读的产生原因
- Mysql主键索引和唯一索引的区别
浦发银行
先机试
一面:
- 自我介绍
- 问了几个Linux的常用命令,其中vim的步骤 i + 编辑 + :wq
- mysql和redis的区别
- Mybatis中的#{}和${}的区别
- Mybatis相对于JDBC的优势有哪些
- Mybatis的XML文件怎么写
华为
一面:
- 自我介绍
- 三个节点可以组成多少二叉树
- 红黑树的使用场景
- 了解介绍一下平衡二叉树
- 笔试复盘(重新手撕笔试第一题)
二面:
- 自我介绍
- 项目的分工,负责哪些模块
- 做过压力测试吗,大概能承受多少的并发
- ARP协议的作用
- 手撕了两道代码题
三面:
- 自我介绍
- 讲一下自己的优势
- 平时有什么兴趣爱好
- 讲一下自己的专利(刨根问底)
- 给12306设计一个承受高并发的抢票系统
小米
一面:
- 自我介绍
- 说一下自己的优势
- 项目主要负责哪些模块
- 介绍一下Dubbo的运行原理
- 项目中Zookeeper是干嘛用的,怎么部署到Linux上的,平时Linux平时会用到哪些命令
- Session的作用,项目里的Session是做什么的(SSO)
- 了解Spring吗,SpringIOC是什么,它的作用是什么
- 平时有参与数据库的优化吗?(说了索引)
- Like‘% + 关键字’,其中关键字的位置放在哪里会用到索引
- 聚簇索引和非聚簇的区别,它们用到了什么数据结构
- B树和B+树的区别
- OSI七层模型中应用层的下一层是哪一层
- ICMP协议是做什么的(判断IP包是否发送成功,以及不成功的原因)
- 了解DNS吗,它是做什么的,了解它的递归请求吗,世界上有几个DNS根域服务器
- 会写前端吗
- 写一个二分查找程序
二面:
- 自我介绍
- 手撕牛客的题
- TCP/IP分别下哪一层,路由器属于哪几层
- 讲一下SpringMVC的请求过程
- 说一下Servlet的生命周期
- 有了解Servlet3.0吗,它的异步请求知道吗
- java中的多线程了解吗,为什么会有多线程,解决什么问题
- JUC包下线程池的构造方法的参数,都代表什么
- 阻塞队列有了解过吗,它有哪些应用场景,知道生产者消费者模式吗
- 知道AQS吗,它的底层实现了解吗
- 了解NIO吗,介绍一下
- Mysql的存储引擎有哪些
- Innodb和myslam的区别
- 行锁的加锁流程
- 有了解过间隙锁吗
顺网科技
一面:
- 自我介绍
- 项目中又遇到哪些困难
- 说一下面向对象的特点
- 为什么说Java语言是跨平台的
- 项目中的SSO单点登陆系统是如何实现的
- SpringMVC接收到一个请求的处理过程
- 以后的职业规划
- 会看哪些技术书籍
- 了解Nginx吗
- 正向代理和反向代理的区别
- 怎么设计一个支持高并发的系统
- 会写前端吗
- 说一下Java线程中Join方法的底层原理
虎牙直播
一面:
- 如果java - XX.jar 运行一个jar包,应该运行jar里的哪个main方法
- 一个char型占几个字节,他是用什么编码的,Unicode和UTF-8的关系
- HashMap的数据结构,了解红黑树吗,还有哪些用到红黑树的集合
- 给一个HashMap同时存一万条数据,会出现什么问题,怎么优化
- 一个计算密集型的任务在多线程情况下怎样设置线程池的大小(查看CPU的核数)
- Spring中怎么解决循环依赖的问题
- redis的高可用介绍一下,问什么半数以上失败会定义集群失效?(paxos算法)
- Dubbo注册服务怎么实现的
- 了解Dubbo的异步调用吗,异步IO了解吗
- Dubbo的内部序列化用的什么协议
- 两个rpc服务之间的调用时长连接还是短连接,为什么
- 如果一次给一个Mysql中插入上万条数据,怎么优化