100天准备找工作倒计时:第五天
明天上午有海康威视的面试,所以今天基本是看着面经学的,感觉问多线程很多😅很慌,晚上还有去哪儿和广联达的笔试,一路写到11点半,明天直接拉满了
算法题:
1.监控二叉树(力扣每日一题)(我发现二叉树的题很容易和前中后序结合在一起):设置三种状态:0(未被监控),1(已被监控),2(设置监控器);从下往上判断,根据左右子结点的情况来决定当前结点的返回值,并设置一个变量sum用来记录当前监控数量,还是利用递归,从根节点开始递归到叶子节点再返回最终结果;
面试题(多线程为主):
1.多线程安全问题如何解决:synchronized关键字,同步代码块,同步锁;
2.thread中run和start的区别
3.进程和线程的区别(复习)
4.如何处理线程返回值:主线程等待法、join方法阻塞当前线程等待子线程处理完毕、实现callable接口通过futrue task获取
5.sleep和wait的区别:s是thread的方法,w是object的方法;s可以在任何地方使用,w只能在同步方法或者同步代码块中使用;sleep不释放锁,wait释放锁;
6.等待池和锁池的区别:当线程调用wait方法释放锁后会进入等待池,不参加锁的竞争,而等待池是等待获取锁的线程进入
7.Notify和Notify All的区别:N是随机唤醒一个等待池中的线程进入锁池,N A是让等待池中的所有线程都进入锁池;
8.yield方法:该方***给线程调度器一个当前线程愿意让出cpu使用的暗示,但是线程调度器可能会忽略这个暗示;
9.如何中断线程:.stop方法已经被废弃了,现在使用.interrupt方***设置中断标志位为true,然后线程继续正常运行,线程在正常运行过程中会经常检查该标志位,发现设置为true后就会自动中断线程;
10.volatile:保持内存可见性和代码有序性
11.CAS是什么:compare and swap,内存中取出值后会和预期值进行对比,如果符合的话就执行目标操作,不符合就重复执行对比操作;
12.ABA问题:其他线程将预期值A改为B又改回A,我们对比发现和预期值一样,但其实已经有过修改操作;
13.ArrayList不安全,解决办法:使用vector;Collections.synchronizedList(new ArrayList());使用copyOnWriteList;
14.Synchronized和Lock的区别:lock是个接口,synchronized是个关键字; synchronized在发生异常时会释放锁因此不会导致死锁,lock如果发生异常没有主动去unlock就很有可能造成死锁;lock可以让等锁的线程响应中断,synchronized不可以,只会一直等待下去;lock可以知道是否获取到锁,synchronized不可以;lock可以提高多个线程读操作的效率;synchronized的锁可重入、不可中断、非公平,而Lock锁可重入、可判断、可公平(两者皆可);lock可以设置响应时间,如果超过响应时间还没有获取到锁的话可以停止获取锁并响应放弃操作;synchronized放弃锁只有两种可能,代码执行完或者遇到异常;
15.锁的类型(这个还是不太明白正确答案该怎么说)
16.锁升级机制:偏向锁-轻量级锁-自旋锁-重量级锁
17.CountDownLatch、CyclicBarrier(栅栏)、Semaphore(信号量)
18.线程池如何使用:自带的工具类Executor(newFixedThreadPool()创建指定长度的线程池newSingleThreadExecutor()创建一个单个线程的线程池newCachedThreadPool()创建一个可缓存线程池;);自定义线程池ThreadPoolExecutor(七个重要参数:corePoolSize、maximumPoolSize、keepAliveTime、unit、workQueue、threadFactory、handler);
19.线程池的线程数设置策略:CPU密集型:线程数=cpu核数+1;IO密集型:线城市=2倍cpu核数
20.AOP的实现原理(超长超多,背不下来)
21.AOP的实现方式:基于xml,基于注解;
22.AOP的两种代理方式:java动态代理(proxy和handler,反射创建实例代理类动态编制业务逻辑和横切逻辑)和CGLIB代理(底层字节码技术,创建子类并拦截父类的方法调用并顺势织入横切逻辑)
23.Mysql调优思路(一大堆,记了几个):设置合适的字段类型;连接代替子查询(避免创建临时表);UNION代替手动创建临时表;使用事务;使用外键保证关联性;使用索引;
海康威视的面经没找到多少合适的,明天的面试心里慌得不行,如果真的很难就当锻炼自己了🤐
(就在我刚刚码字的时候收到了又一家公司的线下面试通知,我崩溃了😣)

查看5道真题和解析