Java进阶
卫星是我朋友
既然无法改变,那就欣然上路。
展开
-
Java同步集合
CopyOnWriteArrayList读写分离。写加锁,读时拷贝后修改,然后再设置给原列表。读时,若有其他线程正在写,则读的是旧数据。ConcurrentHashMap锁分段技术,访问哪段数据就需要获得哪段数据的锁。有些跨段的方法,如size和containsValue,需要锁住整个容器,需要按顺序锁住所有段,操作完毕后,又按顺序释放所有段的锁。BlockingQueue当队列满了以后,若再有线程原创 2016-07-27 11:47:38 · 326 阅读 · 0 评论 -
Java多线程与线程池
线程的wait、sleep、join、yieldwait,当一个线程执行到wait方法,就进入一个与该对象相关的等待池中,同时释放对象锁。用户可以使用notify、notifyAll或者指定睡眠时间来唤醒当前等待池中的线程。 注意:wait、notify、notifyAll必须放在synchronize block中sleep:该方法是Thread的静态方法,不会影响对象的的状态,因此不会改变原创 2016-07-27 12:06:11 · 271 阅读 · 0 评论 -
一道考察类加载机制的试题
public class Test1 { @SuppressWarnings("static-access") public static void main(String[] args) { Singleton s = Singleton.getSingleton(); System.out.println("counter1 = "+ s.count转载 2016-08-02 18:30:34 · 284 阅读 · 0 评论 -
Java同步锁
同步机制关键字synchronized可以锁对象、函数、class(类)、代码块。每个对象都只有一个锁。synchronized作用于函数时,实际上锁的也是对象。public class SynchronizedDemo { //同步方法(锁的是对象) public synchronized void syncMethd() { } //同步对象(锁的是对象)原创 2016-07-26 17:44:41 · 702 阅读 · 0 评论 -
单例模式与静态变量的区别
单例的特点:保证某类只存在唯一实例。该类本身完成自身的初始化。获取该唯一实例的方式非常明确,可以通过该类本身定义的静态方法getInstance()获取该类的唯一实例引用。静态变量定义某类的实例引用特点:该类的实例引用的静态变量可定义在任何文档类当中。获取该类的实例引用的静态变量,可以通过定义该静态变量的类名通过点语法进行访问该引用。任何位置可以对该静态变量进行重新赋值。通过这两者方转载 2016-09-25 20:47:45 · 1439 阅读 · 0 评论