登录/注册/绑定已有账户

(扫码关注公众号登陆注册)

找回密码 ×

请输入正确的手机号!
请输入正确验证码
短信验证码有误
请输入6-16位密码
两次输入不一致哦!

课程列表

引领世界级人才培养的IT教育公司

按会员:

  • 蚂蚁课堂微服务架构学习路线

    蚂蚁课堂微服务架构学习路线

    免费
    路线  324578
  • ConcurrentHashMap

    其实HashTable有很多的优化空间,锁住整个table这么粗暴的方法可以变相的柔和点,比如在多线程的环境下,对不同的数据集进行操作时其实根本就不需要去竞争一个锁,因为他们不同hash值,不会因为rehash造成线程不安全,所以互不影响,这就是锁分离技术,将锁的粒度降低,利用多个锁来控制多个小的table

    会员
    收藏  12,427
  • HashMap8源码解读

    数组+链表+红黑树的结构,也叫哈希桶,在jdk 1.8之前都是数组+链表的结构,因为在链表的查询操作都是O(N)的时间复杂度,而且hashMap中查询操作也是占了很大比例的,如果当节点数量多,转换为红黑树结构,那么将会提高很大的效率,因为红黑树结构中,增删改查都是O(log n)。

    会员
    收藏  14,227
  • 深入理解JUC并发编程

    AQS通过内部实现的FIFO等待队列来完成资源获取线程的等待工作,如果当前线程获取资源事变,AQS则会将当前线程以及等待状态等信息构造成一个Node节点,并将其加入等待队列中,同时会阻塞当前线程;当其它获取到资源的线程释放持有的资源时,则会把等待队列中的线程唤醒,使其再次尝试获取对应的资源。

    会员
    收藏  24,279
  • JVM虚拟机原理

    jvm在操作系统中运行,进程是操作系统的执行单位,启动一个java的程序,就是一个JVM进程实例,虚拟机进程启动就绪,然后由虚拟机中的类加载器加载必要的class文件,包括jdk中的基础类(如String和Object等),然后由虚拟机进程解释class字节码指令,把这些字节码指令翻译成本机cpu能够识别的指令,才能在cpu上运行。

    会员
    收藏  20,138
  • JVM之内存结构原理分析

    JVM在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有些区域则依赖用户线程的启动和结束而建立和销毁。JVM所管理的内存主要包括程序计数器、Java虚拟机栈、本地方法栈、Java堆、方法区、运行时常量这几块运行时数据区域

    会员
    收藏  12,375
  • JVM之加载器原理分析

    编写的java代码,会经过编译器编译成字节码文件(class文件),再把字节码文件装载到JVM中,映射到各个内存区域中,我们的程序就可以在内存中运行了。那么字节码文件是怎样装载到JVM中的呢?中间经过了哪些步骤?常说的双亲委派模式又是怎么回事?

    会员
    收藏  12,517
  • synchronized锁原理分析

    什么是synchronized锁?synchronized关键字底层是使用C++去操作汇编指令实现的,jdk1.6之前synchronized就是单纯一个重量级锁。synchronized的优缺点:同一时间只有一个线程在执行,其他未获取到锁的线程进入对象的锁池队列并进入阻塞状态放弃CPU执行权,因为切换线程需要在cpu用户态和内核态之间切换,线程切换频繁造成资源浪费。

    会员
    收藏  13,992
  • volatile关键字原理分析

    volatile通常被比喻成"轻量级的synchronized",也是Java并发编程中比较重要的一个关键字。和synchronized不同,volatile是一个变量修饰符,只能用来修饰变量。无法修饰方法及代码块等。volatile的用法比较简单,只需要在声明一个可能被多线程同时访问的变量时,使用volatile修饰就可以了。

    会员
    收藏  12,552
  • 深入理解aqs底层实现原理

    Lock 在 J.U.C 中是最核心的组件,前面我们讲 synchronized 的时候说过,锁最重要的特性就是解决并发安全问题。为什么要以 Lock 作为切入点呢?如果有看过 J.U.C 包中的所有组件,一定会发现绝大部分的组件都有用到了 Lock。所以通过 Lock 作为切入点使得在后续的学习过程中会更加轻松。

    会员
    收藏  15,345
  • 手写分布式日志主动上报系统

    分布式日志主动上报系统效果演示,基于全局捕获异常采集系统错误日志,分布式日志采集整合kafka主动上报

    会员
    收藏  14,117
  • 分布式事务解决方案

    在电商领域等互联网场景下,传统的事务在数据库性能和处理能力上都暴露出了瓶颈。柔性事务有两个特性:基本可用和柔性状态。所谓基本可用是指分布式系统出现故障的时候允许损失一部分的可用性。柔性状态是指允许系统存在中间状态,这个中间状态不会影响系统整体的可用性,比如数据库读写分离的主从同步延迟等。柔性事务的一致性指的是最终一致性。

    会员
    收藏  22,086
  • canal解决mysql与redis一致性问题

    mysql是如今非常主流的的关系型数据库,尤其是其InnoDB的存储引擎,在索引,事务,数据备份和恢复等方面有巨大的优势,因此也成了企业及个人开发者经常使用的存储方式。redis是与之相对的非关系型数据库的代表(Nosql, not only sql),其支持大量连接,数据存储在内存带来的执行速度快的优势,已经数据持久化保证数据不丢失等特性使得很多应用用其做为缓存。

    会员
    收藏  18,823
  • 分布式任务调度平台XXL-Job

    xxl-job,程序员不可避免的话题,很多业务场景需要我们某一特定的时刻去做某件任务。一般来说,系统可以使用消息传递代替部分定时任务(比如商品成功发货后,需要向客户发送短信提醒),两者有很多相似之处,一些场景下也可以相互替换,但是有一些不能...

    会员
    收藏  22,556
  • 基于Seata解决分布式事务

    Seata(Simple Extensible Autonomous Transaction Architecture) 是 阿里巴巴开源的分布式事务中间件,以高效并且对业务 0 侵入的方式,解决微服务场景下面临的分布式事务问题。

    会员
    收藏  29,018
  • RocketMQ解决分布式事务问题

    调研了多种MQ,决定采用阿里的RocketMQ来作为中间件。因为RocketMQ文档资料比较多,而且做集群方案的时候不需要引入第三方注册中心来做集群管理和负载均衡,RocketMQ可以保证严格的消息顺序,丰富的消息拉取模式(Push or Pull)

    会员
    收藏  18,281
  • RocketMQ设计原理

    RocketMQ发送消息三种方式:同步发送、异步发送、单向(Oneway)发送 1、同步发送 同步发送是指消息发送方发出数据后,会在收到接收方发回响应之后才发下一个数据包的通讯方式。此种方式应用场景非常广泛...

    会员
    收藏  26,708
  • RabbitMQ解决分布式事务问题

    RabbitMQ解决分布式事务原理: 采用最终一致性原理。 需要保证以下三要素 1、确认生产者一定要将数据投递到MQ服务器中(采用MQ消息确认机制) 2、MQ消费者消息能够正确消费消息,采用手动ACK模式(注意重试幂等性问题) 3、如何保证第一个事务先执行,采用补偿机制,在创建一个补单...

    会员
    收藏  19,674
  • 单超时30分钟自动关闭设计

    基于Redis解决订单超时30分钟自动过期,Redis(全称:Remote Dictionary Server 远程字典服务)是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。

    会员
    收藏  16,057
  • 实战高性能RabbitMQ

    RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。RabbitMQ服务器是用Erlang语言编写的,而群集和故障转移是构建在开放电信平台框架上的。所有主要的编程语言均有与代理接口通讯的客户端库。

    会员
    收藏  21,813
  • RedisCluster哨兵机制原理

    Redis 3.0 版本开始官方正式支持集群模式,Redis 集群模式提供了一种能将数据在多个节点上进行分区存储的方法,采取了和上述两者不同的实现方案——去中心化的集群模式,集群通过数据分片进行数据共享,分片内采用一主多从的形式进行副本复制,并提供复制和故障恢复功能。

    会员
    收藏  17,759