Spring IoC 源码解析:获取源码

Spring IoC 源码解析:获取源码

Spring工程采用Gradle做项目管理,所以我们需要在本地安装Gradle,我的的本地环境如下: Windows 10 Professional java 1.8.0_102 Gradle 3.4.1 一. 从git上下...

基于锁分段机制的 ConcurrentHashMap 实现内幕

基于锁分段机制的 ConcurrentHashMap 实现内幕

ConcurrentHashMap 是线程安全的 HashMap。相对于 HashTable 而言,ConcurrentHashMap 采用了 锁分段机制,即将原本对整个对象加锁的实现进行粒度细化。这也是源于 HashMap 基本的存...

Java 异常处理机制与最佳实践

Java 异常处理机制与最佳实践

这周小组内的学习是探讨 java 异常处理的最佳实践,今天周末,外面太闷,宅在家里对 java 的异常处理的个人立即做一个总结,如有不对的地方欢迎指正~ 一. 谈谈个人对 java 异常处理的看法维基百科对于异常处理的定义是: 异常...

转载:为什么要使用 slf4j 而不是 log4j

转载:为什么要使用 slf4j 而不是 log4j

每一个 java 程序员都知道日志对于任何一个 java 应用程序,尤其是服务端程序是至关重要的,而很多程序员也已经熟悉各种不同的日志库如 java.util.logging、Apache log4j、logback。但如果你还不知道...

理清 CountDownLatch 与 CyclicBarrier 的区别

理清 CountDownLatch 与 CyclicBarrier 的区别

对于刚接触信号量同学来说,CountDownLatch 和 CyclicBarrier 应该是两个比较容易混淆的组件,它们都能表示让多个线程等待某个特定事件的语义,不过在功能上还是存在一些差别,实际上它们的 关键区别在于参与的线程是否...

Java 并发编程:基础篇

Java 并发编程:基础篇

一. 线程相关的基本概念1.1 线程的状态线程可以有 6 种状态(如下图所示),定义在 java.lang.Thread.State 枚举中,我们调用线程对象的 getState 方法来获取线程的当前状态。当我们 new 一个线程的时...

转载:Cookies 中的那些事儿

转载:Cookies 中的那些事儿

HTTP cookies,通常称之为 “cookie”,已经存在很长时间了,但是仍然没有被充分理解。首要问题是存在许多误解,认为 cookie 是后门程序或病毒,却忽视了其工作原理。第二个问题是,对于 cookie 的操作缺少统一的接...

Spring 框架配置使用指南

Spring 框架配置使用指南

本篇用于记录 Spring 框架的配置使用方式,持续更新… 当前支持版本:4.x 注意事项1. BeanFactory 与 ApplicationContext 在容器初始化上的区别BeanFactory 在初始化容器时,并未实例...

二叉树遍历算法的非递归实现

二叉树遍历算法的非递归实现

二叉树遍历中的前、中、后,说的都是双亲节点,而左孩子节点和右孩子节点始终是先左再右。基于递归实现二叉树的遍历算法较为简单,如果放弃递归策略以非递归的方式实现,则所有的遍历的实现都需要 依赖于栈结构。 一. 前序遍历前序遍历算法的遍历次...

模式匹配:KMP 算法

模式匹配:KMP 算法

KMP 算法是在给定字符串中检索目标字符串的算法,该算法由Knuth、Morris 和 Pratt 三人在 Brute-Force 算法的基础上提出的模式匹配改进算法。该算法消除了 Brute-Force 在进行匹配时,只要遇到不相等...