自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(149)
  • 问答 (1)
  • 收藏
  • 关注

原创 读Objects源码

[code="java"]//该类是一个工具类,主要封装了对对象的equals,hashcode,compare和check 异常等方法。//先看构造函数: //工具类,所以构造函数是私有的。防止反射创建对象所以抛出异常。 private Objects() { throw new AssertionError("No java.util.Objects ...

2018-06-17 14:02:29 200

原创 读java Optional 源码

[code="java"]//该类是jdk1.8新增的类,主要是为了解决NPE问题。//先看构造函数: private Optional() { this.value = null; } private Optional(T value) { this.value = Objects.requireNonNull(value...

2018-06-01 20:00:41 177

原创 springmvc执行过程

[img]http://dl2.iteye.com/upload/attachment/0129/2812/d39c7cd0-55dd-30cb-8777-bbac2a8c4415.png[/img][code="java"]springmvc的执行过程: 一个请求执行的是DispatcherServlet的doService方法: protected void...

2018-03-26 10:09:12 208

原创 springmvc的初始化

[img]http://dl2.iteye.com/upload/attachment/0129/2650/4e61523d-811a-3e41-bc4e-88a54ec96293.png[/img][code="java"]先从核心DispatcherServlet入手: 既然是servlet那我们先来看serlvet的初始化: @Override publi...

2018-03-23 13:41:27 155

原创 java从数据库中查出来二次封装基于注解

