java后台开发实习近期面经
快手一面
Java类加载的过程,分几步,(从.Class文件变成一个实际的对象需要哪些操作)
类初始化的过程
JVM分成哪几块,Java内存模型,运行时数据区有哪几部分
本地方法区里放的是什么
Mysql使用哪种搜索引擎,innodb有哪些特性
Innodb的索引用的是什么,b+树的特性是什么
聚集索引和非聚集索引在数据结构上有什么区别?
说一下hashmap,红黑树和平衡二叉树有什么区别,为什么不使用平衡二叉树?
Hashmap链表插入方式为什么是尾插?说说Concurrenthashmap,他是如何加锁,put和get有什么区别
Hashtable的底层是什么,为什么线程安全
Synchronized有几种用法?他锁的是什么?怎么加锁,如何使锁生效?Synchronized的底层是怎么做的?(面试官:锁的是对象,在对象的头里加了一个计数器,进行锁升级)
Volatile有原子性吗?
背一下网络模型,http在哪一层,tcp在哪一层,tcp有什么特性,怎么保证可靠性
Mysql事务隔离级别,有什么区别,什么是脏读幻读不可重复读
聊一聊redis,(我说了持久化方式)如果RDB和AOF同时开启,默认使用哪种方式恢复,为什么?
多线程用过吗?线程间通信方式?Wait,notify,sleep有什么区别?
写题:反转链表,
判断是否有环,
返回换环点(我说了个hashset的思路,面试官说有重复节点怎么办)
快手二面
项目:讲一讲token各部分放了什么,干嘛的?
讲讲百度api怎么用的?
Redis内存满了怎么办(redis内存淘汰机制)
Linux常用的指令?
在浏览器里输入url后会发生什么?
Java方面看过那些源码?线程池用过吗?有哪些参数?拒绝策略?
threadLocal用过吗?
Select...............for update用过吗,什么意思?
平常建立索引,使用什么索引?
JVM方面看过什么书吗?
有三个排好的数组(每个数组里放100w个数字),取出其中最小的10个数。
有8个数字,1,1,2,2,3,3,4,4,把这8个数字排成一排,两个1中间隔一个数,两个2中间隔2个数,两个3中间隔3个数,两个4中间隔4个数.
京东
在浏览器里输入url后整个过程
Dns协议在哪一层,tcp在哪一层,tcp如何保证传输顺序,滑动窗口协议
Tcp和udp区别
面向对象的特性,怎么理解多态?
重写和重载的区别
Arraylist和linkedlist的区别?
mYbatis的sql注入
Mysql的索引的作用?Innodb和myisam的区别?有哪几种行锁?
快排的时间复杂度
抽象类和接口的区别,接口里允许有私有方法吗?
Redis的数据类型和持久化方式?知道resp协议吗?
用redis实现分布式锁
Hashmap是线程安全的吗?为什么不安全?
讲一下AOP
乐观锁和悲观锁,讲一讲CAS。
阿里巴巴(钉钉)
http协议和https协议的区别,https通信原理整个流程
讲讲三次握手
有看过java相关的书吗?
301和302的区别
项目用的jdk哪个版本?Jdk1.7和jdk1.8的区别(我讲了hashmap和concurrenthashmap),在java内存模型上的区别?
知道函数式编程吗?(lambda)
讲一下hashmap实现原理?重写equals方法为什么一定要重写hashcode方法
讲一下线程池的核心参数都是什么意思?核心线程数和最大线程数这两个有什么关系,为什么要有这两个参数?
了解过并发编程的队列linkedblochqueue之类的?
了解乐观锁悲观锁吗?
Redis怎么搭的,在项目里怎么用?讲讲redis主从复制模型,对缓存有什么理解,使用缓存会带来什么问题?(如何保证缓存与数据库双写时的数据一致性)缓存穿透怎么解决?
问了超时取消这个功能怎么做?
Mysql事务隔离级别?什么是脏读?Myaql事务特性(我说acdi),事务具有隔离性的话为什么会读到其他事务未提交的数据呢?
讲一下垃圾回收机制?类加载机制,双亲委派模型?
问题:编程题:两个大数相加,入参两个大数均用string表示
腾讯
JVM内存模型,类加载器
Volatile关键字,底层实现机制
Hashmap
进程和线程的区别,进程怎么通信,什么是管道
计算机里的大端字节序和小端字节序是什么?
讲一下TCP三次握手,为什么要三次握手,TCP的SYN Flood洪水攻击了解吗
Mysql索引如何实现?
百度一面
说一下java集合,他们各自有什么结构特点,分别适用什么样的情况
Hashset如何实现的,如何遍历一个hashmap(我回答是iterator迭代器),迭代器迭代的是谁,用的是什么方法?
Hashmap底层的实现了解多少?Hash根据什么算出来的?对象的equals方法在什么时候会用到
Object类里都有什么方法?
Java线程的生命周期和切换的条件都是什么?Sleep和wait方法的区别
Join和yield的方法作用是什么?
举个例子:new两个线程thread A和thread B,然后用starrt()方法同时启动两个线程,哪个线程先执行?(我觉得是A)为什么是A?线程运行的条件是什么?再回到这个问题上?
有线程1和2,需要等线程1,2都执行完再执行3,因为3需要1和2的结果,这个模型怎么做?
说一下synchronized实现的机制,举个例子:有个类中有两个静态方法A,B都用了synchronized修饰,现在又两个线程1,2。1执行A方法,同时2执行B方法,能执行吗,为什么?
线程安全的单例的写***吗?作用是什么?
说一下GC,A引用B,B引用A,他们会被会被回收吗?
JVM内存模型里的栈帧知道吗?
说一下事务的基本要素,引发的问题以及合理解决的方法?脏读幻读不可重复读分别是什么?Mysql的索引是怎么实现的,一般怎么用?
Redis持久化方式,单机,主从,哨兵,集群这几种模型部署方式,这些架构能解决什么样的问题,存在什么问题?
Springboot的bean注入和bean的生命周期?
说一下OSI网络模型和TCP/IP协议栈?ARP协议的作用是什么?TCP和UDP的区别,TCP怎么做到流量控制?TCP和HTTP有什么联系?说一下HTTPS的通信加密的整个流程?
HTTP的header头有哪些信息?你项目里的Token放在哪Cookie了解吗
并行并发的联系和区别,线程和进程的联系和区别?
僵尸进程的原理,进程间通信的方式,操作系统的进程调度算法有哪些
算法:链表的倒数k个节点
说一下快排的思路
使用Object类的方法实现一个生产者—消费者模型能写吗?
反问
百度二面
问的都是项目
延时取消订单的逻辑怎么做的?
登录功能的全部过程,token存在客户端的哪里,在https的header的哪一部分?有两台服务器A,B,用户在服务器A登陆后,服务器B如何知道其为合法用户?
Get和post请求的区别
如果客户端发送一个请求,服务器处理这个请求需要很长时间,这种情况的处理方法?一方面避免时间过长会超时,另一方面如何从程序的设计上面避免这个问题。
Linux指令说说。
部署redis时遇到过什么问题?比如增加redis的访问权限。项目中redis做的什么?在项目中用得什么存储模式。
Redis有哪些数据类型,分别什么作用?如果redis出现故障比如断电宕机,如何避免数据丢失?
项目的数据库的数据量,数据库中存用户名密码有什么要注意的吗?
索引有哪些类型?使用联合索引有什么注意的地方?
Sql优化,A表B表做联合查询怎么做,inner join和左连接和右连接的区别?
什么是sql注入,如何防止sql注入?
项目中有遇到什么问题吗?
项目里的数据库是单机还是主从复制架构?知道主从数据库吗?
前端页面自己写的吗?前后端交互怎么做,连接方式是什么?
了解跨域问题吗?
有一栋楼100层高,小球从100楼扔下就一定会碎,给你两个小球,如何最有效率的找出哪一层楼让小球刚好不会碎(两个小球只要没碎就可重复利用)
百度三面
随便聊了聊
怎么大三就出来找实习?
怎么看待加班?
作为女生做开发会不会感觉压力大?
工作过程中要学习c++,php,python,golang你能接受吗?
以后职业规划
一面二面的小哥哥更喜欢哪个(啊这,我直接:都很好,顺便夸夸百度面试官素质高)
反问:询问自己面试表现,该部门工作
网易一面
线程安全框架有哪些?currenthashmap如何实现线程安全?和hashtable有什么区别?
创建线程的方式,runnable和callable的区别?
一个线程的生命周期是什么,线程start之后会一直执行吗?
Javav中实现锁有什么方法?讲讲volatile,如何实现数据可见性?
Java创建线程池的方法?线程池的种类和参数?举个例子:核心线程数是5,最大线程数是10,workqueue是10,现在要有运行6个线程,讲下流程
Java设计模式知道哪些?简单手写个单例模式
MySQL的事务隔离级别,各解决什么问题,MySQL的默认隔离级别是什么,什么是内连接外连接交叉连接,他们的mysql指令怎么写?
Innodb怎么实现行锁?
什么是最左前缀原则?Mysql有哪些索引优化的方法?
手写sql题:成绩表:Scores(stuId,courseId,score)
stuId:学号;
courseId,课程编号;
score:成绩
查询所有课程平均成绩大于60分的同学的学号和平均成绩;
Spring框架如何处理接口请求?Springboot注解了解多少?
Spring和springboot有什么区别?
Spring的AOP如何处理的?
手写算法:快排
讲讲快排的思想?
网易二面
商品订单的数据库表是怎么做的?如何设计一个订单列表?如何做个订单商品详情,怎么通过外键设计两张表?
如何使用的rabbitmq来做延时队列?在写这个功能的时候有什么问题?
使用redis作缓存这个部分怎么做的?Redis和mysql数据如何保持一致性?
简单说5-10个linux指令。使用过git吗?
说说Mysql的索引,假如往b树里插入一个数,子节点满了,如何插入
如何解决缓存穿透,布隆过滤器底层是如何实现的?讲一讲归并排序
说一说计网的五层结构?TCP和UDP区别?TCP如何保证传输的稳定?说说TCP和UDP支持的上层协议
简述在浏览器中输入一个url得到一个页面的全过程。
青年代有哪些区域,用的什么GC算法,讲讲复制算法的逻辑,老年代的回收算法用的什么?假如发生了一次full GC,程序会吊起吗?
手写sql:表tb_clazz:clazz(班级) name(学生姓名)
A 小明
A 小李
B 小红
....
人数最多的5个班级,输出班级名
手写算法:反转链表
腾讯初试
最近看dubbo框架有什么原因?
并发的时候会出现什么线程问题?Hashmap是线程安全的吗?除了数据问题还会有什么问题?Happens-before是什么?Volatile如何保证数据可见性?
Synchronized和lock有什么区别?
Synchronized加在普通方法上锁的是什么?加在静态方法上锁的是什么?
创建线程池的方法?线程池的实现原理。
创建一个thread线程,我要跑10个runnable,怎么做?
讲讲GC算法,新生代分为几块,比例是多少?用的什么回收算法?什么情况下发生full GC?
Innodb和nyisam的区别,用的什么索引?讲一下通过普通索引/聚簇索引查询数据的流程?
Arraylist和linkedlist的区别?
currenthashmap如何实现线程安全?怎么保证扩容的线程安全
介绍项目
MySQL事务隔离级别,什么是幻读,MySQL如何解决不可重复读?知道MVVC吗?
Redis有哪些数据类型,有哪些持久化方式
Rabbitmq如何解决重复消费?Redis如何实现分布式锁
解决hash冲突有哪些方法?
Redis底层数据结构,淘汰过期键的策略?
初试已过,再等复试