2023.4.23模拟面试记录

2023.4.23模拟面试记录

面试难度:有一定难度,大家答不出来不要慌哈,按照中大厂的面试来考察的,只会背估计不好回答,但是没关系,答多了就知道怎么回答了。

1、对Java IO模型了解吗?解释一下 BIO 和 NIO 区别?阻塞和非阻塞,同步和异步?

select 和 epoll,netty了解吗?

2、解释一下 equals 和 hashcode区别?在使用他们的时候有什么需要注意的?为什么要同时重写?哪些场景一定需要重写?

3、说一说String? 里面是怎么实现的?最长可以有多少个字符?

4、HashMap的底层实现?还会变回来吗?为什么用了红黑树会快啊?选平衡二叉树可以吗?红黑树查找为什么是 O(logn)?可以简单说一下红黑树的特性吗?

5、HashMap扩容了解吗?HashMap线程安全了解吗?为什么不安全?可以举个例子吗?为什么HashTable是线程安全?怎么加锁的?

聊一聊synchronized?是重量级还是轻量级?比volatile性能低?volatile 有什么用?什么是轻量级锁什么是重量级锁?

了解 CAS吗?了解哪些加锁方式?什么是可重入锁?synchronized是否是可重入锁?synchronized和retreenLock有什么区别?retreenLock是重量级还是轻量级?知道他的底层实现吗?synchronized知道底层实现吗?synchronized和retreenLock有什么自己 用过?CAS和AQS了解过吗?

6、关系和非关系数据库了解吗?可以聊一聊他们的应用场景吗?
7、mysql 索引了解吗?可以简单聊一聊索引吗?用了索引为什么查询会变快啊?索引的底层实现?为什么用B+树?用其他数据结构,比如平衡二叉树可以吗?

建议:回答的更多 +

1、IP地址和MAC地址有什么区别?

2、简单说下TCP有UDP的区别吗?为什么TCP是可靠的?怎么实现的?对流量控制和涌塞控制了解吗?怎么实现一个可靠的UDP?DNS是用到了TCP还是UDP啊?登录QQ的过程,是用到了TCP还是UDP啊?TCP的粘包和拆包了解?

3、简单说一下三次握手?三次握手过程可以携带数据吗?

4、从浏览器输入一个URL,回车,发生了什么?怎么从域名获得IP地址?ARP了解吗?

5、HTTPS了解吗?和HTTP有什么区别?

数据结构和算法这块熟悉吗?

快速排序用了什么思想?时间复杂度?有哪些优化方式?是稳定还是非稳定?为什么不是稳定的,可以举个例子吗?

什么是稳定什么是非稳定?

快速排序适合用在什么场景?快速排序和插入排序哪一个效果更好?一定是快速排序比插入排序好吗?他们都处于最好的状态,哪个更好?

归并排序了解吗?最差情况下,时间复杂度是多少?和快速排序哪个效果更好?

链表和数组有什么区别?

linkedList.remove(1),时间复杂度是多少?

是什么原因导致一个删除快一个慢吗?

红黑树和平衡二叉树有什么区别?他们的查找效率谁更快?平衡二叉树有什么特性?同样的节点下,造一个AVL树和红黑树,谁的高度比较高?

什么是哈希表?了解哈希冲突吗?开发地址法这种有没有了解过啊?只有一个数组,怎么解决冲突?怎么找到它啊?

说一说redis有哪些数据结构?你用过哪些啊?比如在项目中,有没有拿redis当作过缓存?Set用作缓存,是怎么用的?

做过什么项目?简单介绍一下?论坛项目哪块比较熟悉?简单说一下用户登录,是怎么登录的?关于登录,涉及到哪些表?token为什么要存在redis中?存在数据库的话可以吗?有没有测试过啊?用户表有哪些字段啊?id name passowrd 。。。

哪些字段适合加索引?如果用name当作索引,需要注意什么不?哪些情况会导致索引失效?模糊匹配为什么会索引失效?什么是二级索引?匹配失效和一级或者二级有关吗?

你是怎么加密的啊?有什么什么安全问题啊?数据库泄露了,会有安全问题吗?为什么?可以怎么优化啊?你还了解哪些加密算法?

为什么要对密码加密啊?如何数据库并不会泄漏,会有安全问题吗?忘记了密码为什么大家都采用重置的方式,不能找回密码吗?能不能找回原来的密码?怎么找回?

redis用来干嘛?验证码是多少位?十五分钟失效?控制用户发送验证码的频率?后端的频率控制怎么做的?输入错误会导致验证码失效吗?输入很多次错误会失效吗?

synchronized了解吗?为什么重量级了?说一下什么是阻塞吗?乐观锁和悲观锁有什么区别?有什么优缺点?乐观锁有什么优化方式吗?CAS了解吗?比较和交换怎么就原子化?ABA问题?CAS在Java8做了 优化有没有了解?

synchronized 底层实现知道吗?synchronized 是怎么加锁吗?具体是怎么锁对象的?volatile有什么作用?什么情况下变量可以加 volatile 啊?
shychronized i++
cas i++

volatile 除了可以读到实时最新的值,还是什么其他作用吗?单例模式有什么学过吗?你有没有实现过啊?单例模式一般用在什么场景下?单例模式会不会出现线程安全问题啊?

阻塞的话什么效率比较差?切换为什么消耗资源吗?

AQS了解吗?

为什么要使用线程池啊?用了线程池一定效率更好吗?

最大的线程数?核心线程数?

ThreadLocal了解吗?

发表回复

后才能评论