摘要:
CopyOnWrite容器即写时复制的容器。通俗的理解是当我们往一个容器添加元素的时候,不直接往当前容器添加,而是先将当前容器进行Copy,复制出一个新的容器,然后新的容器里添加元素,添加完元素之后,再将原容器的引用指向新的容器。这样做的好处是我们可以对CopyOnWrite容器进行并发的读,而不需要加锁,因为当前容器不会添加任何元素。所以CopyOnWrite容器也是一种读写分离的思想,读... 阅读全文
摘要:
PreparedStatement是用来执行SQL查询语句的API之一,Java提供了 Statement、PreparedStatement 和 CallableStatement三种方式来执行查询语句,其中 Statement 用于通用查询, PreparedStatement 用于执行参数化查询,而 CallableStatement则是用于存储过程。同时PreparedStatement... 阅读全文
摘要:
相同:ReentrantLock提供了synchronized类似的功能和内存语义,都是可重入锁。 不同: 1.ReentrantLock功能性方面更全面,比如时间锁等候,可中断锁等候,锁投票等,因此更有扩展性。在多个条件变量和高度竞争锁的地方,用ReentrantLock更合适,ReentrantLock还提供了Condition,对线程的等待和唤醒等操作更加灵活,一个ReentrantL... 阅读全文
摘要:
1 import java.util.ArrayList; 2 import java.util.LinkedList; 3 import java.util.Queue; 4 /** 5 public class TreeNode { 6 int val = 0; 7 TreeNode left = null; 8 TreeNode right = nu... 阅读全文
摘要:
1 import org.junit.Test; 2 3 public class AllSort { 4 5 public void permutation(char[] buf, int start, int end) { 6 if (start == end) {// 当只要求对数组中一个字母进行全排列时,只要就按该数组输出即可 7 ... 阅读全文
摘要:
本题来自《剑指offer》 路径为从根节点到叶节点一条路径,路径经过的各节点数值之和等于某一给定数值,则打印路径上的节点 因为需要打印满足条件的路径节点信息和各节点之和,需要栈记录经过的节点,和一个保存数值之和的变量 用前序遍历方法,可以首先访问节点,然后将节点入栈,并将数值和之前入栈的节点值相加 阅读全文