
Java Beginner
CWeeYii
勤奋、天赋并重
展开
-
Java synchronized和synchronized static详解
首先,java中没有操作系统中的原创 2014-11-05 22:07:10 · 642 阅读 · 0 评论 -
Spring对象生命周期控制
1.Spring中常用对象Spring框架中最常用对象有两个:BeanFactory和Bean。1.1 BeanFactoryBeanFactory作用是:保存所有bean名字、类型等和beanDefinition的映射关系,以及保存实力化后单例bean名字、类型等和bean对象的映射关系。其中MVC框架中有两个beanFactory:一个是保存业务对象@Service @Commpont等注解产生原创 2017-01-08 20:18:26 · 4317 阅读 · 0 评论 -
Scheduled线程-schedule
schedule1.schedule方法schedule方法主要使用延迟或者定时执行一次,在指定时间之后。在延迟两秒后提交任务,开始任务的执行public class ScheduledThreadPool { private static final Logger LOGGER = LoggerFactory.getLogger(ScheduledThreadPool.class);原创 2016-10-16 22:42:48 · 2748 阅读 · 0 评论 -
线程池-invokeAll
invokeAllinvoke类方法invokeAll和invokeAny与submit方法方法最大的区别是submit是异步的其不会等待任务的完成,而invoke方法是同步的,其需要等待任务的完成,才能返回public class InvokeAll { private static final Logger LOGGER = LoggerFactory.getLogger(InvokeA原创 2016-10-16 21:53:39 · 5745 阅读 · 1 评论 -
线程池-callable任务
1 带回调的线程池任务Callable接口和Runable接口最大的区别是Callable可以拥有返回值,并可以通过回调的方式获取。同时通过Future的get方法,可以同步的获取到返回值,并保证任务已经完成ps:注意必须调用线程池的shutdown方法,否则主线程(main)线程不会结束,其会保证线程正常关闭后才会退出。package com.cweeyii.threadpool;import o原创 2016-10-16 15:47:37 · 616 阅读 · 0 评论 -
线程池-isShutdown和isTerminated
1.线程池 isShutdown和isTerminated的区别isShutDown当调用shutdown()方法后返回为true。 isTerminated当调用shutdown()方法后,并且所有提交的任务完成后返回为true线程池任务正常完成,都为falsepackage com.cweeyii.threadpool;import org.slf4j.Logger;import org.s原创 2016-10-16 13:57:52 · 16689 阅读 · 0 评论 -
线程池-shutdownNow
1.shutdownNowshutdownNow和shutdown的最主要的区别是:shutdown会等待所有提交的任务执行完成,不管是正在执行还是保存在任务队列中的已提交任务。而shutdownNow会尝试中断正在执行的任务(其主要是中断一些指定方法如sleep方法),并且停止执行等待队列中提交的任务。中断Sleep任务package com.cweeyii.threadpool;import o原创 2016-10-16 11:48:07 · 1785 阅读 · 0 评论 -
线程池-shutdown和awaitTermination
1.shutdown和awaitTerminationshutdown:启动线程池的有序关闭过程,其等待已经提交的所有任务完成之后关闭线程池。当调用该方法后,线程池不再接受其他任务。并且该方法是非阻塞的,不会等待所有任务执行成功后返回。调用线程直接返回public class SleepWorker implements Runnable { private static final Log原创 2016-10-16 10:55:53 · 3436 阅读 · 2 评论 -
线程池-基础类
1.UnSafe类UnSafe类:用于执行低级别、不安全操作的方法集合,其通过直接操作内存来保证线程安全。Unsafe和ByteBuff都能用于是获取非堆内存,但UnSafe保证了对非堆内存的操作是线程安全的,而ByteBuff不能保证。 并且其可以不用调用类的构造函数从而直接反序列化对象等。2.Thread类关键Field: ThreadGroup g 、Runnable target、线程名原创 2016-10-23 17:14:09 · 526 阅读 · 0 评论 -
idea 14 注册码生成器
package com.sankuai.meituan.poiop.util;import java.math.BigInteger;import java.util.Date;import java.util.Random;import java.util.zip.CRC32;public class keygen{ /** * @param s * @param i *转载 2016-07-14 11:14:46 · 703 阅读 · 0 评论 -
Java数据结构源码分析-Vector
1.VectorVector和ArrayList都是通过数组来构建顺序列表的数据结构,其关系同HashMap与HashTable一样,Vector是一个线程安全的数据结构,而ArrayList是非线程安全的,因此在不考虑多线程的情况下,ArrayList比Vector速度更加的快,在考虑线程安全的情况下,ArrayList提供了SynchronizedList类来保证线程安全,其访问速度同Vecto原创 2016-06-05 21:19:48 · 1309 阅读 · 0 评论 -
Java数据结构源码分析-LinkedList
1.LinkedListLinkedList是通过双向链表来维护链表的顺序性。 首先,我们看下类的构成,LinkedList通过两个iterator来顺序和倒序的访问数据。public class LinkedList<E> extends AbstractSequentialList<E> implements List<E>, Deque<E>, Cloneable, java原创 2016-06-05 21:00:49 · 562 阅读 · 0 评论 -
Java数据结构源码分析-ArrayList
1.ArrayList简介ArrayList是基于数组实现的顺序容器,其具有O(1)速度的访问的特点。其结构比较简单,因为我们快速的看下其中比较重要的几个方法。//ArrayList在调用构造函数的时候,分配数组的内存public ArrayList(int initialCapacity) { super(); if (initialCapacity < 0)原创 2016-06-05 16:49:06 · 641 阅读 · 0 评论 -
Java数据结构源码分析-HashTable
1.HashTableHashTable同HashMap在数据结构的层面上是一致的,同时通过数组+链表的形式来存储数据。 其方法的功能和实现方式也基本一致。 就不在此处赘述,如果要详细了解可以参看HashMap的源码分析: http://blog.youkuaiyun.com/cweeyii/article/details/51583154 下面我们给出下几个重要方法的对比://HashMap的Pu原创 2016-06-05 15:05:35 · 784 阅读 · 0 评论 -
Java数据结构源码分析-HashSet
1.HashSetHashSet和HashMap在本质上是一样的,其实HashSet是一种特殊的HashMap,其所有的Entry中的value都是一个私有的对象。private static final Object PRESENT = new Object();public HashSet() { map = new HashMap<>(); }public boole原创 2016-06-05 14:45:30 · 780 阅读 · 0 评论 -
Java数据结构源码分析-前言
##HashSet声明分析 ##public class HashSet<E> extends AbstractSet<E> implements Set<E>, Cloneable, java.io.Serializable {......}原创 2016-06-03 22:12:21 · 496 阅读 · 0 评论 -
Java数据结构源码分析-HashMap
1.HashMap1.1 Map接口在开始介绍HashMap的源码前,我们先来了解下HashMap的在内存的数据组织方式: 整个结构分为两部分,第一部分是一个Entry[]数组,其数组的索引就是hash之后的slot位置。 第二部分是一个链表,每个Entry对象都会有一个Entry next的引用指向下一个Entry对象,如此当出现冲突时,只需要将冲突的数据加入到链表中就行了 接下来,我们来原创 2016-06-04 10:22:06 · 867 阅读 · 0 评论 -
Java开发规范精要
1.命名规则代码中的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式。类名使用 UpperCamelCase 风格,必须遵从驼峰形式,但以下情形例外:(领域模型 的相关命名)DO / BO / DTO / VO等。 正例:MarcoPolo / UserDO / XmlService / TcpUdpDeal / TaPromotion 反例:macroPolo / UserDo转载 2017-04-20 15:10:07 · 978 阅读 · 0 评论