自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 关于java的基本类型

java的基本类型与所占字节。double:8个字节;boolean:1个字节。float:2个字节;short:4个字节;byte:1个字节;long:8个字节;char:2个字节;

2023-10-24 20:39:30 78

原创 java锁

乐观锁是一种乐观思想,即认为读多写少,遇到并发写的可能性低,采取在写时先获取当前版本号,然后加锁的操作,如果失败,则要重复读-比较-写的操作;比较并交换,cas算法包含三个值,内存中的值,预估值和即将修改的新增,当预估值和北村中的值相等时才会更新为即将修改的新增。当持有锁的线程很短时间释放资源,那其他的线程无需进入阻塞状态,只需要自旋等待,等持有锁的线程释放锁后立即获取锁。2、作用于静态方法时,锁住的是class实例,永久带时共享的,因此静态方法锁相当于类的一个全局锁,会锁所有调用该方法的线程。

2023-08-29 10:37:27 77

原创 mybatis--基于java的持久层框架

mybatis--基于java的持久层框架

2023-08-28 14:09:12 79

原创 Redis 非关系型数据库

Redis(Remote Dictionary Server ),即远程字典服务;是一个开源的,使用ANSI C语音编写,可支持网络,基于内存,可持久化的日志型,key-value的非关系型数据库,并提供多语言API

2022-11-08 16:03:26 233 1

原创 项目上云:Oracle迁移至Mysql数据库

上云切换oracle库到mysql库

2022-11-07 14:46:47 253

原创 编程最讨厌的事情

编程最讨厌的两件事儿

2022-10-24 10:24:59 93

原创 MYSQL 数据库

mysql数据库

2022-10-17 13:44:35 1584

原创 事务--存在于关系数据库中指访问或更新数据库的程序执行单元

为解决共享锁和写锁之间的互斥,采用另一种MVVC,即在读取数据时采用快照的方式,这样不会与写锁产生互斥,事务都有自己的transaction_id,事务启动时先获取行数据的rowid,在提交时会判断rowid是否一致再判断是否提交事务。存在事务则新建事务,若原事务回滚,则nested事务一起回滚,但nested事务异常,原事务不回滚。若当前存在事务,则加入到事务中,若当前不存在事务,则以非事务方式运行;若当前存在事务,则加入到事务中,若当前不存在事务,则新建事务;不使用事务,存在事务则抛出异常;

2022-09-27 18:52:25 254

原创 索引(数据库术语)

聚集索引的索引建在叶子节点,即叶子节点直接存储数据内存地址,可以提供更快的访问速度。但非聚簇索引叶子节点只存储数据ID,所以当非聚簇索引查询到目标数据ID后,需要回表查询。聚簇索引一般为主键索引。对于生成的索引树是,会先按照A进行排序,当A相同时,再按照B进行排序,所以,当A和B联合查询时可以使用索引,而当B单独查询时,索引是失效的。当建立联合索引时(例如建立索引A,B,其实是建立了索引A 和索引A,B,所以无需单独建立索引A)非主键索引的叶子节点存储的是主键值,也称为二级索引,需要再次回表查询;

2022-09-25 16:26:31 317

原创 数据结构--树

树:用来模拟具有树状结构的数据集合。有节点组成。特点:每个节点子节点有限或无子节点 无父节点的节点成为根节点 每一个子节点只有一个父节点 树种左子节点<父节点<右子节点 树中没有环路优点树具有有序数组和链表的优点; 查询速度与有序数组相同(节点大小左小右大);增删与链表处理速度相同(节点存在前后指针)定义树import org.apache.log4j.Logger;public class Tree{private static Logger logge

2022-01-10 14:44:49 226

原创 数据结构--双向链表

双向链表又叫双链表,与单链表不同的是,每个元素有两个指针,指向前一个元素和后一个元素。所以,从双链表的任意节点,可以很方便的访问它的前驱节点和后驱节点双链表定义

2022-01-05 14:03:05 58

原创 数据结构--单向链表

链表是区分于数组的一种地址不连续,没有顺序的数据接口,链表中的节点包含数据元素值和指针,指针指向链表的下一个节点。使用链表无需像数组一样,需预先定义数据大小,也无需同集合需要扩容。但链表的缺点也很明显,链表读取数据需从头依次获取。不支持随机读取。定义单向链表节点定义单向链表类,其中有链表使用方法如何获取链表中间节点 如何判断链表有环以及环的长度import java.util.HashMap;import java.util.Map;import org.apache.log

2021-12-24 19:55:07 556

原创 集合--Map

Map 结构为<key,Value>键值对形式,哈希表+链表+红黑树组成区别于List,Set集合,Map不继承Collection接口Map集合特性无序 不可重复 非线程安全Map实现类1)HashMap 无序,非线程安全,可为空2)LinkedHashMap 集合内元素按插入顺序输出,非线程安全,可为空3)TreeMap 集合内元素自然排序输出,非线程安全,不可为空(null没有equals和hashcode方法)4)ConcurrentHashMap 无序

