上一页 1 2 3 4 5 6 7 8 9 ··· 15 下一页
摘要: 一、多线程概述 1.1 进程和线程概述 进程:操作系统中的应用程序,一个进程就是一个应用程序。进程A和进程B的内存独立不共享资源。 线程:CPU调度的最小单元,进程的一个执行流/指定单元,一个进程可以有多个线程。 PS:Java程序启动的时候,JVM就是一个进程,JVM会执行main方法,main方 阅读全文
posted @ 2023-01-05 21:51 夏尔_717 阅读(358) 评论(0) 推荐(0)
摘要: 一、关键字汇总 访问控制:private、protected、public、default 修饰符:class、abstract、extends、implements、interface、final、strictfp、static、synchronized、transient、volatile、na 阅读全文
posted @ 2022-12-20 14:11 夏尔_717 阅读(507) 评论(0) 推荐(0)
摘要: 一、概述 在并发编程领域,有两大核心问题:一个是互斥,即同一时刻只允许一个线程访问共享资源;另一个是同步,即线程之间如何通信、协作。主要原因是,对于多线程实现实现并发,一直以来,多线程都存在2个问题: 线程之间内存共享,需要通过加锁进行控制,但是加锁会导致性能下降,同时复杂的加锁机制也会增加编程编码 阅读全文
posted @ 2022-12-16 17:39 夏尔_717 阅读(502) 评论(0) 推荐(0)
摘要: 一、概述 对于Java中的对象,我们只能使用基本运算符==、!=来判断一下地址是否相等,不能使用>、<来比较大小。但是在实际的开发中,我们需要对对象进行排序,也就是比较大小,那么应该如何实现呢? 确定两个对象之间的大小关系及排列顺序称为比较,能实现这个比较功能的类或方法称之为比较器,在java中有两 阅读全文
posted @ 2022-12-15 18:57 夏尔_717 阅读(1029) 评论(0) 推荐(0)
摘要: 一、概述 条件锁就是指在获取锁之后发现当前业务场景自己无法处理,而需要等待某个条件的出现才可以继续处理时使用的一种锁。 比如,在阻塞队列中,当队列中没有元素的时候是无法弹出一个元素的,这时候就需要阻塞在条件notEmpty上,等待其它线程往里面放入一个元素后,唤醒这个条件notEmpty,当前线程才 阅读全文
posted @ 2022-12-15 18:13 夏尔_717 阅读(346) 评论(0) 推荐(0)
摘要: 题目 题目链接:https://leetcode.cn/problems/plus-one/ 给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。 最高位数字存放在数组的首位,数组中每个元素只存储单个数字。 你可以假设除了整数0之外,这个整数不会以零开头。 示例 1: 输入:digit 阅读全文
posted @ 2022-12-07 17:53 夏尔_717 阅读(251) 评论(0) 推荐(0)
摘要: 一、JVM层 Unsafe.park和Unsafe.unpark是sun.misc.Unsafe类的native方法, public native void unpark(Object var1); public native void park(boolean var1, long var2); 阅读全文
posted @ 2022-12-05 10:29 夏尔_717 阅读(1096) 评论(0) 推荐(0)
摘要: 一、概述 ReentrantLock是Java并发包中提供的一个可重入的互斥锁。ReentrantLock和synchronized在基本用法,行为语义上都是类似的,同样都具有可重入性。只不过相比原生的Synchronized,ReentrantLock增加了一些高级的扩展功能,比如它可以实现公平锁 阅读全文
posted @ 2022-12-05 10:21 夏尔_717 阅读(319) 评论(0) 推荐(0)
摘要: 生成列(generated column)的值是根据列定义中包含的表达式计算得出的。 生成列包含下面两种类型: virtual(虚拟):当从表中读取记录时,将动态计算该列。 stored(存储):当向表中写入新记录时,将计算该列并将其存储为常规列。 virtual生成列比stored生成列更有用,因 阅读全文
posted @ 2022-11-27 13:09 夏尔_717 阅读(685) 评论(0) 推荐(0)
摘要: 一、概述 MySQL 8支持公用表表达式,包括非递归和递归两种。 公用表表达式允许使用命名的临时结果集,这是通过允许在SELECT语句和某些其他语句前面使用WITH子句来实现的。 不能在同一查询中两次引用派生表(子查询),因为那样的话,查询会根据派生表的引用次数计算两次或多次,这会引发严重的性能问题 阅读全文
posted @ 2022-11-24 14:02 夏尔_717 阅读(455) 评论(0) 推荐(0)
摘要: 1. 自增变量持久化 在MySQL8.0之前的版本中,自增列计数器置于内存中,并不会持久化到磁盘,当数据库重启后,会根据select max(id)+1 from xxx重新计算当前自增列值,这种现象在某些情况下会导致业务主键冲突或者其他难以发现的问题。自增主键重启重置的问题很早就被发现Innodb 阅读全文
posted @ 2022-11-18 15:49 夏尔_717 阅读(565) 评论(0) 推荐(0)
摘要: 题目 链接:https://leetcode-cn.com/problems/add-two-numbers/ 给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。 如果,我们将这两个数相加起来,则会返回一个新的链表来 阅读全文
posted @ 2022-11-15 11:25 夏尔_717 阅读(262) 评论(0) 推荐(0)
摘要: 要在MySQL中存储数据,就必须定义数据库和表结构(schema),这是一个主要的限制。为了应对这一点,MySQL 5.7开始支持了JavaScript对象表示(JavaScript Object Notation,JSON)数据类型。之前,这类数据不是单独的数据类型,会被存储为字符串。新的json 阅读全文
posted @ 2022-11-05 18:25 夏尔_717 阅读(1348) 评论(0) 推荐(2)
摘要: 一、概述 窗口函数(window functions)是一种对结果集进行计算,并将计算结果合并到结果集上返回多行的一类函数。MySQL8开始支持窗口函数,包括rank()、lag()和ntile()等非聚合窗口函数。以及部分聚合函数现在可以用作窗口函数,例如:sum()和avg()。 使用窗口函数需 阅读全文
posted @ 2022-11-01 18:07 夏尔_717 阅读(917) 评论(0) 推荐(1)
摘要: 一、索引简介 1.1 什么是索引? 索引是数据库中为加速数据检索而设计的特殊数据结构,核心作用是通过预设的逻辑结构(如B+树、Hash表),减少查询时扫描的数据量,类比现实世界中“书籍目录”——无需逐页翻阅,通过目录即可定位目标内容。 常见的索引结构有3类: B+树索引:MySQL默认索引结构,支持 阅读全文
posted @ 2022-10-31 16:36 夏尔_717 阅读(1626) 评论(0) 推荐(0)
摘要: 一、简介 什么是接口幂等性?首先看看幂等性的概念:幂等性原本是数学上的概念,用在接口上就可以理解为:同一个接口,多次发出同一个请求,必须保证操作只执行一次。调用接口发生异常并且重复尝试时,总是会造成系统所无法承受的损失,所以必须阻止这种现象的发生。 当出现消费者对某条消息重复消费的情况时,重复消费的 阅读全文
posted @ 2022-10-22 11:47 夏尔_717 阅读(378) 评论(0) 推荐(0)
摘要: 在程序执行时候还有一个瓶颈,串行执行,可以通过使用不同线程类快速提升应用的速度。 要启用Spring的异步功能,必须要使用@EnableAsync注解。这样将会透明地使用java.util.concurrent.Executor来执行所有带有@Async注解的方法。 @Async所修饰的函数不要定义 阅读全文
posted @ 2022-10-11 18:04 夏尔_717 阅读(744) 评论(0) 推荐(0)
摘要: 一、简述 Vector的操作单线安全,加入了同步代码块,多线程安全(但不绝对),可以看成线程安全版本的ArrayList(其实也不绝对,在使用还是会加锁操作)。 相比于ArrayList其效率低,因为加入了synchronized操作。 二、源码分析 2.1 成员变量 在Vector的源码中,其成员 阅读全文
posted @ 2022-10-08 16:40 夏尔_717 阅读(313) 评论(0) 推荐(0)
摘要: 一、概述 MyBatis是常见的Java数据库访问层框架。在MyBatis中,缓存可以提高查询性能,因为它们可以避免频繁地向数据库发送查询。MyBatis提供了两种缓存机制:一级缓存和二级缓存。 一级缓存是在MyBatis的SqlSession级别上运作的。在同一个SqlSession中执行的查询会 阅读全文
posted @ 2022-09-22 18:18 夏尔_717 阅读(419) 评论(0) 推荐(0)
摘要: 一、基本概念 1.1 定义 跳表(SkipList):增加了向前指针的链表叫做指针。跳表全称叫做跳跃表,简称跳表。跳表是一个随机化的数据结构,实质是一种可以进行二分查找的有序链表。 跳表在原有的有序链表上增加了多级索引,通过索引来实现快速查询。跳表不仅能提高搜索性能,同时也可以提高插入和删除操作的性 阅读全文
posted @ 2022-09-21 13:54 夏尔_717 阅读(2449) 评论(0) 推荐(1)
上一页 1 2 3 4 5 6 7 8 9 ··· 15 下一页