自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(168)
  • 资源 (2)
  • 收藏
  • 关注

原创 共同学习Java源代码-多线程与并发-ConcurrentHashMap(二)

privatestaticfinalObjectStreamField[] serialPersistentFields = {        newObjectStreamField("segments", Segment[].class),        newObjectStreamField("segmentMask", Integer.TYPE),       

2018-01-23 07:33:09 318

原创 共同学习Java源代码-数据结构-Deque

这个是双向队列public interface Deque extends Queue继承自Queue接口    void addFirst(E e);在双向队列最前端添加元素    void addLast(E e);在双向队列最末端添加元素    boolean offerFirst(E e);在双向队列最前端添加元素 

2018-01-21 19:08:37 377

原创 共同学习Java源代码-多线程与并发-ConcurrentHashMap(一)

ConcurrentHashMap是每个Java学习者必看的类public class ConcurrentHashMap extends AbstractMap implements ConcurrentMap, Serializable 这个类继承了AbstractMap 类 实现了ConcurrentMap、Serializable接口    private static

2018-01-21 18:39:47 308

原创 共同学习Java源代码-多线程与并发-ConcurrentMap接口

这个接口是ConcurrentHashMap实现的接口 ConcurrentHashMap是开发者必须掌握的类 public interface ConcurrentMap extends Map这个接口继承自Map接口    @Override    default V getOrDefault(Object key, V defaultValue) {     

2018-01-20 17:15:22 361

原创 共同学习Java源代码-数据结构-PriorityQueue类(八)

private void heapify() {        for (int i = (size >>> 1) - 1; i >= 0; i--)            siftDown(i, (E) queue[i]);    }这个方法是堆化的方法 我现在才搞明白PriorityQueue的存储方式是用数组存储二叉树 0下标为根节点 2n+1下标为左节点 2n+2下标为右节

2018-01-19 21:38:42 189

原创 共同学习Java源代码-数据结构-PriorityQueue类(七)

privatevoid siftUp(intk, E x) {        if (comparator != null)            siftUpUsingComparator(k, x);        else            siftUpComparable(k, x);}这是siftUp方法 判断comparator属性是否为空如果不为空就调用siftUpUsingCo

2018-01-19 07:21:27 200

原创 共同学习Java源代码-数据结构-PriorityQueue类(六)

publicint size() {        returnsize;}size方法返回size publicvoid clear() {        modCount++;        for (inti = 0; i size; i++)            queue[i] = null;        size = 0;} 这个是清除所有元素的方法修改次数自增 遍历数组 将每个元

2018-01-19 07:20:49 163

原创 共同学习Java源代码-数据结构-PriorityQueue类(五)

public Iterator iterator() {        return new Itr();    }这个是迭代器方法     private final class Itr implements Iterator {这个是实现了迭代器接口的内部迭代器类        private int cursor = 0;这个是迭代光标        pr

2018-01-14 17:41:47 169

原创 共同学习Java源代码-数据结构-PriorityQueue类(四)

public boolean remove(Object o) {        int i = indexOf(o);        if (i == -1)            return false;        else {            removeAt(i);            return true;        }    }这

2018-01-14 16:30:14 179

原创 共同学习Java源代码-数据结构-PriorityQueue类(三)

private void grow(int minCapacity) {        int oldCapacity = queue.length;        int newCapacity = oldCapacity + ((oldCapacity                                          (oldCapacity + 2) :   

2018-01-11 14:24:29 154

原创 共同学习Java源代码-数据结构-PriorityQueue类(二)

private void initFromPriorityQueue(PriorityQueue c) {        if (c.getClass() == PriorityQueue.class) {            this.queue = c.toArray();            this.size = c.size();        } else { 

2018-01-11 11:04:35 162

原创 共同学习Java源代码-数据结构-PriorityQueue类(一)

这是优先队列 public class PriorityQueue extends AbstractQueue implements java.io.Serializable这是类的描述 继承自 AbstractQueue 实现了Serializable接口    private static final int DEFAULT_INITIAL_CAPACITY = 11;

2018-01-10 10:28:42 213

原创 共同学习Java源代码-多线程与并发-ThreadPoolExecutor类(十六)

这是ThreadPoolExecutor最后一篇博客 内容是拒绝策略    public static class CallerRunsPolicy implements RejectedExecutionHandler {        public CallerRunsPolicy() { }        public void rejectedExecution(Runnabl

2018-01-09 12:55:24 176

原创 共同学习Java源代码-多线程与并发-ThreadPoolExecutor类(十五)

public String toString() {        long ncompleted;        int nworkers, nactive;        final ReentrantLock mainLock = this.mainLock;        mainLock.lock();        try {            ncompl

2018-01-09 10:57:09 184

原创 共同学习Java源代码-多线程与并发-ThreadPoolExecutor类(十四)

public void purge() {        final BlockingQueue q = workQueue;        try {            Iterator it = q.iterator();            while (it.hasNext()) {                Runnable r = it.next();

2018-01-09 10:27:06 212

原创 共同学习Java源代码-多线程与并发-ThreadPoolExecutor类(十三)

public void allowCoreThreadTimeOut(boolean value) {        if (value && keepAliveTime             throw new IllegalArgumentException("Core threads must have nonzero keep alive times");        if

2018-01-03 16:35:23 260

原创 共同学习Java源代码-多线程与并发-ThreadPoolExecutor类(十二)

public void setThreadFactory(ThreadFactory threadFactory) {        if (threadFactory == null)            throw new NullPointerException();        this.threadFactory = threadFactory;    }

2018-01-03 16:01:50 171

原创 共同学习Java源代码-多线程与并发-ThreadPoolExecutor类(十一)

public boolean isTerminating() {        int c = ctl.get();        return ! isRunning(c) && runStateLessThan(c, TERMINATED);    }判断是否在终止的方法就是获取ctl 判断状态不是RUNNING 并且数值小于TERMINATED    publ

2018-01-02 16:45:15 185

原创 共同学习Java源代码-多线程与并发-ThreadPoolExecutor类(十)

public void execute(Runnable command) {        if (command == null)            throw new NullPointerException();        int c = ctl.get();        if (workerCountOf(c)             if (addWork

2018-01-02 16:34:27 190

原创 共同学习Java源代码-并发与锁-AbstractOwnableSynchronizer

这个抽象类是AQS的父类public abstract class AbstractOwnableSynchronizer implements java.io.Serializable实现Serializable接口    protected AbstractOwnableSynchronizer() { }默认构造方法    private tran

2018-01-01 17:21:37 1081 2

原创 共同学习Java源代码-多线程与并发-ThreadPoolExecutor类(九)

public ThreadPoolExecutor(int corePoolSize,                              int maximumPoolSize,                              long keepAliveTime,                              TimeUnit unit,     

2018-01-01 16:59:35 153

原创 共同学习Java源代码-多线程与并发-ThreadPoolExecutor类(八)

private Runnable getTask() {        boolean timedOut = false; // Did the last poll() time out?        for (;;) {            int c = ctl.get();            int rs = runStateOf(c);            i

2017-12-31 18:46:20 198

原创 共同学习Java源代码-数据结构-AbstractQueue

public abstract class AbstractQueue  extends AbstractCollection  implements Queue这个抽象类继承自AbstractCollection类 实现Queue接口    protected AbstractQueue() {    }无参构造方法 protected修饰    pu

2017-12-30 17:08:05 234

原创 共同学习Java源代码-多线程与并发-ThreadPoolExecutor类(七)

private void addWorkerFailed(Worker w) {        final ReentrantLock mainLock = this.mainLock;        mainLock.lock();        try {            if (w != null)                workers.remove(w);

2017-12-30 16:50:49 129

原创 共同学习Java源代码-多线程与并发-ThreadPoolExecutor类(六)

private List drainQueue() {        BlockingQueue q = workQueue;        ArrayList taskList = new ArrayList();        q.drainTo(taskList);        if (!q.isEmpty()) {            for (Runnable r

2017-12-29 15:54:25 209

原创 共同学习Java源代码-多线程与并发-ThreadPoolExecutor类(五)

private void interruptWorkers() {        final ReentrantLock mainLock = this.mainLock;        mainLock.lock();        try {            for (Worker w : workers)                w.interruptIfSt

2017-12-28 22:12:00 185

原创 共同学习Java源代码-并发与锁-Lock接口、Condition接口

public interface Lock可重入锁的接口     void lock();锁定代码段的方法 void lockInterruptibly() throws InterruptedException;当前线程没有被打断的情况下 才能获取锁    boolean tryLock();尝试获取锁的方法    boolea

2017-12-24 17:22:15 180

原创 共同学习Java源代码-多线程与并发-ThreadPoolExecutor类(四)

private void advanceRunState(int targetState) {        for (;;) {            int c = ctl.get();            if (runStateAtLeast(c, targetState) ||                ctl.compareAndSet(c, ctlOf(targ

2017-12-24 16:27:32 131

原创 共同学习Java源代码-多线程与并发-ThreadPoolExecutor类(三)

private static final RuntimePermission shutdownPerm =        new RuntimePermission("modifyThread");调用shutdown和shutdownNow的权限这是Worker类 实现了    private final class Worker        extends Abs

2017-12-23 15:58:39 177

原创 共同学习Java源代码-多线程与并发-ThreadPoolExecutor类(二)

private final BlockingQueue workQueue;这个是阻塞队列 装的是工作线程    private final ReentrantLock mainLock = new ReentrantLock();这个是可重入锁 锁的是下面的worker set    private final HashSet workers = new Ha

2017-12-22 17:21:00 155

原创 共同学习Java源代码-多线程与并发-ThreadPoolExecutor类(一)

这是线程池的一个典型实现 public class ThreadPoolExecutor extends AbstractExecutorService 继承自AbstractExecutorService    private final AtomicInteger ctl = new AtomicInteger(ctlOf(RUNNING, 0));这个是原子变量 

2017-12-22 16:55:57 287

原创 共同学习Java源代码-多线程与并发-AbstractExecutorService类(三)

public List> invokeAll(Collection> tasks)        throws InterruptedException {        if (tasks == null)            throw new NullPointerException();        ArrayList> futures = new ArrayList

2017-12-21 17:30:13 163

原创 共同学习Java源代码-多线程与并发-AbstractExecutorService类(二)

private T doInvokeAny(Collection> tasks,                              boolean timed, long nanos)        throws InterruptedException, ExecutionException, TimeoutException {        if (tasks == n

2017-12-21 17:29:32 183

原创 共同学习Java源代码-多线程与并发-BlockingQueue接口

这是阻塞队列的接口 public interface BlockingQueue extends Queue继承自Queue接口    boolean add(E e);添加元素方法 长度超出了会抛异常    boolean offer(E e);添加元素的另一种方法 添加失败就返回false 官方更建议用这个    void put

2017-12-20 16:52:25 142

原创 共同学习Java源代码-多线程与并发-CompletionService接口和ExecutorCompletionService类

这个接口用来将生产新异步任务和消费已完成任务进行解耦    Future submit(Callable task);    Future submit(Runnable task, V result);    Future take() throws InterruptedException;    Future poll();    Future p

2017-12-20 16:09:24 168

原创 共同学习Java源代码-多线程与并发-AbstractExecutorService类(一)

public abstract class AbstractExecutorService implements ExecutorService这个类实现了ExecutorService接口    protected RunnableFuture newTaskFor(Runnable runnable, T value) {        return new Future

2017-12-20 15:43:56 177

原创 共同学习Java源代码-多线程与并发-FutureTask类(三)

static final class WaitNode {        volatile Thread thread;        volatile WaitNode next;        WaitNode() { thread = Thread.currentThread(); }    }这个是静态终态内部类 将其他等待线程存储在这个链表结构的类里  

2017-12-18 16:21:00 194

原创 共同学习Java源代码-多线程与并发-FutureTask类(二)

protected void set(V v) {        if (UNSAFE.compareAndSwapInt(this, stateOffset, NEW, COMPLETING)) {            outcome = v;            UNSAFE.putOrderedInt(this, stateOffset, NORMAL); // final

2017-12-17 16:42:29 297

原创 共同学习Java源代码-多线程与并发-FutureTask类(一)

这是个可以取消的未来异步任务。public class FutureTask implements RunnableFuture 这个类继承自RunnableFuture 实现了RunnableFuture接口    private volatile int state;    private static final int NEW          = 0;   

2017-12-16 16:49:06 187

原创 共同学习Java源代码-多线程与并发-Future、RunnableFuture接口

这是进行异步计算的接口 public interface Future    boolean cancel(boolean mayInterruptIfRunning);这个方法是取消执行这个异步任务的方法 参数为true代表任务可以被打断     boolean isCancelled();这个方法是判断这个任务是否被取消的方法

2017-12-16 16:02:08 223

带事务回滚测试的SSH整合小案例(Spring 3.2+Hibernate 3.3+Struts 2.3)

集成了Spring 3.2.2 Hibernate 3.3.2 Struts 2.3.4 用JPA的注解实现orm 不用创建数据库表 只需本机上有oracle即可 用JSR注解进行Spring的依赖注入 用Spring Test整合Junit4 进行测试并自动事务回滚 不对数据库造成持久化操作

2013-05-27

省市区三级级联(Ajax+JSP+Servlet+JDBC+Oracle)

我的处女作 用jsp+ajax+servlet+jdbc做的三级级联 可以选择省市区 做得比较糙 希望大家多多指正!!

2012-11-15

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除