大厂面经总结:https://www.zhihu.com/question/60949531
runnable和callable区别?
怎么获取runnable线程的结果?
spring boot怎么设计一个插件?
Springboot自动装配原理?
cookie和token的区别
springboot注解
子线程如何访问主线程的数据?有哪些变量? threadlocal,final,static,(由这两个变量修饰的数据在多个线程的共享内存区域)
动态代理有哪些?
JDK原生动态代理时java原生支持的、不需要任何外部依赖、但是它只能基于接口进行代理
CGLIB通过继承的方式进行代理、无论目标对象有没有实现接口都可以代理,但是无法处理final的情况
JDK代理只能对实现接口的类生成代理;CGLib是针对类实现代理,
面向过程和面向对象的区别
面向过程把解决问题的过程拆成一个个方法,通过一个个方法的执行解决问题。
面向对象会先抽象出对象,然后用对象执行方法的方式解决问题。
CountDownLatch,Semaphore,CyclicBarrier区别与联系
CountDownLatch:使一个线程A或是组线程A等待其它线程执行完毕后,一个线程A或是组线程A才继续执行。(减到0)
CyclicBarrier:让一组线程到达一个屏障(也可以叫同步点)时被阻塞,直到最后一个线程到达屏障时,屏障才会开门,所有被屏障拦截的线程才会继续干活。(达到指定值时)
Semaphore:是用来控制同时访问特定资源的线程数量,它通过协调各个线程,以保证合理的使用公共资源。(限流)
网友评论