Java基础
文章平均质量分 73
siyuan001
这个作者很懒,什么都没留下…
展开
-
java 基础面试题
一、数组有没有length()这个方法? String有没有length()这个方法 数组没有length()这个方法,有length的属性。String有有length()这个方法。 二、final, finally, finalize的区别。 final 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。 内部类要访问局部变量,局部变量必须定义成final类型,例如...原创 2018-09-03 09:27:11 · 134 阅读 · 0 评论 -
Java 并发 --内存模型
内存模型—JMM 源代码中的指令顺序和实际运行时的指令顺序可能是不同的,编译器出于优化的目的,会对指令进行「重排序」,会采用乱序或并行等方式来执行指令,它只要满足一个条件即可:「程序的最终结果与在严格串行环境中执行的结果相同」。在这种情形下,如果另一个线程坐在那观察某个执行过程中的线程,会发现该线程的执行过程是不可预测的,在这个时候得到的状态也是无效的,这就是安全发布的必要性。 除此之外,JMM ...原创 2018-11-11 15:13:08 · 107 阅读 · 0 评论 -
Java并发 --- 原子变量
Java 并发 --原子变量 原子变量出现的原因 --并发 锁的劣势 Sysnred 当多个线程争用锁时,JVM 会借助操作系统的功能挂起线程,等待之后再被恢复(如果用了自旋锁就不一定会被挂起),这里的主要开销就来自于线程的挂起和恢复。除此之外,锁还有可能会带来类似死锁、活跃性等问题。 Voliet 劣势 与锁相比,volatile 变量的使用不会发生上下文切换和线程调度,因此它是轻量级...原创 2018-11-11 15:40:02 · 168 阅读 · 0 评论 -
Java并发 --ReentrantLock
ReentrantLock 的使用 new 一个对象 获得锁 执行任务 释放锁 使用代码 Lock lock = new ReentrantLock(); lock.lock(); try { // update object state } finally { lock.unlock(); } ReentrantLock 属于显示锁 式锁除了使用起...原创 2018-11-11 15:52:15 · 97 阅读 · 0 评论