自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 串行、并发和并行(Java并发编程)

多个任务交替执行时,相对于串行执行可以有效利用计算机的CPU和IO设备,如上图所示,任务1在使用CPU的时候,任务2可以使用IO设备,任务1在使用IO设备时,任务2可以使用CPU,通过任务1和任务2的交替使用CPU和IO设备,可以充分提示CPU和IO设备的利用率。橙黄色的时间片代表任务1,绿色的时间片代表任务2,任务1和任务2都是串行执行,比如说,任务1在使用CPU的时候,IO设备是空闲的,任务1在使用IO设备时,CPU是空闲的,任务1在执行的时候是串行执行的,任务2也是。是指多个任务交替执行。

2026-10-31 11:50:46 10

原创 python中的字符串

字符串的值通常用双引号包括起来,当然你也可以使用单引号包括起来,但是需要注意的是,字符串值的两侧要么是双引号,要么是单引号,不能两侧一个单引号一个双引号。如果里面只包含单引号,你可以使用双引号把字符串的值包含起来,同样的,如果里面只包含双引号,你可以用单引号把内容包括起来。这种方式在我们需要较长的字符串的时候,非常有用,但同时,我们也可以使用这种方式作为注释来使用。如果我们需要使用多行字符串,也就是我们的内容需要换行,那么我们可以使用三个引号的形式。如果你的字符串值里面包含单引号或者双引号怎么办?

2026-10-20 13:55:48 147

原创 Python中的数值类型和数学运算

