自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

原创 JAVA并发编程之Synchronized

JVM会利用CAS操作尝试将对象的Mark World更新为指向Lock Record的指针,如果成功表示竞争到锁,然后将锁标志位置为00,如果失败则判断当前对象的Mark World是否指向当前线程的栈帧,如果是则表示当前线程已经持有当前对象的锁,可以直接执行同步代码块,否则说明该对象的锁已经被其他线程抢占了,这时轻量级锁需要膨胀为重量级锁,锁标志位变为10,后面等待的线程将会进入阻塞状态。不可中断:一个线程获得锁后,另一个线程想要获得锁,必须处于等待或阻塞状态,并且在等待或阻塞的过程中不可被中断。

2023-11-18 18:52:51 99

原创 分布式事务

是指一次大的操作由不同的小操作组成,并且这些小的操作分布在不同的服务器上,分布式事务需要保证这些小操作要么全部成功,要么全部失败。从本质上来说,分布式事务就是为了保证不同数据库的数据一致性。是指在一个分布式系统中,Consistency(一致性)、Availability(可用性)、Partitiontolerance(分区容错性)三者不可兼得。

2023-11-14 19:48:32 50

原创 MySQL进阶篇(存储引擎+Sql优化+MVCC+日志+两阶段提交+主从复制)

存储引擎就是存储数据、建立索引、更新/查询数据等技术的实现方式。存储引擎是基于表的。而不是基于库的,所有存储引擎也可被称为表类型。

2023-07-24 11:57:26 200

原创 JVM内存模型及垃圾收集机制

JVM 内存模型 垃圾回收

2023-06-25 13:03:28 156

原创 MySQL基础篇

MySQL基础篇

2022-06-08 01:46:58 659

原创 Spring底层原理--第一篇容器接口及其扩展

Spring底层原理 Bean和BeanFactory后处理器

2022-06-04 17:02:58 125

原创 new一个String对象后打印对象的引用不是地址

所有类都继承自Object类,如果没有重写toString()方法,打印出来的就是一串地址,比如下面打印的数组的引用但是String类中重写了toString()方法,从上面可以看出,toString()方法返回的是他本身,而String其实就是一个字符数组(jdk1.8及以前String使用的是char数组,jdk1.9及以后使用的是byte数组),所以打印String的引用其实就是打印字符数组而不是地址。...

2022-03-19 21:36:32 794

转载 java IO体系的学习总结

1.Java Io流的概念,分类,类图。 1.1 Java Io流的概念     java的io是实现输入和输出的基础,可以方便的实现数据的输入和输出操作。在java中把不同的输入/输出源(键盘,文件,网络连接等)抽象表述为“流”(stream)。通过流的形式允...

2021-08-12 20:47:21 117

转载 Redis面试题

文章目录 概述什么是RedisRedis有哪些优缺点为什么要用 Redis /为什么要用缓存为什么要用 Redis 而不用 map/guava 做缓存?Redis为什么这么快 数据类型Redis有哪些数据类型Redis的应用场景 持久化什么是Redis持久化?Re...

2020-11-22 17:05:19 538 1

转载 消息队列面试题及答案

1、为什么使用消息队列? 消息队列使用的场景和中间件有很多,但解决的核心问题主要是:异步、解耦、消峰填谷。 2、消息队列的优缺点 异步、解耦、消峰填谷这是消息队列最大的优点,除了这些消息队列还可以会解决一些我们特殊业务场景的问题。但是缺点主要在于系统的可用性、复杂性、一致性问题,引入消息队列后,需要考虑MQ的可用性,万一MQ崩溃了岂不是要爆炸?而且复杂性明显提高了,需要考虑一些消息队列的常见问题和解决方案,还...

2020-11-04 22:46:30 479

原创 数据库优化之索引

数据库优化 索引

2020-11-04 13:57:21 3670 2

原创 MySQL中的锁机制

MySQL常用存储引擎的锁机制MyISAM和MEMORY:表级锁(table-level locking)BDB:页级锁(page-level locking)或表级锁,默认为页级锁InnoDB:行级锁(row-level locking)和表级锁,默认为行级锁一、锁的分类1、按锁的粒度分:表级锁:特点:对当前操作的整张表加锁。加锁快,资源消耗少,不会出现死锁。锁定粒度最大,触发锁冲突的概率最高,并发度最低。MyISAM和 InnoDB引擎都支持表级锁。页级锁:特点:锁定粒度介于行级锁

2020-11-02 20:46:53 172

转载 AQS 原理以及 AQS 同步组件总结

AQS 原理以及 AQS 同步组件总结AQS 简单介绍AQS的全称为(AbstractQueuedSynchronizer),这个类在java.util.concurrent.locks包下面。AQS是一个用来构建锁和同步器的框架,使用AQS能简单且高效地构造出应用广泛的大量的同步器,比如我们提到的ReentrantLock,Semaphore,其他的诸如ReentrantReadWriteLock,SynchronousQueue,FutureTask等等皆是基于AQS的。当然,我们自己也能利用

2020-10-28 15:49:38 154

转载 JUC 中的 Atomic 原子类总结

JUC 中的 Atomic 原子类总结所谓原子类说简单点就是具有原子/原子操作特征的类。并发包 java.util.concurrent 的原子类都存放在java.util.concurrent.atomic下,如下图所示根据操作的数据类型,可以将JUC包中的原子类分为4类基本类型原子类使用原子的方式更新基本类型AtomicInteger:整形原子类AtomicLong:长整型原子类AtomicBoolean :布尔型原子类AtomicInteger类常用方法public final

2020-10-27 21:35:59 96

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除