Java基础
文章平均质量分 81
Java基础(学习+源码)
jadebai
Java成长道路的记录
展开
-
log日志系列总结
1.背景 在现在这个服务化横行的时代,我们会对接很多的服务方,但是每个服务方的开发人员都会有一个自己用的习惯的日志实现,其中包括(Logback、Log4j1、Log4j2、JCL、J.U.L),在我们开发过程中就需要整合所有对接的业务方的日志输出。 2.遇到的问题 由于引入不同服务方,导致自己项目中日志的冲突,在各种日志JAR的冲突中总是尝试的去排除一些J...原创 2019-07-08 19:00:41 · 484 阅读 · 0 评论 -
Java类加载的顺序-包含父子关系
Java类加载的顺序-包含父子关系 首先看一段代码: public class TestClassLoader { static class Father { public static final String TAG =...原创 2019-01-04 18:25:00 · 776 阅读 · 2 评论 -
线程池原理+JDK1.8源码解析
线程池创建的方式: public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit,...原创 2019-01-31 15:51:44 · 373 阅读 · 0 评论 -
LinkedHashMap原理(jdk1.8之前)
LinkedHashMap继承了HashMap,所以也是put和get方法,只是在方法里由于多态,会实现HashMap未实现的方法。 LinkedHashMap多了两个自己的成员变量:Entry<K,V> header,boolean accessOrder。 LinkedHashMap之所以循环取出是有序的,就是维护了一个双向的链表,主要就是靠header来维护的。 ...原创 2018-07-10 17:03:46 · 287 阅读 · 0 评论 -
volatile关键字
volatile是java中的关键字,主要保证了变量的可见性和有序性。说到这个我们就需要了解一下jvm的内存模型jmm jvm内存:主内存(计算机物理内存)+工作内存(高速缓存区): 程序请求-->工作内存会从主内存拿来数据-->程序拿到数据计算使用-->修改到工作内存-->同步到主内存。 在多线程的情况下,这种操作可能就会发生问题。...原创 2018-07-10 10:45:47 · 135 阅读 · 0 评论 -
CAS机制
CAS原创 2018-06-27 14:33:05 · 142 阅读 · 0 评论 -
HashMap和ConcurrentHashMap(JDK1.8之前)
HashMap和ConcurrentHashMap(JDK1.8之前) 1.HashMap的底层原理 1.1.HashMap主要是用于存储key-value键值对形式的数据,每一个键值对都是一个Entry对象,这些Entry对象存储在一个数组中,这个数组就是HashMap的核...原创 2018-06-26 17:50:21 · 210 阅读 · 0 评论