Java
文章平均质量分 74
一个小小bug
这个作者很懒,什么都没留下…
展开
-
redis实现分布式锁问题
使用Redis作为分布式锁的一些注意点</div> Redis实现分布式锁最近看分布式锁的过程中看到一篇不错的文章,特地的加工一番自己的理解:Redis分布式锁实现的三个核心要素:1.加锁最简单的方法是使用setnx命令。key是锁的唯一标识,按业务来决定命名,value为当前线程的线程ID。比如想要给一种商品的秒杀活动加锁,可以给key命名为 “lock_sale_ID” 。而value设置成什么呢?我们可以姑且设置成1。加锁的伪代码如下: ...转载 2020-09-27 10:11:49 · 685 阅读 · 1 评论 -
线程池ThreadPoolExecutor、Executors参数详解与源代码分析
线程池ThreadPoolExecutor、Executors参数详解与源代码分析 </h1> <div class="clear"></div> <div class="postBody"> 欢迎探讨,如有错误敬请指正 如需转载,请注明出处 http://www.cnblogs.com/nullzx/ 1. ThreadPoolExecu...转载 2020-09-14 13:46:35 · 362 阅读 · 0 评论 -
redis锁机制
Redis分布式锁的实现原理 </h1> <div class="clear"></div> <div class="postBody"> 一、写在前面现在面试,一般都会聊聊分布式系统这块的东西。通常面试官都会从服务框架(Spring Cloud、Dubbo)聊起,一路聊到分布式事务、分布式锁、ZooKeeper等知识。所以咱们这篇文章就来聊聊分布式锁这块知识,具体的来看看Redis分布式锁的实现原理。说实话,如果在...转载 2020-09-02 18:33:01 · 4996 阅读 · 2 评论 -
bean生命周期
Spring作为当前Java最流行、最强大的轻量级框架,受到了程序员的热烈欢迎。准确的了解Spring Bean的生命周期是非常必要的。我们通常使用ApplicationContext作为Spring容器。这里,我们讲的也是 ApplicationContext中Bean的生命周期。而实际上BeanFactory也是差不多的,只不过处理器需要手动注册。 转载请注明地址 http://www.cnblogs.com/zrtqsk/p/3735273.html,谢谢。一、生命周期流程图...转载 2020-09-01 19:09:59 · 188 阅读 · 0 评论 -
Eureka 与 zookeeper 的区别、原理及各自优缺点
Eureka 与 zookeeper 的区别、原理及各自优缺点前言在微服务的开发过程中,如果使用的是 Dubbo 那就必须使用到 Zookeeper ,在使用 Spring Cloud Eureka 时,自然其功能更强大得多。博主也不得不感叹,Spring Cloud Eureka 后来者居上呀,Dubbo 早在几年前停止了维护,在其停止了维护的几年里正是互联网发展的大好时期,Eureka 借机快速发展,夺得了一大...转载 2020-08-31 17:06:42 · 17359 阅读 · 5 评论 -
红黑树
一、在理解红黑树之前,先看一些二叉查找树二叉查找树特性:左字数上所有的节点的值都小于或等于他的根节点上的值 右子树上所有节点的值均大于或等于他的根节点的值...转载 2019-03-07 18:04:18 · 160 阅读 · 0 评论 -
Spring Cloud底层原理
>转载请标明出处: >https://www.fangzhipeng.com> 本文出自[方志朋的博客](http://blog.csdn.net/forezp)> >本文为转载文章,作者:中华石杉,十余年BAT架构经验,倾囊相授。作者微信公众号:石杉的架构笔记(ID:shishan100)概述毫...转载 2019-03-11 13:00:35 · 259 阅读 · 0 评论 -
b +tree
转载自:伯乐专栏作者/玻璃猫,微信公众号 - 梦见 漫画:什么是b+树这一次我们来介绍 B+ 树。 一个m阶的B树具有如下几个特征: 1.根结点至少有两个子女。 2.每个中间节点都包含k-1个元素和k个孩子,其中 m/2 <= k <= m 3.每一个叶子节点都包含k-1个元素,其中 m/2 <= k <= m 4.所有的叶子结点都...转载 2019-03-07 22:35:48 · 205 阅读 · 0 评论 -
spring-kafka消费者源码
目录一、kafkaConsumer消费者模型一、kafkaConsumer构造二、消费者容器启动流程 正文系列目录kafka原理和实践(一)原理:10分钟入门kafka原理和实践(二)spring-kafka简单实践kafka原理和实践(三)spring-kafka生产者源码kafka原理和实践(四)spring-kafka消费者源码kafka原理和实践(五)spring-ka...转载 2019-03-28 17:00:13 · 1268 阅读 · 0 评论 -
kafka集群消费之ConsumerRecord类
java.lang.Object继承org.apache.kafka.clients.consumer.ConsumerRecord <K,V>public final class ConsumerRecord <K,V> extends Object从Kafka收到的键/值对。这包括主题名称和分区号,从中接收记录以及指向Kafka分区中记录...转载 2019-03-28 17:10:09 · 15303 阅读 · 3 评论 -
在线时间格式生成
http://cron.qqe2.com/原创 2019-04-17 15:56:02 · 1064 阅读 · 0 评论 -
分布式设计
一、分布式知识点:分布式基础、缓存机制、消息机制、搜索机制、分布式ID、分布式锁、分布式SESSION、分布式事务、分布式分页、分布式部署、二、分布式基础知识 软件架构设计的六大原则:https://blog.csdn.net/u012562943/article/details/76110761 软件架构需要考虑的基本原则:https://blo...转载 2019-03-07 17:13:20 · 470 阅读 · 0 评论 -
java基础题
1.Java中有哪些基本数据类型?String是基本数据类型吗?String类是否能够继承?答:1.java定义了4中类8种基本类型: 整型:byte、short、int、long ...转载 2019-03-06 20:25:40 · 266 阅读 · 0 评论 -
HashMap的源码,实现原理,JDK8中对HashMap做了怎样的优化
(转载,个人学习所用,非原创)在JDK1.6,JDK1.7中,HashMap采用位桶+链表实现,即使用链表处理冲突,同一hash值的链表都存储在一个链表里。但是当位于一个桶中的元素较多,即hash值相等的元素较多时,通过key值依次查找的效率较低。而JDK1.8中,HashMap采用位桶+链表+红黑树实现,当链表长度超过阈值(8)时,将链表转换为红黑树,这样大大减少了查找时间。简单说下Hash...转载 2019-02-26 15:21:42 · 275 阅读 · 0 评论 -
JAVA多线程之volatile 与 synchronized 的比较
JAVA多线程之volatile 与 synchronized 的比较 一,volatile关键字的可见性要想理解volatile关键字,得先了解下JAVA的内存模型,Java内存模型的抽象示意图如下:从图中可以看出:①每个线程都有一个自己的本地内存空间--线程栈空间???线程执行时,先把变量从主内存读取到线程自己的本地内存空间,然后再对该变量进行...转载 2019-03-05 19:05:24 · 297 阅读 · 0 评论 -
常用设计模式
Longronglin之设计模式:Christopher Alexander 说过:“每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复劳动”。模式描述为:在一定环境中解决某一问题的方案,包括三个基本元素--问题,解决方案和环境。阅读类图和对象图请先学习UML创建模式 结构模式 行为模式创建模式:...转载 2019-03-05 20:54:23 · 400 阅读 · 0 评论 -
设计模式之工厂模式
工厂方法模式:工厂方法模式定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。一、简单工厂模式:实例化对象的时候不再使用 new Object()形式,可以根据用户的选择条件来实例化相关的类。对于客户端来说,去除了具体的类的依赖。只需要给出具体实例的描述给工厂,工厂就会自动返回具体的实例对象。具体实现如下:1. 定义一个操作...转载 2019-03-05 21:22:06 · 317 阅读 · 0 评论 -
设计模式之单例模式
在Java开发过程中,很多场景下都会碰到或要用到单例模式,在设计模式里也是经常作为指导学习的热门模式之一,相信每位开发同事都用到过。我们总是沿着前辈的足迹去做设定好的思路,往往没去探究为何这么做,所以这篇文章对单例模式做了详解。一、单例模式定义:单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。在计算机系统中,线程池、缓存、日志对象、对话框、打印机、显卡的驱动程序对象常被...转载 2019-03-05 21:24:01 · 267 阅读 · 0 评论 -
Arraylist和Linkedlist的区别
Arraylist:底层是基于动态数组,根据下表随机访问数组元素的效率高,向数组尾部添加元素的效率高;但是,删除数组中的数据以及向数组中间添加数据效率低,因为需要移动数组。例如最坏的情况是删除第一个数组元素,则需要将第2至第n个数组元素各向前移动一位。而之所以称为动态数组,是因为Arraylist在数组元素超过其容量大,Arraylist可以进行扩容(针对JDK1...转载 2019-03-06 11:33:11 · 307 阅读 · 0 评论 -
深入理解Java-GC机制
Hello,大家好,我是Steafan,在经历了惊心动魄的阿里电面之后,我又回来了。今天我们来谈谈Java主流虚拟机-HotSpot的GC实现机制,本篇文章默认使用HotSpot虚拟机进行介绍,如果没有特殊说明,其都为HotSpot虚拟机中的特性。 Java与C++之间有一堵由内存动态分配和垃圾收集技术所围城的“高墙”,墙外面的人想进去,墙里面的人却想...转载 2019-03-06 11:34:47 · 228 阅读 · 0 评论 -
面试中怎么回答Spring,IOC,AOP
IOC:控制反转也叫依赖注入,IOC利用java反射机制,AOP利用代理模式。所谓控制反转是指,本来被调用者的实例是有调用者来创建的,这样的缺点是耦合性太强,IOC则是统一交给spring来管理创建,将对象交给容器管理,你只需要在spring配置文件总配置相应的bean,以及设置相关的属性,让spring容器来生成类的实例对象以及管理对象。在spring容器启动的时候,spring会把你在配置文件...转载 2019-03-06 12:25:43 · 3009 阅读 · 0 评论 -
红黑树(一)之 原理和算法详细介绍
概要目录1 红黑树的介绍2 红黑树的应用3 红黑树的时间复杂度和相关证明4 红黑树的基本操作(一) 左旋和右旋5 红黑树的基本操作(二) 添加6 红黑树的基本操作(三) 删除 作者:Sky Wang 于 2013-08-08 &nbs...转载 2019-03-06 12:28:17 · 221 阅读 · 0 评论 -
Lock和synchronized比较
我们已经知道,synchronized 是Java的关键字,是Java的内置特性,在JVM层面实现了对临界资源的同步互斥访问,但 synchronized 粒度有些大,在处理实际问题时存在诸多局限性,比如响应中断等。Lock 提供了比 synchronized更广泛的锁操作,它能以更优雅的方式处理线程同步问题。本文以synchronized与Lock的对比为切入点,对Java中的Lock框架的枝干...转载 2019-03-06 12:46:03 · 565 阅读 · 0 评论 -
HashMap实现原理及源码分析
本文章属于转载,个人笔记收藏学习所用(非原创)HashMap实现原理及源码分析哈希表(hash table)也叫散列表,是一种非常重要的数据结构,应用场景及其丰富,许多缓存技术(比如memcached)的核心其实就是在内存中维护一张大的哈希表,而HashMap的实现原理也常常出现在各类的面试题中,重要性可见一斑。本文会对java集合框架中的对应实现HashMap的实现原理进行讲解,然后会对JD...转载 2019-02-26 14:50:49 · 121 阅读 · 0 评论