- 博客(14)
- 收藏
- 关注
原创 设计模式(含单例、工厂等)
进行设计的代码最佳实践方法。这些模式解决了在软件开发中常见的设计问题。创建型模式专注于对象的创建,旨在通过某种机制使对象的创建与使用解耦,从而提高代码的灵活性和可扩展性。和职责分配,提供灵活的通信方式和职责管理机制。结构型模式关注类和对象的组合,解决它们之间的。面向对象的设计模式是一种围绕。,以实现灵活性和高效的扩展。
2024-11-24 14:26:48
778
原创 Vmware网络的桥接、Nat、仅主机模式的区别(附ubuntu如何设置固定ip)
从 Ubuntu 18.04 开始,默认使用Netplan来管理网络。配置文件一般位于目录下,通常是或类似文件。修改内容如下(假设网卡名称为enp0s3,需要根据实际情况替换):network:version: 2ethernets:enp0s3:dhcp4: noaddresses:#192.168.1.100/24 相当于 192.168.1.100 255.255.255.0(mask)- 192.168.1.100/24 # 静态 IP 地址和子网掩码。
2024-11-21 09:32:02
922
1
原创 数据库事务并发执行导致的四种情况(脏读、不可重复读、幻读 和 丢失更新)
一个事务读取了另一个未提交事务修改的数据。如果该事务回滚,那么读取的数据可能是无效的。一个事务多次查询时,由于其他事务插入或删除了数据,导致查询的结果集发生了变化。通过选择适合的事务隔离级别和锁机制,可以有效避免并发问题并确保数据一致性。同一事务内的两次相同查询读取了不同的数据,因为其他事务修改了数据。两个事务同时读取同一数据并更新,其中一个事务的更新被覆盖或丢失。通过加锁机制(如排他锁)或版本控制(如乐观锁)避免。隔离级别或锁机制(如范围锁)避免。或更高的事务隔离级别避免。或更高的事务隔离级别避免。
2024-11-19 10:04:51
672
原创 乐观锁与悲观锁(附:java示例以及数据库语句)
乐观锁和悲观锁是解决并发控制问题的两种常见机制,用于保证数据一致性,避免因并发操作导致数据冲突。通常通过或实现。读多写少的场景,例如商品库存扣减。
2024-11-18 19:15:36
536
原创 Redis 内存溢出(简单的解决方式)
指的是 Redis 使用的内存超出了可用范围,导致 Redis 进程无法正常工作,可能会出现数据丢失或服务中断。Redis 是内存数据库,所有数据都存储在内存中,如果数据量太大且超出服务器可用内存,就会导致内存溢出。Redis 默认没有限制使用的内存大小,可能会导致它耗尽系统内存。不正确的脚本或操作,导致 Redis 不断分配内存但无法释放。某些 Key 的值过大或者使用频率过高,占用了过多内存。数据持续积累,没有被定期清理。当 Redis 达到。
2024-11-16 13:56:56
1328
原创 python的poetry包管理器常用命令大全(使用poetry创建项目完整示例)
Poetry提供了非常简洁和强大的命令来管理 Python 项目的依赖、虚拟环境、版本控制、打包和发布。它的目标是让项目的管理变得更简单、更一致,适用于各种规模的 Python 项目。
2024-11-15 15:33:46
1278
2
原创 在 Java 中,实现数组排序的几种方式(冒泡、选择、插入算法与过程详解)
是最快的排序方式,适用于大多数情况,尤其是需要处理基本类型数组时。冒泡排序选择排序和插入排序都属于简单排序算法,适合用作学习和教学,但它们的时间复杂度较高(通常为 O(n²)),在处理大数据时不够高效。如果你正在寻找高效的排序算法(尤其是大数据集),建议使用 Java 内置的排序方法。
2024-11-15 11:05:07
806
原创 ArrayList和LinkedList有哪些区别
第一个区别:首先查看一下ArrayList和LinkedList部分源码: ArrayList: LinkedList:可以看出LinkedList多实现了一个Deque接口,那么LinkedList多了一个双端队列的特性,可以从前面插入数据也可以从末尾插入数据第二个区别:ArrayList:LinkedList:可以看到ArrayList底层是使用数组进行实现的,LinkedLis底层是通过链表的方式进行实现...
2021-08-22 09:35:18
375
原创 简单了解String,StringBuffer,StringBuilder的区别
对于这段程序来说并没有真正修改aaa这个字符串常量,而是创建了一个新的字符串常量bbb而StringBuffer和StringBuilder是可以改变的,修改时他不会创建一个新的对象。那么StringBuilder和StringBuffer什么区别呢? 我们从他的源码进行分析,拿append方法为例:StringBuider:StringBuffer:可以看出StringBuffer比StringBuilder多了...
2021-08-22 08:57:32
194
原创 new一个String对象到底进行了那些步骤
new一个String对象到底进行了那些步骤? new String("abc")可以理解为创建了两个对象,第一个对象是字符串常量"abc"对象,计算机将它放在了字符串常量池中,第二个对象是String对象s1,它放在堆中。 对于s2,这种方式会首先从字符串常量池中检查是否有"abc"这个字符串 对于s3,使用intern方法,首先会从字符串常量池中检查是否存在"abc",如果存在则返回字符串引用,如果不存在,则把"abc"添加到字符串常量池中,并返...
2021-08-21 17:09:03
968
原创 JAVA如何不改变字符串变量地址来修改变量内容
问题描述:问题解决:使用反射的方式代码解释:getClass()方法作用:获取一个(类)Class,进而通过返回的Class对象获取s的相关信息,比如:获取s的方法,属性有哪些等等信息。 getDeclaredField():获取S的value字段,至于为什么是Value,查看一下String的源码,按住ctrl鼠标点击String,可以看到value才是我们需要改变的内容,而在String中v...
2021-08-21 16:45:22
495
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