面试题
huxuhang
这个作者很懒,什么都没留下…
展开
-
synchronize原理分析
synchronized的三种应用方式一. 修饰实例方法,作用于当前实例加锁,进入同步代码前要获得当前实例的锁。二. 修饰静态方法,作用于当前类对象加锁,进入同步代码前要获得当前类对象的锁。三. 修饰代码块,指定加锁对象,对给定对象加锁,进入同步代码库前要获得给定对象。synchronized的字节码指令synchronized同步块使用了monitorenter和monitorexit...转载 2019-06-19 16:58:16 · 8371 阅读 · 1 评论 -
线程sleep和wait的区别
线程sleep和wait的区别1、sleep方法是Thread类的静态方法,wait()是Object超类的成员方法2、sleep()方法导致了程序暂停执行指定的时间,让出cpu该其他线程,但是他的监控状态依然保持者,当指定的时间到了又会自动恢复运行状态。在调用sleep()方法的过程中,线程不会释放对象锁;而当调用wait()方法的时候,线程会放弃对象锁,进入等待此对象的等待锁定池,只有针...原创 2019-06-19 17:19:43 · 3113 阅读 · 0 评论 -
synchronized与Lock的区别
1、lock是一个接口,而synchronized是java的一个关键字2、异常是否释放锁:synchronized在发生异常时候会自动释放占有的锁,因此不会出现死锁;而lock发生异常时候,不会主动释放占有的锁,必须手动unlock来释放锁,可能引起死锁的发生。(所以最好将同步代码块用try catch包起来,finally中写入unlock,避免死锁的发生。)3、是否知道获取锁Lock...转载 2019-06-20 17:12:24 · 4585 阅读 · 2 评论 -
GC
JVM运行内存的分类:程序计数器:当前线程所执行的字节码的行号指示器,用于记录正在执行的虚拟机字节指令地址,线程私有注:如果正在执行的是Native方法,计数器值则为空Java虚拟栈:存放基本数据类型、对象的引用、方法出口等,线程私有Native方法栈:和虚拟栈相似,只不过它服务于Native方法,线程私有Java堆:java内存最大的一块,所有对象实例、数组都存放在java堆,GC回收...原创 2019-06-22 21:03:07 · 120 阅读 · 0 评论 -
Spring详解
Spring的核心:IOC和AOPIOC:控制反转,对于spring框架来说,就是由spring来负责控制对象的生命周期和对象间的关系,可以很好地实现模块之间的解耦原理:通过反射实现,Class.forName().newInstanceDI 依赖注入,是IOC的重要实现,指Spring创建有依赖关系的对象的过程中,由IOC容器注入依赖的对象AOP:面向切面编程,就是系统中有很多各不相干的...转载 2019-06-24 15:34:25 · 127 阅读 · 0 评论 -
Springmvc知识点
SpringMVC的流程:(1)用户发送请求至前端控制器DispatcherServlet;(2) DispatcherServlet收到请求后,调用HandlerMapping处理器映射器,请求获取Handle;(3)处理器映射器根据请求url找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet;(4)DispatcherServle...转载 2019-06-24 15:56:17 · 97 阅读 · 0 评论