- 博客(44)
- 收藏
- 关注
原创 【测试开发】论坛系统自动化测试
自动化测试是软件开发过程中,确保系统质量及其稳定性的重要一环。本文将基于一个论坛系统项目,详细介绍如何对其进行自动化测试,包括测试用例编写、自动化脚本开发以及测试报告生成。
2025-03-21 14:55:33
765
原创 【测试开发】博客系统自动化测试
在软件开发过程中,自动化测试是确保系统质量和稳定性的重要环节。本文将基于一个博客系统项目,详细介绍如何对其进行自动化测试,包括测试用例编写、自动化脚本开发以及测试报告生成。
2025-03-16 21:09:42
666
原创 【多线程】synchronized
本文主要内容为:Synchronized的基本特点、加锁工作过程、锁的升级机制(偏向锁、轻量级锁、重量级锁)、锁升级的流程以及锁的优化策略,希望对大家有所帮助!
2025-03-11 15:40:34
855
原创 【多线程】锁策略
本文主要讲解锁策略、常见的锁策略(乐观锁和悲观锁、轻量级锁and重量级锁、自旋锁和挂起等待锁、 公平锁和非公平锁 、可重入锁和不可重入锁 、读写锁 ) 以及CAS(CAS的ABA问题、如何解决ABA问题)并提供了一些示例代码以及Synchronized总结
2025-03-11 08:00:00
1927
原创 【多线程】线程池
通过本文的介绍,我们从简单的线程池实现逐步扩展到功能完善的版本,涵盖了线程池的核心组件和实现原理。任务队列管理:通过任务队列缓存提交的任务,支持线程安全的入队和出队操作。动态线程管理:根据任务数量动态调整线程池的大小,支持初始线程数、核心线程数和最大线程数的配置。任务拒绝策略:当任务过多时,根据拒绝策略处理超出的任务,避免线程池过载。线程工厂:支持自定义线程工厂,用于创建线程并设置线程属性。线程空闲时间:支持设置线程空闲时间,动态回收空闲线程,优化资源使用。
2025-03-03 15:30:00
658
原创 【多线程】阻塞队列
阻塞队列是一种特殊的队列,它在遵循“先进先出”(FIFO)原则的基础上,增加了阻塞机制。当队列已满时,尝试入队的线程会被阻塞;当队列为空时,尝试出队的线程也会被阻塞这种机制使得阻塞队列成为一个线程安全的数据结构,非常适合用于多线程环境。线程安全:通过内置的锁机制,确保在多线程环境下对队列的操作是安全的。阻塞等待:当队列已满或为空时,相关操作会被阻塞,直到条件满足。解耦合:生产者和消费者之间通过阻塞队列解耦,降低了线程之间的直接依赖。阻塞队列是一种高效的线程间通信机制,广泛应用于生产者-消费者模型中。
2025-02-28 16:00:00
594
原创 单例模式详解:面试必备知识点
单例模式是一种设计模式,它确保一个类在内存中只有一个实例,并提供一个全局访问点。单例模式的核心思想是:当程序中多次使用同一个对象且作用相同时,为了避免频繁创建对象导致内存浪费,通过单例模式确保程序中仅创建一个对象,并让所有需要使用该对象的地方共享这个单例对象。单例模式是设计模式中最常用的一种,其主要目的是确保一个类只有一个实例,并提供一个全局访问点。常见的单例模式实现方式有懒汉式和饿汉式,它们各有优缺点。懒汉式实现了懒加载,但需要解决线程安全问题;饿汉式实现了早加载,线程安全且性能高,但可能会浪费内存。
2025-02-19 14:00:00
555
原创 【多线程】线程安全
本文详解了造成线程安全问题的原因、synchronized关键字的详细介绍,采用图文搭配、生活实例等方式(木兰替父出征、疯狂小杨哥的铁箱······)尽可能生动地讲述知识点,希望对大家有所帮助!
2024-05-27 16:24:57
884
13
原创 多线程·线程状态
本文主要讲解了1.等待一个线程 join。2.休眠当前线程。3.线程的所有状态。4.线程的状态转换。通过 把大象装进冰箱 来给大家讲解线程的状态,希望对大家有所帮助!
2024-05-11 16:22:53
861
23
原创 学习Thread类,这一篇就够了!
本文主要讲解线程创建的五种写法(面试题),java是如何进行多线程编程的,start和run方法的区别,jconsole工具的使用,Thread类及其常见方法以及线程中断问题
2024-05-05 23:40:50
1059
40
原创 javaEE--多线程学习-进程调度
小芳是个大美女,肤白貌美,大长腿,她希望她的男朋友是个高富帅,还要巨能舔,但是这样的优质男是真的不好找!为了满足自己的要求,于是她就交了三个男朋友:有钱的公子哥一米八的大帅比温柔的舔狗这个时候我们的海后小芳就要给他们进行时间安排,作为一个时间管理大师,怎么会让他们三个碰面呢?那不就火星撞地球了!于是她规定了星期一、二跟公子哥出去玩,星期三、四跟大帅比出去约会,星期五、六跟舔狗出去逛街,星期天休息一天。在宏观上看,她同时交了三个男朋友,但是在微观上,在不同时刻,她只能和一个男朋友在一起约会。
2024-04-26 20:06:07
988
43
原创 图解·Linux系统安装,手把手教你搞定操作系统!
这里博主使用了 VMware Workstation 16 Pro 版本,从头到尾用图文搭配的模式给大家演示如何进行 Linux系统 的安装!内容十分详尽,细节基本也到位了,可以说是保姆级教学了,希望对大家有所帮助!!
2024-04-02 15:49:08
1274
24
原创 解决:WARN:Tue Mar 26 23:36:57 CST 2024 WARN: Establishing SSL connection
小码在学习Java的JDBC编程中,碰到了一条非常长的异常警告,idea的框都装不下了!!
2024-03-27 11:01:32
1405
18
原创 全球首位AI程序员Devin的出场,程序员饭碗不保?
近期,全球首位AI程序员Devin的出场,不禁让我想到了一个有趣的问题:AI程序员会不会抢程序员的饭碗呢?先别着急下结论!虽然AI技术在编程领域越来越广泛,但它真的能完全替代我们程序员吗?其实对于AI的话题从上个世纪的九十年代就开始了,深蓝打败了国际象棋冠军,引起了一波关于AI话题的热度;到了2000年以后,搜索引擎崛起,AI又火了一波;201x年,阿尔法狗又推动了一波AI的热度;再到近期,抖音、网上购物等推荐算法,又点燃了AI话题;再到当下,chargtp的崛起......
2024-03-24 22:24:01
878
4
原创 详解mysql安装与配置,及Mac中常见的安装问题
存储数据用文件就可以了,为什么还要弄个数据库?文件的安全性问题文件不利于数据查询和管理文件不利于存储海量数据文件在程序中控制不方便磁盘内存为了解决上述问题,专家们设计出更加利于管理数据的软件——数据库,它能更有效的管理数据。数据库可以提供远程服务,即通过远程连接来使用数据库,因此也称为数据库服务器。
2024-03-24 22:01:01
2631
26
原创 [爪哇之旅] 栈与队列
本文将栈与队列的相关知识点基本都覆盖了,更有各种图解及应用帮助大家理解什么是栈和队列,如何去使用栈和队列,并有多个题型来帮助大家巩固所学,文末更是有相关的面试题,并附上了十分详细的图解题解,希望对大家有所帮助
2024-03-16 19:56:34
1147
40
原创 力扣链表oj面试题,保姆级图解
OJ链表看不懂?看了代码还不会?保姆级讲解,图文搭配,肯定让你懂!数据结构的逻辑性非常强,还涉及到了数学,单单看代码是很难理解的,这里从0开始给你讲解链表的oj面试题,每一题都有图文进行讲解,且题目全都出自力扣官网!
2024-01-20 01:12:44
1229
51
原创 力扣链表OJ面试题,那些你不懂的全新版本解法
数据结构的逻辑性是非常强的,所以单单看代码很难搞懂,这里博主对每一道题目都进行了非常细致的图文详解,每一道题目都是非常经典的面试OJ题,每一道题我都附上了对应的力扣链接,希望对大家有所帮助,谢谢!!
2023-12-16 09:31:24
3952
68
原创 ArrayList 与 顺序表 (附洗牌算法)!
在集合框架中,ArrayList是一个普通的类,实现了List接口,具体框架图如下:【说明】1. ArrayList是以泛型方式实现的,使用时必须要先实例化2. ArrayList实现了RandomAccess接口,表明ArrayList支持随机访问3. ArrayList实现了Cloneable接口,表明ArrayList是可以clone的4. ArrayList实现了Serializable接口,表明ArrayList是支持序列化的。
2023-12-03 17:45:24
1326
70
原创 Java数据结构 之 包装类&简单认识泛类
包装类是指Java中使用的一系列类,用于将基本数据类型装箱成对象。这些类有以下八种:1.Byte: 封装了byte基本数据类型的类2.Short: 封装了short基本数据类型的类3.Integer: 封装了int基本数据类型的类4.Long: 封装了long基本数据类型的类5.Float: 封装了float基本数据类型的类6.Double: 封装了double基本数据类型的类7.Character:封装了char基本数据类型的类8.
2023-12-03 16:23:00
1318
50
原创 JavaSE 知识点总结
/ 方法定义修饰符 返回值类型 方法名称([参数类型 形参 ...]){方法体代码;[return 返回值];类是用来描述对象的// 创建类field;// 字段(属性) 或者 成员变量method;// 行为 或者 成员方法类中包含字段/属性/成员变量:如果是普通的成员变量,需要通过对象的引用来访问,如果是静态的成员变量,需要类名来访问。如果是普通的成员方法,需要通过对象的引用来访问,如果是静态的成员方法,需要类名来访问。具体方式。
2023-11-25 21:41:19
3521
74
原创 如何处理Java异常?
【异常处理流程总结】1.程序先执行 try 中的代码2.如果 try 中的代码出现异常, 就会结束 try 中的代码, 看和 catch 中的异常类型是否匹配.3.如果找到匹配的异常类型, 就会执行 catch 中的代码4.如果没有找到匹配的异常类型, 就会将异常向上传递到上层调用者.5.无论是否找到匹配的异常类型, finally 中的代码都会被执行到(在该方法结束之前执行).6.如果上层调用者也没有处理的了异常, 就继续向上传递.
2023-11-25 17:42:21
1104
39
原创 JAVA内部类
在Java中,内部类是定义在其他类内部的类。它们的存在是为了提供更加灵活和功能强大的方式来组织和管理代码,从而使代码更加清晰和易于维护。当一个事物的内部,还有一个部分需要一个完整的结构进行描述,而这个内部的完整的结构又只为外部事物提供服务,那么这个内部的完整结构最好使用内部类。在 Java 中,可以将一个类定义在另一个类或者一个方法的内部,前者称为内部类,后者称为外部类。内部类也是封装的一种体现。// OutClass是外部类// InClass是内部类【注意事项】
2023-11-16 22:02:26
397
44
原创 关于 Git 你了解多少?
Git 是一个版本控制系统,由林纳斯·托瓦兹创建。它旨在管理项目代码的更改,以便团队成员可以协作开发和维护代码库。Git 可以让用户跟踪代码的更改、回滚错误的更改、合并代码等。Git 还具有分支和标签的功能,使得团队成员可以在独立开发的基础上集成代码。与其他版本控制系统不同的是,Git 不用依赖中央服务器来协作开发,这使得它更加灵活和分布式。
2023-11-16 21:05:16
1060
51
原创 Java 入门基础题
第2种方式,任何一个数字n,都可以写成 n = a*b的形式。假设i代表行,j代表列,当i==j 或者 i+j+1 == n,此时为星号。斐波那契数列定义为:1 1 2 3 5 8 13 21 我们可以看到,从第3项开始,都等于。在同一个类中定义多个方法:要求不仅可以求2个整数的最大值,还可以求3个小数的最大值?然后使用flag标记控制奇偶项,奇数项为正,偶数项为负,然后将所有的项相加即可。n1保存第一项的值,n2保存第2项的值,n3保存第3项的值。( 注:图片来自网络,如有侵权,请联系删除 )
2023-11-14 23:00:40
3418
58
原创 java雷区?要小心的子父类代码!
总结:我们应该尽量避免在构造函数内使用实例方法(除了final和private方法)。当在父类的构造方法中调用父类和子类同名的方法时,也会发生动态绑定。“用尽量简单的方式使对象进入可工作状态”,尽量不在构造器中调用方法(如果方法被子类重写,就会触发动态绑定,但是此时子类对象还没有构造完成),就可能会出现一些隐藏的、极难发现的问题,上文例子比较简单,若是大型代码,便难以找出问题所在了。
2023-11-14 11:57:59
165
9
原创 JavaSE 继承和多态
子类对象中成员是有两部分组成的,基类继承下来的以及子类新增加的部分。父子父子肯定是先有父再有子,所以在构造子类对象时候 ,先要调用基类的构造方法,将从基类继承下来的成员构造完整,然后再调用子类自己的构造方法,将子类自己新增加的成员初始化完整。上述图示中,Dog和Cat都继承了Animal类,其中:Animal类称为父类/基类或超类,Dog和Cat可以称为Animal的子类/派生类,继承之后,子类可以复用父类中成员,子类在实现时只需关心自己新增加的成员即可。直接访问是无法做到的,Java提供了。
2023-11-11 23:30:12
713
50
原创 java SE 类和对象(图文详解)
首先,我们都知道java是一门面向对象的语言(Object Oriented Program,简称OOP),在面向对象的世界里,一切都是对象。面向对象是一种思想,用于解决问题,且主要依靠对象间的交互完成一件事情。面向对象的思想设计到了程序,符合我们人类对事物的认知,对于大型程序的设计、扩展及维护都有帮助!JAVA是面向对象程序设计,关注的是对象,而对象其实就是现实生活中的实体,就如:洗碗机。但是我们的计算机并不认识洗碗机,这时候就需要开发人员告诉计算机什么是洗碗机。
2023-11-11 22:08:40
677
34
原创 Java SE 数据类型与变量
目录1. 字面常量2. 数据类型3. 变量3.1 变量概念3.2 语法格式 3.3 整型变量3.3.1 整型变量3.3.2 长整型变量3.3.3 短整型变量3.3.4 字节型变量 3.4 浮点型变量3.4.1 双精度浮点型3.4.2 单精度浮点型3.5 字符型变量3.6 布尔型变量3.7 类型转换 3.7.1 自动类型转换(隐式)3.7.2 强制类型转换(显式)3.8 类型提升4. 字符串类型
2023-10-29 00:46:31
454
35
原创 C语言 自定义类型
有了结构体类型,那如何定义变量,其实很简单。int x;int y;}p1;//声明类型的同时定义变量p1//定义结构体变量p2//初始化:定义变量的同时赋初值。struct Stu //类型声明//名字int age;//年龄//初始化int data;//结构体嵌套初始化//结构体嵌套初始化位段的声明和结构是类似的,有两个不同:1.位段的成员必须是int、unsigned int 或signed int。2.位段的成员名后边有一个冒号和一个数字。
2023-10-28 16:10:53
529
44
原创 C语言字符串函数 之 库函数模拟实现
由于我们只是对两个字符串进行比较,不改变其内容,所以我们首先可以加上const修饰,其次我们应该对他们进行assert判断,防止空指针的情况,接着便是通过while循环把两者相同的字符遍历过去,到他们字符不相同的地方,然后进行比较即可。这里dest 是 arr, src 是 arr+2,我们可以发现dest在src的前面,所以dest < src的,我们需要从前往后,如果从后往前,7换到5,6换到4,这个时候的5就不是原来的5了,已经给前面换成7了。而我们的停止条件,当*dest++ = *src++;
2023-10-22 15:07:10
195
31
原创 C语言进阶 之 字符函数和字符串函数
C语言中对字符和字符串的处理很是频繁,但是C语言本身是没有字符串类型的,字符串通常放在常量字符串中或者字符数组中。字符串常量适用于那些对它不做修改的字符串函数.strlen。
2023-10-21 11:45:11
183
27
原创 C语言 之 进阶指针
数组指针是指针?还是数组?答案是:指针。我们已经熟悉:整形指针: int * pint;能够指向整形数据的指针。浮点型指针: float * pf;能够指向浮点型数据的指针。那数组指针应该是:能够指向数组的指针。下面代码哪个是数组指针?//p1, p2分别是什么?//解释:p先和*结合,说明p是一个指针变量,然后指着指向的是一个大小为10个整型的数组。所以p是一个指针,指向一个数组,叫数组指针。//这里要注意:[]的优先级要高于*号的,所以必须加上()来保证p先和*结合。
2023-10-10 22:59:55
143
14
原创 详解c语言 函数(附练习!!)
如果库函数能干所有的事情,那还要程序员干什么?所有更加重要的是自定义函数。自定义函数和库函数一样,有函数名,返回值类型和函数参数。但是不一样的是这些都是我们自己来设计。这给程序员一个很大的发挥空间。statement;//语句项//ret_type 返回类型//fun_name 函数名//para1 函数参数写一个函数可以找出两个整数中的最大值。//get_max函数的设计(x):(y);
2023-09-17 18:26:02
213
25
原创 深度剖析数据在内存中的存储
char //字符数据类型short //短整型int //整型long //长整型long long //更长的整型float //单精度浮点数double //双精度浮点数1.使用这个类型开辟内存空间的大小(大小决定了使用范围)。2.如何看待内存空间的视角。什么是大端小端?大端(存储)模式,是指数据的低位保存在内存的高地址中,而数据的高位保存在内存的低地址中;小端(存储)模式,是指数据的低位。
2023-08-20 15:33:20
234
38
原创 小游戏三子棋
在do中,我们进行了游戏菜单(menu)的创建,并运用switch语句对玩家可能做出的三种选择情况进行反应,case1:进行游戏,case0:推出游戏,default:玩家选择了除0,1以外的数字。这里的0,1不是随意的制定的,在后面的while循环中,如果玩家选择了1,即可重复循环选择,如果玩家选择了0,那么就会退出循环,使程序结束。三子棋是3*3的棋盘,创建一个二维数组即可满足,我们看效果图,里面除了分隔符什么都没有,我们可以利用空格来代替。完成后,便可以在头文件中进行函数的声明,!
2023-07-31 15:46:51
198
18
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人