在python中,如果我们数学运算的表达式中使用了 / (除法),那么结果一定是浮点数,就算小数点后都是0,那结果也是浮点数。上面的 + 和 - 和我们数学运算中的加减符号一致, 在python中,我们 * 代表乘法符号,使用 / 代表除法。在python中,有两种类型的数值类型,一种是整数,一种是浮点数,也就是我们数学中的带小数点的数值。如果我们不想让结果是浮点数,我们可以使用整除的符号(//)使用%的时候,python将进行除法运算,然后计算余数。而且乘法和除法的优先级要高于加法和减法。

2026-10-19 20:13:52 215

原创 Python变量

如果你定义和初始化了一个变量,但是从来不会改变它,你可以使用变量名大写的方式来表明它是一个常量,当然这在语法上不是必须的,但它是一个我们都默认遵守的习惯,这样别人开看你代码的时候一下就能知道这是一个常量。注释可以帮助我们记住我们的代码逻辑,比如你写了一大堆代码,过了两个月或者半年后,你再回来看,可能已经忘了你当时为什么这么写了,但是,如果你加了注释,就可以帮你很轻松的回忆起来你的代码逻辑。注释也可以让其他查看你代码的人,比如需要和你协同编写项目的同事,可以让他们更轻松的理解你的代码,方便团队之间的合作。

2026-10-17 20:53:35 61

原创 dart语言中的字符串

我们看到,三个单引号不仅可以换行书写dart总的字符串,同时还保存了原有的字符串格式。那单引号或者双引号和三个单引号有什么区别呢?

2026-09-16 22:22:03 12

原创 dart简介

虽然说我们这里使用的是var关键字,没有为str指定一个特定的类型,其实在dart中,String类型才是对应的字符串类型,但是只要我们在这里定义和初始化了变量str,这个变量str就会被自动推断为String类型,它是基于str的初始值的数据类型来推断的,因为"Hello dart!dart作为一种跨平台的编程语言,它是可以被翻译到不同平台的,比如可以被翻译成不同平台的机器语言,可以被目标平台的执行的机器代码,如果是web平台,可以被翻译为浏览器可以识别的JavaScript代码。的语言这个怎么理解呢?

2026-09-06 14:08:31 173

原创 Flutter简介

Flutter是一个跨平台的开发应用框架,我们可以基于一套代码构建出不同平台的app,这大大节省了我们的开发成本,得益于Flutter的跨平台特性,我们不需要学习不同平台的开发知识,只需要Flutter,我们就可以开发出能在不同平台上运行的APP,并且Flutter的运行性能较为接近原生。Flutter是由Google开发的一个移动应用框架,可以用来开发不同平台的app,是目前最流行的跨平台应用框架之一,也可以说是移动端跨平台应用开发的最主流的开发框架。Flutter使用的编程语言是Dart。

2026-09-05 15:32:26 252

原创 事务并发访问的问题之不可重复读

结果发现,session并未做任何操作,结果却硬生生从1300,变成了1600,这个就是所谓的不可重复读,也就是当前session1在当前事务内一直去读取数据,发现读取的数据结果居然不一致。避免不可重复读的方法也很简单,就是将我们事务的隔离级别再调大一级,也就是 repeatable read,这也是InnoDB引擎默认的事务隔离级别。不可重复读的含义是:事务A多次读取同一数据,事务B在事务A多次读取的过程中,对数据进行了更新并提交,导致事务A多次读取同一数据时,结果不一致。

2026-05-12 22:58:41 338

原创 MySql索引(三)- hash索引和位图索引

由于哈希索引比较的是进行哈希运算之后的哈希值,所以它只能用于等值的过滤,不能用于基于范围的查询,因为经过相应的哈希算法处理之后的哈希值的大小关系,并不能保证和哈希运算前的完全一样。有可能在一个很极端的情况下,所有的键,计算出来的这个哈希值都是是相同的,也就是都放在同一个 bucket 当中,那我们查询这个 bucket 的最后一条数据的时候,就会变成了线性的了。对于组合索引,哈希索引在计算哈希值的时候,是组合键,就是将组合索引键合并之后再一起进行运算的哈希的值,而不是单独计算哈希值的。

2026-05-12 18:19:36 416

原创 数据库事务的四大特性以及事务并发访问引起的更新丢失问题

持久性意味着当系统或者介质发生故障时,确保已提交事务的更新不能丢失,即对已提交事务的更新能恢复,一旦一个事物被提交,DBMS 必须保证提供适当的冗余,使其耐得住系统的故障。假设用户 a和用户 b 两者的钱加起来一共是2000,那么不管 a和 b之间如何转账,转几次账,事务结束后,两个用户的钱相加起来应该还得是2000,这就是事务的一致性。它们同时开启事务,两个事务都对这个账户进行余额查账的动作,发现账户余额为100,此时存款事务向账户存入了20块钱,那么它的余额就变成了120元。它存入之后就提交了,

2026-05-10 21:23:54 271

原创 MySql索引(二)

大家可以看到 B+ 树的叶子节点,都是按照大小顺序来做排列的,大家可以看到5,8,9,然后再到10,15,18都是按照这个大小顺序来排列的,叶子节点链接起来,能够方便我们直接在叶子节点做范围统计,就比如说我们要搜索大于或者等于10的这些数据,我们定位到存储10的这一个叶子节点之后,它就会直接从这里往后统计,也就是说它支持范围统计,例如这里的大于等于10。由于 B 树有这5个规定存在,所以,b 树就会有相应的策略,通过这个合并分裂上移下移节点,来保持它的这个特征,使B树的高度远比我们的二叉树矮得多。

2026-05-10 21:20:33 449

原创 MySql锁的分类

第2步,如果id为2的数据行version初始值为0,如果session A先执行,那么version值被更新为了1,之后session B再执行,就会由于数据version不一致而更新失败,结果是 money 被更新成了100,version被更新成了1。悲观锁的实现往往依靠数据库提供的锁机制,也只有数据库层提供的锁机制,才能真正保证数据访问的排他性,否则,即使在本系统中实现了加锁机制,也无法保证外部系统不会修改数据,全程用排他锁锁定正是一种悲观锁的实现。一般实现乐观锁的方式就是记录数据版本。

2026-05-05 22:11:08 368

原创 联合索引的最左匹配原则的成因

联合索引就是由多列组成的索引。联合索引的最左匹配原则:假设我们有两列 a和b,我们对 a和b设置一个联合索引(a,b),我们在 where语句中调用 where a等于多少 and b等于多少的时候它就会走这个联合索引,如果我们调 where a等于多少的时候它也会走这个索引。但是当我们调 where b等于多少,而没有 a 的时候,它就不走这个联合索引。

2026-05-05 22:05:30 343

原创 MySql索引(一)

我们这里就要想一些让查询变得高效的数据结构了,最简单的便是二叉查找树,复杂点的是它的变种平衡2叉树,红黑树以及 B树,还有 B+树,我们的 mysql 数据库索引最终主要是通过 B+ 树 来实现的。所以我们的数据库,得引入一种更高效的机制,这便是索引。的查找用的是2分查找,比如说我们要搜6,那这里6要比5要大,因此我们就要从右孩子去查找,右子树的根节点是7,因为6比7小,因此,我们又会去查7的左孩子,这样子,我们就能定位到6了,因为是对半搜索,所以它的时间复杂度是O(logn),因此其查询效率是非常高的。

2026-05-04 14:10:20 422

原创 MySQL面试题-数据库架构

数据库是面试的重要考点之一,而MySQL是目前来说使用较多的关系型数据库。

2026-05-04 13:59:55 473

空空如也

空空如也

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

TA关注的人

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