File tree Expand file tree Collapse file tree 3 files changed +16
-15
lines changed Expand file tree Collapse file tree 3 files changed +16
-15
lines changed Original file line number Diff line number Diff line change 6
6
![ avatar] ( http://www.cnitblog.com/images/cnitblog_com/lily/1972/o_OOBase.gif )
7
7
8
8
### final, finally, finalize 的区别
9
- - final关键字
9
+ - final关键字: http://www.importnew.com/7553.html
10
10
- finally 用于try语句块
11
11
- finalize()是Object类的一个方法,与GC有关
12
12
### int 和 Integer 有什么区别
27
27
但是只要监控部分接口,有的需要监控。这时可以自定义一个注解,在需要监控的
28
28
接口函数上加上此注解,配合AOP即可实现。Student.getClass.getAnnotation(NeedMonitor.class)
29
29
### HTTP 请求的 GET 与 POST 方式的区别
30
+ - https://www.zhihu.com/question/28586791
30
31
- https://www.oschina.net/news/77354/http-get-post-different
31
32
- 按照上边这个博客的说法, 他们的没什么区别
32
33
### session 与 cookie 区别
52
53
checked Exception 需要在方法上声明 向上抛出
53
54
runtime Exception 不必需处理
54
55
### Cloneable接口实现原理
55
- 1 .
56
+ 1 . 对象要想重写Object的clone()方法,必须要实现Cloneable
57
+ 2 . 设计不合理,apache common更方便
56
58
### wait和sleep的区别
57
59
- https://www.zhihu.com/question/23328075
58
60
1 . 首先,要记住这个差别,“sleep是Thread类的方法,wait是Object类的方法”。尽管这两个方法都会影响线程的执行行为,但是本质上是有区别的。
59
61
2 . Thread.sleep不会导致锁行为的改变,如果当前线程是拥有锁的,那么Thread.sleep不会让线程释放锁
60
62
3 . 调用wait后,需要别的线程执行notify/notifyAll才能够重新获得CPU执行时间(唤醒线程)
61
- ### LinkedHashMap的应用
62
- 1 . 在网上查了 都说是可以基于LinkedHashMap实现LRU(least recently use)
Original file line number Diff line number Diff line change @@ -19,14 +19,14 @@ synchronized方法 不会产生互斥
19
19
3 . 用途区别:
20
20
1 . lock能实现一些个性化的需求
21
21
### 分段锁的原理,锁粒度减小的思考
22
- 1 . 总体思想就是减小锁的粒度
23
- 2 . 结合concurrentHashMap来说,要不然不好表达
22
+ 1 . 总体思想就是减小锁的粒度,
23
+ 2 . 减少锁的竞争
24
+ 3 . 结合concurrentHashMap来说,要不然不好表达
24
25
### volatile 的实现原理?
26
+ - JSR-133 JAVA内存模型与线程规范 对volatile的语义进行了重新规范
25
27
- http://www.cnblogs.com/dolphin0520/p/3920373.html
26
28
- 下面这段话摘自《深入理解Java虚拟机》:
27
- “观察加入volatile关键字和没有加入volatile关键字时所生成的汇编代码发现,
28
- 加入volatile关键字时,会多出一个lock前缀指令”
29
-
29
+ “观察加入volatile关键字和没有加入volatile关键字时所生成的汇编代码发现,加入volatile关键字时,会多出一个lock前缀指令”
30
30
- lock前缀指令实际上相当于一个内存屏障(也成内存栅栏),内存屏障会提供3个功能:
31
31
32
32
1)它确保指令重排序时不会把其后面的指令排到内存屏障之前的位置,也不会把前面的指令排到内存屏障的后面;
@@ -41,11 +41,7 @@ synchronized方法 不会产生互斥
41
41
而compareAndSwapInt就是借助C来调用CPU底层指令实现的。
42
42
1 . ABA问题,通过给数据加版本可以现实区分
43
43
2 . 自旋等待时间过长,造成CPU资源浪费
44
- ### Hashtable 是怎么加锁的 ?
45
- 1 . 对数据进行读写的方法都加上synchronized的修饰
46
- ### ConcurrentHashMap 介绍?1.8 中为什么要用红黑树?
47
- 1 .
48
- 2 .
44
+
49
45
### AQS
50
46
1 . 全称AbstractQueuedSynchronizer 是JUC下提供的一套用于实现基于FIFO等待队列的阻塞锁和相关的同步器的一个同步框架
51
47
2 . CountdownLatch、ReentrantLock、Semaphore、FutureTask都是基于AQS来实现的
Original file line number Diff line number Diff line change 19
19
2 .
20
20
3 .
21
21
4 .
22
+ ### Hashtable 是怎么加锁的 ?
23
+ 1 . 对数据进行读写的方法都加上synchronized的修饰
24
+ ### ConcurrentHashMap 介绍?1.8 中为什么要用红黑树?
25
+ 1 .
26
+ 2 .
22
27
### Arrays.sort 实现原理
23
28
1 . 策略设计模式(strategy pattern);
24
29
2 . 归并排序(merge sort): 时间复杂度 n* log(n);
25
30
### LinkedHashMap的应用
26
- 1 .
31
+ 1 . 在网上查了 都说是可以基于LinkedHashMap实现LRU(least recently use)
You can’t perform that action at this time.
0 commit comments