超全大厂Java面试彩蛋

1.字符串的比较

Sting str =null;
//str是null时会报错
system.out.println(str.equals.("test"));
//优化1
system.out.println("test".equals.(str));
//优化2
system.out.println(Object.equals.(str,b:"test"));

2.线程通信
生产者、消费者问题
在这里插入图片描述

//一般用wait()、notify()、notifyALL()来写;

//可以用semaphore、Google的guava类库monitor

3.ArrayList和linkedList的区别
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
实现randomaccess 用for循环遍历,如果无则用it迭代器
在这里插入图片描述
linklist不能用索引方式访问,ArrayList索引是标识出来的,linklist索引是存储起来的

4.wait和sleep的区别
在这里插入图片描述
必须得唤醒(notify)
5.常见的map类及其区别
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6.IO模型BIO、NIO、AIO的区别
BIO:同步阻塞IO
问题:高并发的时候容易发生资源不足
服务器端收到大量的来自客户端的IO请求是需要新建线程来处理这些请求,服务器资源很可能就会被耗尽,如果是在高并发的一个情况下,就会导致大量的这个连接被挂起,服务器资源,就会严重不足,针对每soket连接服务器,他都需要去新建线程,哪怕是使用的线程池也也会因为这一个线程上下文切换造成了大量的开销
在这里插入图片描述
NIO:同步阻塞
在这里插入图片描述

AIO:异步非阻塞
在这里插入图片描述

使用场景
在这里插入图片描述

7.error和exception的区别
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述notclassdeffounderror :找不到类,jar不存在,存在不同的类中,大小写问题
classNotfounderror:

8.对象的四种引用
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

9.反射的原理和创建类实例的三种方式
在这里插入图片描述

10.数组在内存中如何分配
在这里插入图片描述
在这里插入图片描述

11.动态代理方式的几种方式和优缺点
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
本质是修改字节

12.Java是如何实现异常处理的
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

13.String、StringBuffer和StringBuilder。
String不可变、StringBuffer和StringBuilder可变
string:
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

14.spring aop的实现原和应用场景

15.序列化和反序列化
在这里插入图片描述
在这里插入图片描述
16.final、finally、finalize的区别
在这里插入图片描述
异常在方法之前,try,里面执行sytem exit,被中止被中断
在这里插入图片描述
在这里插入图片描述
通常不推荐使用

17.Tomcat结构,以及其类加载器流程,线程模型
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
18单例
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

分布式核心设计:缓存与锁

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值