自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 redis高级篇及相关问题(详细版)

Redis 的所有数据都在内存中,因此所有的运算都是内存级别的,所以它的性能比较高。hash 可以在 O(1)的时间内计算出 hash 值并且找到对应的 entry 位置,entry 里面是一个一个 key 指针和 value 指针,其实还有其他信息。这也 是 redis 之所以性能高的原因之一。因为是单线程模型,因此就避免了不必要的上下文切换和多 线程竞争,这就省去了多线程切换带来的时间和性能上的开销,而且单线程不会 导致死锁的问题发生。

2025-07-17 20:17:06 1017

原创 MySQL高级篇(二)深入理解数据库事务及锁机制以及优化SQL(详细版)

首先来看两个事务的写操作之间的相互影响。隔离性要求同一时刻只能有一个事务对数据进行写操作,InnoDB通过锁机制来保证这一点。锁机制的基本原理可以概括为:事务在修改数据之前,需要先获得相应的锁;获得锁之后,事务便可以修改数据;该事务操作期间,这部分数据是锁定的,其他事务如果需要修改数据,需要等待当前事务提交或回滚后释放锁。按照粒度,锁可以分为全局锁、表锁、行锁以及其他位于二者之间的间隙锁。锁的分类。

2025-07-15 19:48:41 1025

原创 MySQL高级篇(一)深入解析MySQL架构与引擎(超详细版)

MySQL 中的数据用各种不同的技术存储在文件中。这些技术中的每一种 技术都使用不同的存储机制、索引技巧、锁定水平、并且最终提供广泛的不同的 功能和能力。通过选择不同的技术,你能够获得额外的速度或者功能,从而改善 你的应用的整体功能。这些不同的技术以及配套的相关功能在 MySQL 中被称作存储引擎(也称作 表类型)。MySQL 默认配置了许多不同的存储引擎,可以预先设置或者在 MySQL 服务器中启用。

2025-07-15 19:40:54 766

原创 Java设计模式(详细版)

"设计模式"最初并不是出现在软件设计中,而是被用于建筑领域的设计中。1977 年美国著名建筑大师、加利福尼亚大学环境结构中心主任克里斯托 夫·亚历山大(Christopher Alexander)在他的著作《建筑模式语言:城镇、 建筑、构造》中描述了一些常见的建筑设计问题,并提出了 253 种关于对城镇、 邻里、住宅、花园和房间等进行设计的基本模式。1990 年软件工程界开始研讨设计模式的话题,后来召开了多次关于设计模 式的研讨会。

2025-07-14 19:51:25 745

原创 Java并发编程之线程池与线程变量(详细版)

以前我们需要使用线程的时候就去创建一个线程,这样实现起来非常简便,但是 就会有一个问题: 如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。在 Java 中可以通过线程池来解决此问题。线程池里的每一个线程代码结束后,并不会死亡,而是再次回到线程池中成为空闲状态,等待下一个对象来使用。在,我们必须手动实现自己的线程池,从。在 JDK5 版本中增加了内置线程池实现,同时提供了来创建不同类型的线程池。

2025-07-13 19:46:11 1305

原创 Java——ConcurrentHashMap 的底层原理与线程安全机制

它可以支持高并发读,是因为它完全无锁,它支持高并发写,是因为它是分段锁,从而不像整把锁一样,使用细粒度锁减少了竞争,在多线程情况下能够协同扩容,随着并发量增加它的性能下降平缓,所以它性能稳定。通过这种设计,在保证线程安全的同时,大幅提升了并发性能,成为了Java并发编程中最常见的并发容器之一。t=P4F5。

2025-07-12 20:06:02 975

原创 JAVA集合类-HashMap(详细版)

这是链表以及红黑树的数据结构代码表示。// 基础链表节点// 哈希值V value;// 链表指针// 构造方法和equals/hashCode实现// 红黑树节点(继承自LinkedHashMap.Entry)// 父节点// 左子树// 右子树// 前驱节点(用于快速拆解)// 颜色标记。

