- 博客(23)
- 收藏
- 关注
原创 Java多线程之Lock体系
AQS——抽象的队列式的同步器,是一个用来构建锁和同步器的框架,使用AQS能简单且高效的构建出应用广泛的大量的同步器,比如ReentrantLock、Semaphore,其他诸如ReentrantReadWriteLock、SynchronousQueue、FutureTask等都是基于AQS的。AQS实现了:对同步状态的管理,以及对阻塞线程进行排队,等待通知等一系列底层的实现ReentrantLock重入锁,是实现了Lock接口的一个类,支持重入性,表示能够对共享资源重复加锁。
2025-04-04 10:40:20
636
原创 JVM的常见问题
根据JDK8规范,JVM运行时内存共分为:虚拟机栈,堆,元空间,程序计数器,本地方法栈五个部分.还有一部分内存叫直接内存,属于操纵系统的本地内存,也是可以直接操作的。弱引用通过Java.lang.ref.WeakReference类实现。弱引用的一个主要用途是创建非强制性的对象引用,从而避免内存泄漏。
2025-04-03 07:34:41
765
原创 MySQL进阶
在创建表时,指定存储引擎CREATE TABLE 表名(字段1 字段1类型 [COMMENT 字段1注释]...)ENGINE=INNODB [COMMENT 表注释];查看当前数据库支持的存储引擎。
2025-04-02 14:10:31
958
原创 MySQL中的锁
数据库死锁指在多个并发事务中,彼此之间出现相互等待的情况,导致所有事务无法继续执行,这样的情况称为死锁.如何解决MySQL自己就可以解决,分两种,一种是立刻解决(当检测到死锁时,数据库自动回收其中的一个事务,以解决死锁),另一种是延迟解决(设置等待超时时间,超过阈值就释放锁进行回滚)手动干预解决,通过命令手动快速找出阻塞的事务及其线程id,然后kill掉如何避免避免大事务:将大事务拆分为多个小事务,快速释放锁,降低冲突概率。
2025-04-01 09:11:12
1133
原创 MySQL基础
指从多张表中查询信息。笛卡尔积:笛卡尔积是指在数学中,两个集合A和集合B的所有组合情况。(在多表查询时,需要消除无效的笛卡尔积)事务是一组操作的集合,它是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败。
2025-03-30 08:54:45
1337
原创 Java异常架构
Java异常是Java提供的一种识别及响应错误的一致性机制Java异常机制可以使程序中异常处理代码和正常业务代码分离,保证程序代码更加优雅,并提高程序健壮性.在有效使用异常的情况下,异常能清晰的回答这3个问题:异常类型回答了"什么"被抛出,异常堆栈跟踪回答了"在哪"抛出,异常信息回答了"为什么"会抛出Throwable是Java语言中所有错误与异常的超类Throwable包含两个子类:,他们通常用于指示发生了异常情况.Throwable包含了其线程创建时线程执行堆栈的快照,它提供了printStackTra
2025-03-28 08:41:55
978
原创 Linux基础
Linux的目录结构是一个树型结构Windows系统可以拥有多个盘符,如C盘,D盘,E盘Linux没有盘符这个概念,只有一个根目录/,所有文件都在它下面。
2025-03-26 08:24:19
1279
原创 深入理解Java集合类
Collection接口和Map接口.前者是的集合类,后者存储的是Collection接口下又分为ListSetQueueArrayListVectorArrayListLinkedListLinkedListTreeSetHashSetIteratorHashSetHashSetLinkedListFIFO(先进先出)HashMapHashMapHashSetNULLTreeMapTreeMapHashTableHashMapHashTableHashTablejdk1.7jdk1.8Iterator。
2025-03-25 10:01:42
896
原创 Java多线程
当前任务在执行完CPU时间片后切换到另一个任务之前会先保存自己的状态,以便下次时间片轮转再次回到这个任务的时候,可以再次加载这个任务的状态.任务从保存到再加载的过程就是一次上下文切换Linux相比于其他操作系统有很多优点,其中有一项就是:其上下文切换和模式切换的时间消耗非常小Callable接口类似于Runnable,但是Runnable接口的run()方法不会返回结果,并且无法抛出返回结果的异常;
2025-03-24 11:25:18
1090
原创 Java中线程的基本操作
线程调度器是一个操作系统服务,它负责为Runable状态的线程分配CPU时间.一旦我们创建了一个线程并启动它,它的执行就依赖于线程调度器时间分片是将可用的CPU时间分配给可用的Runnable线程的过程.分配CPU时间可以基于线程优先级或者线程等待的时间线程调度器并不受Java虚拟机控制,所以由应用程序来控制它是最好的选择(也就是说不要让你的程序依赖于线程的优先级)
2025-03-23 10:19:40
1045
原创 MySQL事务
事务是一个不可分割的数据库操作序列,也就是数据库并发控制的基本单位;事务是逻辑上的一组操作,这组操作的各个单元要么全部执行成功,要么全部执行失败。
2025-03-22 15:24:21
824
原创 Redis常见数据类型(4)Set
集合类型也是保存多个字符串类型的元素的,但和列表类型不同的是,集合中元素之间是无序的元素不允许重复Redis 除了支持集合内的增删查改操作,同时还支持多个集合取交集、并集、差集,合理地使用好集合类型,能在实际开发中解决很多问题。
2025-03-21 09:42:51
626
原创 深入解析Java抽象类与接口
抽象方法:抽象方法是接口的核心部分,所有实现接口的类都必须实现这些方法,抽象方法默认是public和abstract的,这些修饰符可以省略.默认方法:默认方法是在Java8中引入的,允许接口提供具体实现.实现类可以选择重写默认方法静态方法:静态方法也是在Java8中引入的,它们属于接口本身,可以通过接口名直接调用,而不需要实现类的对象私有方法:私有方法是在Java9中引入的,用于在接口中为默认方法或其他私有方法提供辅助功能.这些方法不能被实现类访问,只能在接口内部使用。
2025-03-19 07:56:24
1147
原创 Redis常见数据类型(3)List
列表类型是用来存储多个有序的字符串.在Redis中,可以对列表两端插入(push)和弹出(pop),还可以获取指定范围的元素列表、获取指定索引下标的元素等。列表是一种比较灵活的数据结构,它可以充当栈和队列的角色,在实际开发上有很多应用场景。
2025-03-18 09:28:42
543
原创 Redis常见数据类型(2)Hash
几乎所有的主流编程语言都提供了哈希(hash)类型,它们的叫法可能是哈希、字典、关联数组、映射。在Redis中,哈希类型是指值本身又是⼀个键值对结构,形如 key = “key”,value = { { field1, value1 }, …, {fieldN, valueN } }
2025-03-17 09:35:19
574
原创 Redis常见数据类型(1)String
字符串类型是RedisRedis由于 Redis 内部存储字符串完全是按照⼆进制流的形式保存的,所以 Redis 是不处理字符集编码问题的,客⼾端传入的命令中使用的是什么字符集编码,就存储什么字符集编码。
2025-03-16 12:50:26
1255
原创 初识Redis
motectionaryerver)是一个开源的、高性能的键值存储系统,广泛用于缓存、消息队列、实时分析等场景。它支持多种数据结构,并提供了丰富的特性,使其成为一个功能强大且灵活的工具。Redis 之所以受到如此多公司的⻘睐,必然有之过⼈之处,下面是关于 Redis 的 8 个重要特性。
2025-03-15 11:06:28
1138
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人