2021-12-21 09:31:10 401

原创 集合--Set

Set集合,继承自java.util.Collection接口,是java.util下的无序集合,允许null值set集合特性无序 不可重复 非线程安全set实现类1)HashSet : 底层哈希表,hashmap机制,不可重复,迭代无序输出2)LinkedHashSet: 底层链表+哈希表,hashmap机制,不可重复,迭代按插入的顺序输出3)TreeSet: 底层二叉树,hashmap机制,有序不可重复,迭代按hashcode顺序输出...

2021-12-03 10:31:39 1076

原创 集合--list

list集合,继承java.util.collection接口,是java.util包下的有序集合list集合特性有序:list集合基础是数组,集合元素下标有序 非线程安全 元素可重复list集合实现类1)ArrayList: 底层数组,查询快,增删慢2)LinkedList: 底层双向链表,查询慢,增删快3)Vector:底层...

2021-11-19 14:16:31 1482

原创 最简单的复合数据类型--数组

数组,一种最简单的复合数据类型声明数组:int arr[] ; int[] arr;数组声明之后并未开辟内存,而是,new一个指定长度数组之后在堆中开辟一个连续内存数组的特性:一致性:数组中元素类型相同 有序性:数组下标从0到length-1 不可变性:数组长度一旦定义,不可改变 数组元素可以是任何类型数组有序性并不是指数组中元素按顺序依次排序,而是,数组元素下标的有序数组没有删除元素的方法,若想删除数组中的元素,需定义新的数组存储其他元素数组输出元素只能按数组下标输出,若想

2021-11-18 16:43:11 383

原创 归并排序(二路归并)

归并排序,采用分治法,将目标数组划分为有序数组,将划分后有序数组合并为有序数组的过程。1)分:我们可以认为,数组长度为1的数组是有序数组。所以归并排序中分即为将目标数组划分为数组长度为1的最小单位有序数组2)合:两两合并划分的数组,定义目标长度为两划分数组长度和的临时数组,比较两数组元素值,将较小者依次放入临时数组中3)再以元素为2的n次方递增顺序重复步骤一、二,直至,划分的临时数组长度为目标数组的一半再合并即为目标数组,归并排序完成例:目标数组为:{8,6,13,1,12,0,7,0,

2021-11-17 16:16:55 670

原创 希尔排序(缩小增量排序)

希尔排序,是把数组下标按增量分组,将缩小增量数据进行插入排序。增量值为按数组长度值一分为二的规律获取将数组从下标0位开始到增量值个大小值开始进行插入排序。下次循环为下标1开始到增量值大小插入排序.......直至循环到增加增量值后新数组尾为原数组尾结束再次获取新的增量值,重复以上步骤,至不可以再次一分为二,希尔排序完成...

2021-11-05 18:25:36 111

原创 快速排序算法

快速排序算法,是一种对冒泡排序的改进。快速排序是通过多次比较交换最终获得有序数组的算法过程。快速排序思想:1)首先要找到目标值,及以哪个值为基准来比较交换,一般均以数组第一个值为目标值。2)从后往前依次与目标值进行比较,直至找到第一个比目标值小的值进行交换3)从前往后依次与目标值进行比较,直至找到第一个比目标值大的值进行交换4)经过第2,3步比较交换后,第2步目标值的下标到数组结尾的值均比目标值大;第3步目标值下标到数组头部的值均比目标值小5)假设将第2,3步交换后的下标值做为"

2021-11-04 15:58:34 83

原创 插入排序(直接插入排序)

插入排序默认数组的第0位开始到要插入值的前一位为有序数组,进而将第1位到未位值依次插入有序数组的过程。将要插入的值与插入值前面的有序数组进行比较后放入到合适的位置,直至最后一位插入完毕后,生成新的有序数组。示例如下:...

2021-11-03 15:33:11 165

原创 冒泡排序(气泡排序)

冒泡排序算法用作将无序数组经过比较后变成有序数组的过程。比较为两个值进行大小比较,排序为将比较后较大值放到后一位。冒泡排序就是比较相邻两个值大小,如果前面值大于后面值,则进行数据交互。第一个值和第二个值比较,第二个值和第三个值比较,第三个值和第四个值比较...N和N+1值比较经过一轮比较交换之后,最大的值将被交换到数组的最后一个位置,经过数据长度次后,冒泡排序完成。示例如下:...

2021-11-03 14:08:59 531

原创 二分查找(折半查找)

二分查找:又叫折半查找为有序数列查找减少时间复杂度。顾名思义,二分查找为有序数列从中间位置判断与目标值大小,进而决定向右向左折半查找目标值位置。示例如下:

2021-11-02 16:45:16 61

原创 编程第一法则

编程第一法则:如果你的代码以某种莫名的方式运行起来了,就不要碰它了。

2021-10-24 20:16:05 2437

空空如也

空空如也

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

TA关注的人

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