2025-07-12 19:37:51 333

原创 Java并发编程(二)(详细版)

为了解决在并发编程中出现的三大问题:不可见性,乱序性,非原子性,Java为了解决这些问题,有以下几种方法,从而使得在多线程环境中线程安全。

2025-07-11 20:30:54 861 1

原创 Java并发编程(一)

工作内存缓存导致的不可见性问题编译优化带来的乱序性问题线程切换带来的非原子性问题。其实缓存、线程、编译优化的目的和我们写并发程序的目的是相同的,都是提高程序安全性和性能。但是技术在解决一个问题的同时,必然会带来另外一个问题,所以在采用一项技术的同时,一定要清楚它带来的问题是什么,以及如何规避。

2025-07-11 19:24:24 496

原创 Java多线程

注意:两者都是重新写了run方法。

2024-09-24 20:21:03 401

原创 Java的正则表达式

一:引例:二:一些简单的正则表达式:匹配一个数字:[0-9]匹配字母:[a-zA-Z][^0-9]:这个表达式的意思为不是0-9的所有字符。"." 这个点表示任意字符因为点是任意一个字符,所以打印下来的结果应该是true。

2024-07-27 14:41:57 358 1

原创 List接口以及实现类

一:ArrayList的一些api二:ArrayList和LinkedList的区别 三:set的去重复原理

2024-07-24 17:48:14 228 1

原创 第九大数据类型-------String

Sting的一些重要知识

2024-07-22 11:39:40 284 1

原创 Java(常变量,运算符)

不同于c语言的非零为真,零为假,Java里有个布尔类型(boolean),它只有两个值 true和false。逻辑运算符:&& 并且(短路与)(a&&b,如果a错,不看后面,错误,如果a对,继续看后面,b对,整个语句对)|| 或者(短路或)(a||b,如果a对,不看后面,全真,如果a错,继续看后面,b对,整个语句对)1:基本变量:1,1.3,'a',"abc",true,null 等。4:常量的类型:编译器有两个默认(1):1,2,3这类默认int。a)(a对,语句错,a错,语句对)

2024-07-12 21:01:40 482

原创 Java入门——配置开发环境(JDK的配置)

第三步:win+r键,在命令行输入cmd,然后再弹出的页面输入 java version,第二个输入 java。然后再选择新建,这个新建的变量名为CLASSMATH,变量值为 ,;然后点击Path,选择编辑,然后选择新建,这个新建的名称为%JAVA_HOME%\bin。

2024-07-11 08:04:05 521

原创 字符串之间的操作

四:字符串的比较(ASCII码)一:两个字符串的相互赋值。二:字符串长度的测定。

2024-06-15 22:00:59 236

原创 字符数组与字符串(c语言)

切记(C语言规定用空字符 '\0' 作为一个字符串的结束标志,即空字符前均为有效字符)%c是字符输出的格式化;目的是输出字符数组str中所有的元素。若要给上述定义的字符数组重新赋值,则可用下述方法。二:输入输出字符串用%s。这些定义都是可以的;

2024-06-15 21:42:55 536

原创 选择结构程序设计(switch语句)

四:注意default 的使用,它指的是其余情况,则没有涵盖在你写的case条件的其余情况,且default 不需要加break语句,且并不是必须的,就是说如果你的case的所有条件和switch里的都不满足,则直接跳出程序。三:如果在case后有多条执行语句,不用像if语句那样加花括号,进入某个case后,程序按照顺序执行本case后面的所有语句,多个case 可共用一条执行语句(一个case后没加break 则进入下一个符合条件的case)二:break continue在switch中作用。

2024-06-08 07:34:21 527

原创 选择结构程序设计(if else语句)

c语言中的选择结构(if语句)

2024-06-01 18:59:17 243

空空如也

空空如也

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

TA关注的人

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