- 博客(19)
- 收藏
- 关注
原创 外观模式(门面模式)
外观模式,又称门面模式。提供一个统一的接口,用来访问子系统中的一群接口。其主要特征是使定义了一个高层接口,让子系统更加容易使用。
2025-03-21 22:30:39
207
原创 内存可见性问题
在重复进行多次相同的读取操作时,编译器会对此过程进行优化,不再从内存进行读取,而是从寄存器进行读取,此时另一个线程修变量,寄存器中的值不变,产生内存可见性问题。volatile关键字在词义上是“不稳定的,易变的”,使用volatile关键字修饰后,变量固定从内存中读取,避免因为编译器优化产生内存可见性问题。但使用volatile关键字后会降低程序运行效率。
2025-02-24 11:42:26
182
原创 Java多线程-死锁
第一次加锁能够成功,但第二次加锁时锁已经被占用,只能进行阻塞等待,而第一次加锁又没有走完因此无法释放,导致第二次加锁会一直阻塞等待。sleep()函数是为了确保每个线程已经执行到获取第二把锁的阶段,如果不加,可能会出现某个线程一次性获取到两把锁,顺利执行的情况,不能达成死锁。把嵌套的锁改成并列的锁,使得不会出现一个线程持有一个锁并等待另一个线程持有的锁的情况。一个线程拿到锁后,另一个线程想要再尝试获取锁,必然要阻塞等待,而不是把锁抢过来。两个线程两把锁,每个线程获取到一把锁后,尝试获取对方的锁。
2025-02-22 23:33:15
311
原创 Java数据结构-交换排序
1. 时间复杂度:O(N^2)2. 空间复杂度:O(1)3. 稳定性:稳定1. 时间复杂度:O(N*logN)2. 空间复杂度:O(logN)3. 稳定性:不稳定。
2025-02-05 10:43:03
334
原创 Java数据结构-选择排序
1. 直接选择排序效率不是很好。实际中很少使用2. 时间复杂度:O(N^2)3. 空间复杂度:O(1)4. 稳定性:不稳定1. 时间复杂度:O(N*logN)2. 空间复杂度:O(1)3. 稳定性:不稳定。
2025-01-31 01:17:44
154
原创 Java数据结构-插入排序
1. 元素集合越接近有序,直接插入排序算法的时间效率越高2. 时间复杂度:O(N^2)3. 空间复杂度:O(1)4. 稳定性:稳定1. 希尔排序是对直接插入排序的优化。2. 当gap > 1时都是预排序,目的是让数组更接近于有序。当gap == 1时,数组已经接近有序的了,这样就会很快。这样整体而言,可以达到优化的效果。3. 希尔排序的时间复杂度不固定,一般在O(N^1.3) ~ O(N^1.6)之间。
2025-01-29 14:09:10
134
原创 MySQL数据库-基础
购买purchase(购买订单号order_id,客户号customer_id,商品号goods_id,购买数量nums)客户customer(客户号customer_id,姓名name,住址address,邮箱email,性别sex,身份证。注意:MySQL中的utf8是utf8的阉割版本,缺少emoji。2.3 当名为test的数据库不存在时,创建名为test的使用utf8mb4字符集的数据库。2.2 当名为test的数据库不存在时,创建名为test的数据库。2.1创建名为test的数据库。
2024-11-13 12:51:09
248
原创 MySQL数据库-存储路径更改
将datadir=C:/ProgramData/MySQL/MySQL Server 8.0\Data注释掉,添加存储位置。4.重启MySQL(使用管理员权限)2.将原数据库内容复制到指定位置。用管理员身份打开my.ini。
2024-11-12 12:49:25
1742
原创 Java数据结构-ArrayList和顺序表
1. ArrayList是以泛型方式实现的,使用时必须要先实例化2. ArrayList实现了RandomAccess接口,表明ArrayList支持随机访问3.ArrayList实现了Cloneable接口,表明ArrayList是可以clone的4.ArrayList实现了Cloneable接口,表明ArrayList是可以clone的5.和Vector不同,ArrayList不是线程安全的,在单线程下可以使用,在多线程中可以选择Vector或者CopyOnWriteArrayList。
2024-09-19 01:07:28
1166
原创 Java数据结构-准备知识-时间复杂度与空间复杂度
衡量算法的效率使用时间效率和空间效率用来衡量,时间效率被称为时间复杂度,空间效率被称为空间复杂度,例如:F(N) = 10 时间复杂度为O(1)例如:F(N) = 2N^3 +5 时间复杂度为O(N^3)方法:1. 当运行次数函数不为常数时,只保留最高阶,且不包含与最高阶相乘的常数。答案:O(N),递归调用了N次,开辟了N个栈帧,每个栈帧使用了常数个空间。答案:O(N),动态开辟了N个空间 (i <= n)答案:O(1),使用了常数个变量。答案:O(logN)
2024-09-06 17:52:14
698
原创 JavaSE-异常
1.程序先执行try中的代码2.如果try中的代码出现异常,就会结束try中的代码,查看和catch中类型是否匹配3.如果找到匹配的异常类型,执行catch中代码4.如果没有找到匹配的异常类型,就会将异常向上传递到上层调用者5.无论有没有找到匹配的异常类型,finally中代码必然被执行6.如果上层调用者也没有处理了的异常,将会继续向上传递7.一直到main方法也没有合适的代码异常,就会交给JVM处理,程序终止运行自定义的异常类要继承Exception或RunTimeException。
2024-09-02 22:56:32
904
原创 Java SE-String类
2.4 int compareToIgnoreCase(String str) 方法:与compareTo方式相同,但是忽略大小写比较。由于String中字符实际保存在value数组中,而value数组又是由private所修饰的,无法被访问,对于字符数据类型,==比较变量中的值;对于应用数据类型,==比较引用中的地址。与equals()不同的是,compareTo()的返回值为int型。注意:由于字符串是不可变对象,此时的替换是产生了一个新的字符串。,所有修改字符串的方法实际上都是创建新的字符串。
2024-08-31 11:44:41
1296
原创 Linux-RHCSA-day1 (配置网络,登录远程系统常规方法)
nmcli connection modify uuid id号码 ipv4.method manual ipv4.addresses 172.25.250.100/24 ipv4.dns 172.25.250.254 ipv4.gateway 172.25.250.254。nmcli connection modify uuid id号码 connection.autoconnect yes /开机自动激活网卡。设置网卡的状态(修改成手动)、ip地址、子网掩码、dns、网关。
2024-08-13 16:58:06
409
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人