Java
文章平均质量分 95
cx897459376
这个作者很懒,什么都没留下…
展开
-
Java8 ConcurrentHashMap 原理详解
Java8 ConcurrentHashMap 原理详解目录Java8 ConcurrentHashMap 原理详解1:简介1.1 ConcurrentHashMap 结构1.2 约定1.3 重要成员变量简介2 put 方法2.1 put方法简要流程2.2 put 方法源码2.3 总结点数如何记录3 扩容4 get 方法5 delete方法1:简介1.1 ConcurrentHashMap 结构 JDK 1.8 的 HashMap 的数据结构如上图所示,当链表节点较少时仍然是以链表存在,当链表节原创 2020-05-29 16:18:39 · 2323 阅读 · 0 评论 -
Spring AOP原理详解
前些日子把Spring AOP的源码撸了几遍,但是回过头总发现会忘记,因此以这篇文章记录一下,当作是总结和复习!1 什么是AOP AOP(Aspect Oriented Programming), 中文翻译过来就是面向切面编程,AOP可以说是OOP(Object-Oriented Programing,面向对象编程)的补充和完善,OOP引入封装、继承和多态性等概念来建立一种对象层次结构,用以模拟公共行为的一个集合。当我们需要为分散的对象引入公共行为的时候,OOP则显得无能为力,也就是说,OOP允许你定原创 2021-06-27 19:05:15 · 312 阅读 · 0 评论 -
面试官问我Java创建线程的方式和线程池参数?我笑了
Java 创建线程有四种方式继承Thread类,重写start方法实现Runnable接口,重写run方法,并使用Thread类启动实现Callable接口,重写call方法,并使用Thread类启动运用线程池1 继承Thread类package com.mingweicai.thread.newthread;class MyThread extends Thread{ @Override public void run() { System.out.pr原创 2021-03-24 22:28:02 · 242 阅读 · 2 评论 -
HashMap原理详解
Map是用于存储键值对(<key,value>)的集合类,也可以说是一组键值对,在Java 1.8以上,HashMap的数据结果如下HashMap的内部数据结构是由数组,链表,红黑树组成的。下文结合put方法的流程图解先简单分析HashMap的流程,之后再进行详细介绍。1 put方法图解(总体流程认知)1.1 在通过new HashMap<Integer,Integer>()新建一个对象时,HashMap此时的数据结构如下图1-11.2 新建完对象后,调用put(1,1原创 2021-03-22 11:10:34 · 264 阅读 · 0 评论 -
Spring 事务传播机制,失效场景等小结
Spring事务小结Spring事务传播机制Spring事务失效场景Spring 事务四大特性事务隔离级别产生的问题Spring 手动开启事务Spring事务传播机制Spring 七种传播机制REQUIRED(TransactionDefinition.PROPAGATION_REQUIRED)支持当前事务,如果有事务加入当前事务,没有则会创建一个新的事务SUPPORTS(TransactionDefinition.PROPAGATION_SUPPORTS)支持当前事务,如原创 2020-09-16 18:02:57 · 906 阅读 · 2 评论 -
Java静态代理和动态代理
1 代理模式代理模式为另外一个对象提供一个替身或占位符以控制对这个对象的访问举个例子来说明代理的作用: 一般我们想邀请明星来当我们的代言人,我们并不能直接联系到明星,而是通过其经纪人,来告诉经纪人我们需要和明星进行合作,然后通过经纪人来转达给明星。明星只需要做好代言工作就好,其他繁琐的事情就交于经纪人就可以。这里的经经纪人就是一个代理对象,明星就是一个目标对象代理分为静态代理和动态代理2 静态代理来看一个静态代理的例子假设现在有一个商家想找一个明星拍一则广告,这个商家找到明星的经纪人就广告费合同原创 2020-06-15 22:16:28 · 164 阅读 · 0 评论 -
Java中的各种锁详细介绍
转自:https://blog.csdn.net/axiaoboge/article/details/84335452Java提供了种类丰富的锁,每种锁因其特性的不同,在适当的场景下能够展现出非常高的效率。本文旨在对锁相关源码(本文中的源码来自JDK 8)、使用场景进行举例,为读者介绍主流锁的知识点,以及不同的锁的适用场景。Java中往往是按照是否含有某一特性来定义锁,我们通过特性将锁进行分组归类,再使用对比的方式进行介绍,帮助大家更快捷的理解相关知识。下面给出本文内容的总体分类目录:&...转载 2020-06-03 16:23:31 · 947 阅读 · 0 评论 -
Java 普通变量,静态变量,普通代码块,静态代码块,构造方法的执行顺序
Java 普通变量,静态变量,普通代码块,静态代码块,构造方法的执行顺序1:执行父类静态变量赋值/代码块,按变量/代码块定义的顺序执行2:执行子类静态变量赋值/代码块,按变量/代码块定义的顺序执行3:执行父类普通变量赋值/代码块,按变量/代码块定义的顺序执行4:执行父类构造函数5:执行字类普通变量赋值/代码块,按变量/代码块定义的顺序执行6:执行子类构造函数public class SuperClass { public static Integer k1 = 1; static原创 2020-05-30 16:09:03 · 461 阅读 · 0 评论 -
NIO 原理链接
https://www.cnblogs.com/crazymakercircle/p/10225159.html原创 2020-05-27 10:06:22 · 144 阅读 · 0 评论 -
Java8 ThreadPoolExecutor 源码详解
Java8 ThreadPoolExecutor 源码详解1 简介1.1 什么是线程池 线程池思想:在系统中开辟一块区域,存放一定数量的线程,当接收到要处理的任务时,从池中取一个空闲的线程进行处理,执行完任务归还线程,线程池避免重复创建大量不必要线程,避免浪费cpu和系统资源1.2 使用简介 ThreadPoolExecutor 主要通过 execute 和 submit方法提交要执行的任务到线程池,线程池会创建/取出空闲线程执行要处理的任务, execute 方法接收一个Runnable类型原创 2020-05-16 15:09:43 · 260 阅读 · 1 评论