Java
文章平均质量分 94
qianweifeng123
唐唐婚介所所长在此,谁人胆敢放肆!
展开
-
ReentrantLock详解
ReentrantLock详解1.核心部分AbstractQueuedSynchronizer核心操作类(不仅仅是在Lock领域,线程池也多有应用,俗称AQS)Sync 继承AQS,提供了对Lock的部分操作NonfairSync 继承Sync,见名知意,非公平锁的操作(默认为非公平所)FairSync原创 2016-03-17 17:44:44 · 8217 阅读 · 0 评论 -
Spring之IoC容器解析(二)
1.BeanFactory一次只能加载一个Resource,而ApplicationContext一次可以加载多个Resource 2.BeanFactory与ApplicationContext获取资源的方式不同,BeanFactory直接去找对应资源而ApplicationContext有可能需要进行资源匹配 这里多说一点,比如BeanFactory去加载Resource的时候,一个Re原创 2016-06-15 19:40:59 · 708 阅读 · 0 评论 -
Spring之IoC容器解析(一)
Spring之IoC容器解析(一) 简介 层级示意图&接口功能介绍 原理分析 小结 1. 简介IoC作为Spring的核心功能之一,内部继承体系错综复杂,下面我们来对它剥丝抽茧的分析一波。首先,从整体上看Spring容器可以分为两大部分:外部容器和内部容器。外部容器指的是ApplicationContext接口的实现类,我们写程序时也可能经常会用到它。内部容器是Bean原创 2016-06-13 15:44:18 · 3161 阅读 · 0 评论 -
Java之HashMap在非线程安全时的行为
Java之HashMap在非线程安全时的行为我们知道HashMap在多线程环境下是不安全的,这里指的不安全是相对的(至少有2个写线程)。若都是读线程或者只有一个写线程,那么HashMap还是可以正常使用的。 接下来进入正题: 可能出现的现象 具体分析 总结 附录 tips: 下面提到的hashIndex指的是一个元素put到hashmap中时,要根据其key.has原创 2016-04-14 20:22:00 · 8247 阅读 · 0 评论 -
Java动态代理剖析
Java动态代理剖析动态代理作为一种字节码增强技术,也作为SpringAOP的核心实现,我们在使用它的同时最好能做好“知其然,知其所以然”。 动态代理demo 代理类 总结 1.动态代理demoimport java.lang.reflect.InvocationHandler;import java.lang.reflect.Method;import java.lan原创 2016-04-20 15:01:40 · 7901 阅读 · 0 评论 -
SpringBoot配置Email发送功能
SpringBoot配置Email发送功能本篇介绍在SpringBoot中配置Email服务的具体步骤,以及常见的异常分析。 具体案例以QQ邮箱以及QQ企业邮箱为例。 QQ邮箱发送方式 QQ企业邮箱发送方式 总结 tips: 下面提到的hashIndex指的是一个元素put到hashmap中时,要根据其key.hashcode & (table.size()-1)来决定原创 2016-04-15 11:37:47 · 12817 阅读 · 0 评论 -
Java类的加载机制及常见异常
Java类的加载机制Java中一个类若是要被使用,必然经过加载以及初始化的过程。 这里我们来研究一下一个类是如何被加载的,以及加载类时可能会出现的异常 类加载器简介 自定义类加载器 加载过程中可能会出现的异常 Class的加载过程 总结 1.类的加载器简介一般加载器分为四级:引导类加载器,扩展类加载器,系统类加载器,用户自定义加载器。 通常: 系统原创 2016-04-25 12:26:03 · 9283 阅读 · 0 评论 -
Java定时任务(2)
Java定时任务(2)上次浅显的分析了Timer及TimerTask的调度原理,这里我们再来看一下另一种定时调度方式ScheduledThreadPoolExecutor的内部执行原理。 ScheduledThreadPoolExecutor调度方式 阻塞队列DelayedWorkQueue的实现 ScheduledFutureTask控制调度过程 总结 Schedule原创 2016-04-07 20:11:38 · 8284 阅读 · 0 评论 -
Java定时任务(1)
Java定时任务之Timer & TimerTaskTimer & TimerTask 作为java的任务调度器之一,了解其内部原理有助于我们更好的理解它与其他调度器之间的异同。 TimerTask Timer及其调度过程 总结 TimerTaskTimerTask作为被调度任务的抽象类,继承于Thread,但是没有实现run方法,而是留给我们根据具体业务需求来实现。1. T原创 2016-04-05 17:20:10 · 8154 阅读 · 0 评论 -
浅析Java垃圾回收机制
Java垃圾回收机制 在C++中,对象所占的内存在程序结束运行之前一直被占用,在明确释放之前不能分配给其它对象;而在Java中,当没有对象引用指向原先分配给某个对象的内存时,该内存便成为垃圾。JVM的一个系统级线程会自动释放该内存块。垃圾回收意味着程序不再需要的对象是”无用信息”,这些信息将被丢弃。当一个对象不再被引用的时候,内存回收它占领的空间,以便空间被后来的新对象使用。事实上,除了释放没用的对原创 2016-03-29 11:47:10 · 8138 阅读 · 0 评论 -
consul 配置---K/V存储及ACL
consul 配置—K/V存储及ACL标签(空格分隔): consul Consul简介 安装及运行 K/V存储 Java案例(基于Spring boot) ACL配置 小结 1.Consul简介1.1 consul的作用服务发现 Consul clients提供服务(例如API)其他的client发现服务的提供者(通过DNS或http,应用可以轻松的发现他原创 2016-08-28 16:02:41 · 3171 阅读 · 0 评论