- 博客(36)
- 收藏
- 关注
原创 mybatisplus开发
MyBatis 是一款优秀的持久层框架,它通过 XML 或注解的方式将 Java 对象映射到数据库中的表。负责将 Java 方法调用和 SQL 语句绑定起来。你可以在 XML 文件中定义 SQL 语句,并通过 MyBatis 的配置文件将这些 SQL 语句映射到 Java 接口的方法上。也可以使用注解的方式直接在 Java 接口方法上编写 SQL 语句。负责将数据库查询结果映射到 Java 对象。
2025-03-06 19:37:59
1007
原创 Java-DFS(深度优先搜索)
原理深度优先搜索的基本思路是从一个节点开始,依次访问它的每一个邻居节点,直到达到一个没有未被访问的邻居的节点为止。这个过程可以使用递归或者栈来实现。其特点是尽可能深入每一个分支,然后再回溯。DFS算法常用于解决以下类型的问题:在实际使用中,图的表示通常有以下几种方式:在下面的示例中,我们使用邻接表来表示图,因为它存储效率更高,适合大多数情况。以下是通过递归方式实现深度优先搜索的详细代码,并附带注释以帮助理解每个部分的功能 栈的实现方式不直接依赖于系统的调用栈,这对于深度大、可能导致栈溢出的情况特别有用
2025-02-16 20:17:04
760
原创 搭建前端平台
npm(Node Package Manager)是Node.js的包管理工具,用于管理JavaScript依赖包。它允许开发人员从npm注册中心安装、升级和删除库和工具。都是项目的依赖项,这意味着项目使用了Vue.js框架以及其路由管理库。文件列出项目所需的依赖项和开发依赖项。在你提供的代码片段中,
2024-12-20 18:35:28
547
原创 数据库-mysql
在这个查询中,将返回年龄大于 18 岁且成绩为 'A' 的学生,或者年龄小于 15 岁且成绩为 'B' 的学生。你可以指定要更新的表、要更新的列以及新的值,并使用。在这个查询中,将返回年龄小于 18 岁的学生,或者成绩为 'A' 的学生记录。在这个查询中,将返回年龄大于 18 岁并且成绩为 'A' 的所有学生记录。这里,M 是偏移量,N 是要返回的记录数。运算符用于连接多个条件,只有当所有条件都为真时,整个表达式才为真。运算符用于连接多个条件,只要其中一个条件为真,整个表达式就为真。
2024-10-18 21:12:58
805
原创 数据库——创立表和库
数据库测试修改删除DQL(Data Query Language)数据查询语言查询是使用频率最高的一个操作,可以从一个表中查询数据,也可以从多个表中查询数据。
2024-10-11 17:15:43
1172
原创 java并发线程02
生成者消费者模型是一个经典的并发编程问题。在这个模型中,生成者(生产者)生成数据(在这个例子中是食堂的饭菜),而消费者(学生)消费这些数据。使用 List 集合替换队列,可以在一定程度上简化实现。这里给出一个简单的示例代码,使用 Java 实现学校食堂和学生消费者的模型。
2024-09-27 20:30:19
459
原创 Java并发线程
ava的并发编程是指在Java中同时执行多个线程的能力。Java提供了一些工具和类,以支持开发者在多线程环境下编写高效且安全的程序。
2024-09-27 20:27:47
697
原创 Java-I/O
Java I/O(输入/输出)是指Java编程语言处理数据输入和输出的功能。Java I/O主要包含在java.io包中,提供了一组丰富的类和接口,用于读取和写入文件、数据流和控制台。
2024-08-29 17:00:00
401
原创 Java-增删改查
User类:表示用户的数据模型,包含用户的基本信息和相关操作。UserList类:使用LinkedList来管理用户,支持按顺序添加、查找、更新和删除用户。UserMap类:使用HashMap来管理用户,通过ID快速访问用户,适合大量数据的读写场景。Main类:演示如何利用上述类进行用户的创建、查询、更新和删除操作。
2024-08-29 13:00:12
1679
原创 Java栈的应用
Java中的栈(Stack)是一种后进先出(LIFO, Last In First Out)的数据结构。Java提供了类,该类能够在程序中实现栈的功能。Stack。
2024-08-28 12:08:46
812
原创 Java自定义异常处理
首先,你需要创建一个继承自Exception或的类。选择哪个取决于你的需求:如果希望强制调用者处理该异常,应该继承自Exception;如果可以选择不处理该异常,应该继承自。// 自定义检查异常在你的代码中,你可以在需要的地方抛出这个自定义异常。throw new MyCustomException("值不能为负数: " + value);} else {System.out.println("值是: " + value);在调用可能抛出自定义异常的方法时,你需要捕获并处理该异常。
2024-08-27 15:39:23
267
原创 Java继承
/ 实现抽象方法@Override");使用extends时,你在构建一个从父类继承的类结构。使用implements时,你在构建一个符合某种接口的类,并承诺实现该接口的所有方法。因此,在Java编程时,选择使用extends还是implements主要取决于你的设计需求和类之间的关系。
2024-08-27 12:51:32
1209
原创 java抽象类
/ 定义一个抽象类// 抽象方法// 具体方法// 子类实现抽象类// 实现抽象方法");// 实现抽象方法");// 输出: Woof!// 输出: Meow!// 输出: This animal eats food.// 输出: This animal eats food.抽象类提供了一种实现代码复用及约束子类实现特定行为的机制。使用抽象类可以帮助开发者创建结构良好、易于维护的代码。
2024-08-27 12:38:02
651
原创 Java-String用法
Java中的字符串(String)是一个引用数据类型,用来表示一系列Unicode字符序列。在Java中,字符串是不可变对象,一旦创建,就无法修改其内容。Java中的字符串是由String类来表示和处理的。在处理字符串时,有一些常见的问题或者需要注意的地方,以下是一些常见的问题和解决方法:字符串比较:字符串比较时应当使用equals()方法而不是==运算符,因为equals()方法比较的是字符串的内容,而==运算符比较的是引用地址。字符串拼接:当需要拼接多个字符串时,应当避免频繁地使用。
2024-06-19 23:03:52
577
1
原创 Java-Map1
常见的Map映射集合包括Java中的HashMap、TreeMap和LinkedHashMap等。在这些数据结构中,可以通过put(key, value)方法添加键值对,通过get(key)方法获取对应的值,还可以通过remove(key)方法删除指定的键值对。当使用Map映射集合时,首先需要导入Java中的Map接口及其实现类,例如HashMap。在上面的示例代码中,首先创建了一个HashMap实例,并向其中添加了三个键值对。
2024-06-19 22:50:12
582
1
原创 Java集合
Java集合是用于存储对象的容器,它提供了一种结构化管理对象的方式。在 Java 中,集合按照其存储方式和性能特点可以分为 List(列表)、Set(集合)、Map(映射)三种大类。
2024-06-17 21:30:18
453
1
原创 Java链表
除了常见的添加、删除、获取等操作外,LinkedList还提供了一些特殊的方法,如addFirst()、addLast()、offer()、poll()等,可以用于实现队列和栈等数据结构。在Java中,链表是一种动态数据结构,它不需要在内存中分配一块连续的空间,而是通过指针将节点连接起来。链表由节点(Node)的集合组成,每个节点包含两部分内容:数据(data)和指向下一个节点的引用(next)。当使用链表时,可以根据具体需求选择合适的链表类型(如单向链表、双向链表等),然后进行相应的操作。
2024-06-17 21:14:18
707
1
原创 Java面向对象
Java还支持接口和抽象类的概念,接口定义了一组方法的规范,而抽象类是不能被实例化的类,用于定义一些通用的属性和方法。继承允许一个类继承另一个类的属性和方法,可以重用代码并构建更复杂的类结构。对象是类的实例,类是对象的模板,定义了对象的属性和行为。封装是指将对象的属性和方法封装在一个类中,通过访问控制符来控制对对象的访问。这样可以保护对象的数据,只允许通过指定的方法来访问和修改数据。继承是指一个类可以继承另一个类的属性和方法,从而实现代码的重用。子类可以继承父类的属性和方法,并可以添加新的属性和方法。
2024-05-08 19:02:25
317
2
原创 java循环结构
除了上述三种基本的循环语句外,Java还提供了break和continue语句用于控制循环的执行流程。在编写循环时,务必注意循环条件的正确性,以避免出现死循环的情况。2.while循环: while循环是一种在未知循环次数的情况下执行特定代码块的循环语句。3.do-while循环: do-while循环是一种与while循环类似的循环语句,不同之处在于它先执行一次代码块,然后再检查循环条件。,然后使用for循环、while循环和do-while循环分别遍历数组并输出其中的偶数。
2024-04-21 10:16:38
203
1
原创 Java分支结构
switch语句根据表达式的值匹配不同的case,执行对应的代码块。在if语句中,根据条件的真假来选择执行不同的代码块。可以使用多个else if来添加更多条件判断,最后的else块是可选的,用于处理所有条件都不成立的情况。这些分支结构可以根据不同的条件来选择不同的执行路径,增加了程序的灵活性和可读性。在实际开发中,根据具体情况选择合适的分支结构来实现逻辑判断。2.switch语句:用于根据不同的情况执行不同的代码块。3.三元运算符:用于根据条件返回不同的值。
2024-03-31 19:28:42
317
1
原创 java的变量和运算符
Java的变量是用来存储数据的内存位置,可以存储不同类型的数据,如整数、浮点数、字符等。在Java中,变量需要先声明然后再使用。在Java中,变量还可以被修改和重新赋值,对变量进行赋值和使用进行运算和操作在Java中,数据类型决定了变量的取值范围和存储方式。基本数据类型在内存中存储的是实际的数据值,而引用数据类型在内存中存储的是对象的引用(地址)。开发者可以根据需求选择合适的数据类型来存储和操作数据。
2024-03-31 19:20:12
395
1
原创 Java的安装和配置环境
打开命令提示符(Windows)或终端(Linux/macOS),输入′java−version′和′ javac -version'命令,确保Java和Java编译器已正确安装并配置。执行下载的安装程序,并按照提示进行安装。在安装过程中,您也可以选择自定义安装路径。注意:安装文件尽量不要装在c盘。配置PATH环境变量:将JDK的bin目录路径添加到PATH变量中,以便系统可以找到Java相关的可执行文件。配置JAVA_HOME环境变量:将JDK的安装路径设置为JAVA_HOME变量的值。
2024-03-13 20:49:07
297
原创 C语言库函数
总之,C语言库函数是C语言编程中不可或缺的一部分,它们为程序员提供了丰富的功能和工具,以便更轻松地开发和管理代码。通过本文的解析和例子,相信读者对C语言库函数有了更深入的了解,可以更好地应用它们来解决实际的编程问题。
2024-01-26 17:25:04
348
1
原创 C语言指针初始化
指针的初始化是C语言中非常重要的一步,它决定了指针变量能否正确地访问和操作所指向的内存地址。在进行指针初始化时,需要注意以下几点:确保指针变量的类型与所指向的变量类型相匹配,这样才能正确地访问和操作所指向的内存地址。在使用动态分配内存进行指针初始化时,需要确保内存分配操作成功,即分配的内存空间不为NULL,否则将导致程序运行时出现错误。在指针初始化后,需要及时释放所分配的内存空间,以避免内存泄漏问题。
2024-01-26 13:48:20
1547
1
原创 C语言数组
总之,C语言数组是一种非常重要的数据结构,它在各种算法和数据处理中有着广泛的应用。通过数组,我们可以方便地存储和操作一组数据,实现各种功能。因此,掌握C语言数组的应用和代码是非常重要的。
2024-01-26 11:50:14
219
1
原创 C语言递归函数解析
总之,递归是一个非常有用的编程概念,它可以帮助我们解决许多复杂的问题并简化代码的实现。通过适当地定义基本情况和递归情况,我们可以轻松地应用递归来解决各种问题。在编程中,递归不仅可以提高代码的可读性和可维护性,还可以让我们更好地理解问题的本质和解决方法。因此,递归是每个程序员都应该掌握的重要技能之一。
2024-01-25 20:01:50
399
原创 论C语言函数
总的来说,C语言中的函数和内置函数是非常重要的概念,它们为开发人员提供了一种组织和重用代码的方式。通过合理地使用函数和内置函数,开发人员可以提高代码的可读性和可维护性,从而更轻松地开发和维护复杂的应用程序。因此,了解和熟练使用C语言中的函数和内置函数是每个C语言开发人员都应该具备的基本技能。
2024-01-25 19:54:15
313
原创 C语言操作符和表达式2
C的整型算术运算总是至少以缺省整型类型的精度来进行的。为了获得这个精度,表达式中的字符和short操作数在使用之前被转换为普通整型,这种转换称为整型提升。逗号表达式,就是用逗号隔开的多个表达式。总结:我们写出的表达是如果不能通过操作符确定唯一的计算路径,那这个表达式就是存在问题的。如果两者的优先级相同,取决于他们的结合性。表达式求值的顺序一部分是由操作符的优先级和结合性决定的。有些表达式的操作数在求值的过程中可能需要转换为其他类型。||逻辑或:a||b表示一边为真,则为真。后一个表达式的结果。
2024-01-25 19:30:46
298
原创 C语言操作符和表达式1
对于/操作符如果两个操作数都为整数,执行整数除法。负整数的原码先反码再加一变成补码。1表示负数,0表示整数。>>右移位符,算术移位:右边抛弃,左边补0,符号位不变。除了%操作符之外,其它的几个操作符可以作用于整数和浮点数。%操作符的两个操作数必须为整数,返回值为整除之后的余数。<<左移位符,向左移位,右边补0。//使用赋值操作符重新赋值。移动的是二进制,数据在内存中以补码的形式进行保存。但是,不建议连续使用,这样代码的可读性比较差。赋值操作符可以让你对自己声明的变量重新赋值。正整数的原码、反码和补码相同。
2024-01-25 11:46:03
438
原创 C语言冒泡排序
如果两个相等的元素没有相邻,那么即使通过前面的两两交换把两个相邻起来,这时候也不会交换,所以相同元素的前后顺序并没有改变,所以冒泡排序是一种稳定排序算法。因为排序的过程中,各元素不断接近自己的位置,如果一趟比较下来没有进行过交换,就说明序列有序,因此要在排序过程中设置一个标志flag判断元素是否进行过交换。冒泡排序:通过对待排序序列从前向后(从下标较小的元素开始),依次比较相邻元素的值,若发现逆序则交换,使值较大的元素逐渐从前移向后部,就象水底下的气泡一样逐渐 向上冒。printf("排序之前");
2024-01-25 10:01:38
397
原创 C语言:数组的初始化
/也可以写成char str[10]={'H','e','l','l','o','\0'}int size = sizeof(arr) / sizeof(arr[0]);//需要引入头文件#include <string.h>需要注意的是strlen是专门用来求字符串的长度的库函数,它统计的是\0前面的元素的个数。结果为0 1 2 3 4 5 6 7 8 9。也可以用函数用键盘打印输出如下。使用for循环初始化。
2024-01-22 20:21:53
498
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人