实现类似于mybatis一对多关系和一对一关系:上代码:[code="java"]/** * @author * @version 创建时间:2017年3月23日 上午11:01:39 * @description 定义1对多关系注解 value代表要发射的字段名 */@Target({ ElementType.FIELD })@Retention(Ret...

2018-03-05 22:33:24 205

原创 java从数据库中查出来二次封装基于XML

实现类似于mybatis的配置关系一对多或者一对一的实现:基于实现:先上个配置文件[code="java"] /** * @author * @version 创建时间:2017年3月20日 下...

2018-03-05 22:22:50 143

原创 mybatis与spring整合之MapperScannerConfigurer

[code="java"]//实现了BeanDefinitionRegistryPostProcessor和InitializingBean接口//所以首先会调用//判空扫描的包public void afterPropertiesSet() throws Exception { notNull(this.basePackage, "Property 'basePacka...

2017-10-25 11:32:41 112

原创 mybatis与spring整合之SqlSessionFactoryBean

[code="java"]//初始化SqlSessionFactoryBean//SqlSessionFactoryBean实现了InitializingBean来进行初始化public void afterPropertiesSet() throws Exception { notNull(dataSource, "Property 'dataSource' is requ...

2017-10-25 11:31:29 950

原创 spring之BeanNameAware

[code="java"]//BeanNameAware该接口主要用于获取自身在spring中的名称public interface BeanNameAware extends Aware { void setBeanName(String name);}//其实现原理也是在创建bean的时候进行注入//AbstractAutowireCapableBeanFa...

2017-10-23 10:38:01 1282

原创 spring之ApplicationContextAware接口

[code="java"]//该接口会帮你注入ApplicationContextpublic interface ApplicationContextAware extends Aware { void setApplicationContext(ApplicationContext applicationContext) throws BeansException;}...

2017-10-20 17:40:54 101

原创 spring之BeanDefinitionRegistryPostProcessor接口

[code="java"]//该接口继承自BeanFactoryPostProcessor,该接口可用于动态像spring注册bean//例如在spring跟mybatis的整合中MapperScannerConfigurer就实现了该类用于动态注册mapper。public interface BeanDefinitionRegistryPostProcessor extends...

2017-10-20 13:59:31 177

原创 spring之FactoryBean接口

[code="java"]//该接口主要用于从spring中获取bean的时候如果实现了该接口会直接调用该接口中的getObject来获取beanpublic interface FactoryBean { T getObject() throws Exception; Class getObjectType(); boolean isSingleton...

2017-10-20 10:53:48 132

原创 spring之InitializingBean接口的使用

[code="java"]//记录几个spring的接口以及使用//从名字可以看出来这个接口主要用于初始化bean用。在bean被初始化后就会执行afterPropertiesSet方法。public interface InitializingBean { void afterPropertiesSet() throws Exception;}//其实现原理如...

2017-10-20 10:26:22 157

原创 读AbstractStringBuilder源码

[code="java"]//该类是StringBuilder和StringBuffer基类实现了Appendable和CharSequence接口//StringBuffer是线程安全的.所以就在所有方法上加上了synchronized关键字。//先看构造函数AbstractStringBuilder() { }AbstractStringBuilder...

2017-10-16 16:56:41 179

原创 读String源码

[code="java"]//先看构造函数public String() { this.value = new char[0]; }public String(String original) { this.value = original.value; this.hash = original.hash; ...

2017-10-16 15:17:29 127

原创 读ThreadLocal源代码

[code="java"]//可以存取线程局部变量//先看构造函数public ThreadLocal() { }//设置值public void set(T value) { Thread t = Thread.currentThread(); //这个Map以this为key ThreadLocalMap map =...

2017-10-12 15:00:38 112

原创 读Collections源码

[code="java"]//一个操作集合的工具类,里面全部都是静态方法。//根据元素的自然顺序进行排序 public static contains = c2; Collection iterate = c1; //注释上写的这样效率更高 if (c1 instanceof Set) { ...

2017-10-11 14:53:13 135

原创 读Exchanger源码

[code="java"]//用于线程间交换数据public V exchange(V x) throws InterruptedException { if (!Thread.interrupted()) { Object v = doExchange((x == null) ? NULL_ITEM : x, false, 0); ...

2017-10-10 11:38:56 112

原创 读EnumSet源码

[code="java"]//一个基于枚举的Set,其效率在大多数时候都比HashSet高。//该类是一个抽象类其实现类有RegularEnumSet和JumboEnumSet。//创建一个最初包含指定元素的枚举(带of的方法实现基本都一样)public static EnumSet of(E e) { EnumSet result = noneOf(e...

2017-10-06 18:02:59 107

原创 读EnumMap源码

[code="java"]//一个key是枚举类型的map,速度基本会比hashMap更快//先看构造函数//构造指定键类型的EnumMappublic EnumMap(Class keyType) { this.keyType = keyType; //获取key的枚举值 keyUniverse = getKeyUniverse(key...

2017-10-06 15:23:15 134

原创 读IdentityHashMap源码

[code="java"]//和HashMap的主要区别在于判断key的相等采用的是==//该map计算hash值使用的是System.identityHashCode方法。//并且该Map内部将键存在i位置,值存在i+1位置上。//先看构造函数:public IdentityHashMap() { init(DEFAULT_CAPACITY); ...

2017-10-06 11:11:31 118

原创 读Stack源码

[code="java"]//一个堆栈结构的集合(先进后出)继承于Vector//基本已被ArrayDeque取代//先看构造函数public Stack() { }//新增一个元素 public E push(E item) { addElement(item); return item; }pu...

2017-10-05 10:14:12 92

原创 java编译编码问题

最近由一个编码问题。让我对另一个编码问题产生了疑惑。即我们在写java源文件的时候一般使用的是utf-8编码,但是tomcat控制台(直接在bin里面启动的那个黑窗口)编码是gbk.为什么tomcat控制没有乱码问题? 最开始我想的是既然我的java源文件是按照utf-8编码,那么最后必须按照utf-8解码才不会有问题啊。为什么tomcat用gbk解码没有乱码问题? 然后查了下...

2017-10-02 11:35:18 504

原创 读Executors源码

[code="java"]//一个管理线程创建的类里面都是静态方法//创建一个corePoolSize和maximumPoolSize相等的线程池也就是当线程数为nThreads时,就不在新增线程了。 public static ExecutorService newFixedThreadPool(int nThreads) { return new Thread...

2017-09-29 15:23:24 143

原创 读WeakHashMap源码

[code="java"]//一个基于弱引用的Map对象//先看构造函数public WeakHashMap() { this(DEFAULT_INITIAL_CAPACITY, DEFAULT_LOAD_FACTOR); }public WeakHashMap(int initialCapacity) { this(initi...

2017-09-28 17:06:15 102

原创 读ArrayDeque源码

[code="java"]//一个双端队列 比stack和LinkedList效率高//先看构造函数public ArrayDeque() { elements = (E[]) new Object[16]; }public ArrayDeque(int numElements) { allocateElements(numEl...

2017-09-26 13:38:10 110

原创 读ScheduledThreadPoolExecutor源码

[code="java"]//一个可以延迟执行的定时任务//先看构造函数 构造函数最重要的区别是传入了DelayedWorkQueue一个延迟的queue/**总结:该线程池继承了ThreadPoolExecutor。同时内部封装了一个DelayedWorkQueue和ScheduledFutureTask。DelayedWorkQueue用于管理任务的新增和获取。Sche...

2017-09-25 17:33:01 147

原创 读部分ThreadPoolExecutor源码

[code="java"]//线程池//先看构造方法public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, ...

2017-09-25 15:27:34 69

原创 读AbstractExecutorService

[code="java"]//他是ExecutorService的部分实现public abstract class AbstractExecutorService implements ExecutorService//提交一个Runnable任务给AbstractExecutorService执行返回Futurepublic Future submit(Runnable t...

2017-09-23 16:34:55 106

原创 读ExecutorCompletionService源码

[code="java"]//一个用来管理已完成任务的service,内部封装了一个队列。//它是CompletionService的一个实现public class ExecutorCompletionService implements CompletionService//先看构造函数public ExecutorCompletionService(Executo...

2017-09-23 11:22:38 124

原创 读FutureTask源码

[code="java"]//一个可以异步返回计算的结果//它同时实现了Future和Runnable//先看构造函数 public FutureTask(Callable callable) { if (callable == null) throw new NullPointerException(); this.c...

2017-09-22 16:45:10 110

原创 读ConcurrentSkipListMap源码

[code="java"]//数据结构是跳表 关于数据结构http://blog.csdn.net/coslay/article/details/44819823这篇文章写得很好//另外ConcurrentSkipListSet底层也是用ConcurrentSkipListMap实现的。//先看构造函数public ConcurrentSkipListMap() { ...

2017-09-21 15:11:15 76

原创 读TreeMap源码

[code="java"]//一个基于二叉红黑树实现的map//关于红黑树http://blog.csdn.net/chenssy/article/details/26668941这篇博客写的非常好//另外TreeSet的是用TreeMap实现的。(组合设计模式,将所有的实现委托给TreeMap实现)//先看构造函数 public TreeMap() { co...

2017-09-13 11:21:00 79

原创 读Semaphore源码

[code="java"]//一个信号量,只有在池中还拥有许可时才允许线程继续执行。//先看构造函数//默认是非公平模式public Semaphore(int permits) { sync = new NonfairSync(permits); }NonfairSync(int permits) { super(...

2017-09-09 14:58:27 94

原创 oracle分组查询

oracle中分组查询并且查询每组前几条数据select * from (SELECT b,c,row_number() OVER(PARTITION BY b ORDER BY c desc) e FROM test_table) t where e

2017-09-08 16:10:05 223

原创 读CyclicBarrier源码

[code="java"]//一个循环的屏障。所有的线程在屏障处等待其他线程执行完毕。然后再各自执行。//先看构造函数 public CyclicBarrier(int parties) { this(parties, null); }//barrierAction代表在屏障上等待的最后一个线程已经执行完后,执行的runnablepublic...

2017-09-01 17:59:28 181

原创 读CountDownLatch源码

[code="java"]//在完成一组操作之前允许一个或多个线程等待内部用的AQSprivate static final class Sync extends AbstractQueuedSynchronizer { private static final long serialVersionUID = 4982264981922014374L; ...

2017-09-01 14:01:35 80

原创 读ConcurrentLinkedQueue

[code="java"]//这是一个无阻塞的队列没有加任何锁全部利用CAS机制实现。效率极高。//先看构造函数public ConcurrentLinkedQueue() { head = tail = new Node(null); }public ConcurrentLinkedQueue(Collection...

2017-09-01 11:40:24 81

原创 读ConcurrentHashMap源码

[code="java"]//先看构造函数public ConcurrentHashMap() { this(DEFAULT_INITIAL_CAPACITY, DEFAULT_LOAD_FACTOR, DEFAULT_CONCURRENCY_LEVEL); }public ConcurrentHashMap(int initialCapacity) {...

2017-08-31 11:21:39 79

原创 读HashSet源码

[code="java"]//先看构造函数 public HashSet() { map = new HashMap(); }public HashSet(int initialCapacity) { map = new HashMap(initialCapacity); }public HashSet(int ini...

2017-08-29 11:33:47 70

空空如也

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

TA关注的人

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