- 博客(68)
- 收藏
- 关注
原创 Java基础篇06:面向对象高级
多态是在继承/实现情况下的一种现象,表现为:对象多态、行为多态。实现多态的前提条件:有继承/实现关系;存在父类引用子类对象(对象多态);存在方法重写(行为多态)
2025-09-18 16:57:24
827
原创 Java基础篇04:数组、二维数组
静态初始化数据类型[][] 数组名 = {元素1,元素2,元素3};动态初始化数据类型[][] 数组名 = new 数据类型[长度];静态初始化数据类型[][] 数组名 = new 数据类型[][]{元素1, 元素2, 元素3, ...}动态初始化数据类型[][] 数组名 = new 数据类型[长度1][长度2];
2025-09-10 16:48:17
304
原创 Java基础篇02:基本语法
健康运算器:开发一个简单的健康计算器应用程序,它可以接受用户的输入(如年龄、性别、体重、身高),并计算出用户的BMI(身体质量指数)和基础代谢率(BMR)。Java语言自己用的一些词汇,有特殊作用的,称之为关键字, 如:public、class、int、double…字面量就是程序中能直接书写的数据,学这个知识的重点是:搞清楚Java程序中数据的书写格式。
2025-09-05 20:56:12
251
原创 Java基础篇01:了解Java及环境搭建
首先添加JAVA_HOME变量,然后在环境变量中配置JDK;2 利用JAVA_HOME配置JDK。的开发(占据90%以上的市场份额)1 添加JAVA_HOME变量。
2025-09-04 15:50:30
336
原创 Springboot基础篇(5):自定义 MyBatis Starter
MyBatis 是一个优秀的持久层框架,而 MyBatis Starter 是 Spring Boot 提供的一个官方 Starter,用于快速集成 MyBatis。通过自定义 Starter,我们可以封装一些通用的 MyBatis 配置、插件或工具类,简化项目的配置和开发。Springboot基础篇(2):SpringBoot整合Mybatis):效果图。
2025-03-11 14:12:01
1087
原创 Springboot基础篇(4):自动配置原理
需求:写一个自动配置类,当访问http://localhost:8080/sayhello时,使用控制器使用自动配置类去打印“HELLO!创建业务类// 支持自定义问候语创建业务自动配置类@Bean注册配置:控制反转与Bean对象
在Spring框架中,Bean是一个由Spring IoC容器管理的对象。Bean的创建、初始化、依赖注入以及销毁都由Spring容器负责。Bean可以是任何Java对象,通常是一个POJO(Plain Old Java Object)。使用@Component及其派生注解:Spring支持通过@ComponentScan自动扫描并注册Bean。常用的注解包括:@Component :通用注解,用于标记任意类为 Bean。@Service :用于标记服务层的类。
2025-02-27 22:52:00
712
原创 Springboot基础篇(2):SpringBoot整合Mybatis
使用Spring Initializr创建一个新的Spring Boot项目选择以下依赖:Spring Web(用于构建Web应用)MyBatis Framework(用于整合MyBatis)MySQL Driver(用于连接MySQL数据库)配置数据库链接创建实体类:创建一个实体类,对应数据库中的表。
2025-02-26 14:49:15
353
原创 Docker 部署 Dify:轻松集成 Ollama 和 DeepSeek
通过 Docker 部署 Dify,并在其中集成 Ollama 和 DeepSeek,可以构建一个高效、灵活且隐私保护的本地 LLM 应用开发环境
2025-02-18 10:37:15
4376
原创 3 Windows多线程
windows线程同步的方式一共四种:互斥对象、事件对象、信号量、关键代码段。互斥对象、事件对象、信号量属于内核对象,由于利用内核对象进行线程同步,所以速度较慢。但是这也使得可以在多进程中的各个线程中进行同步。关键代码段在用户方式下,因此同步速度较快,但在使用关键代码段时,很容易进入死锁状态,这是因为等待进入关键代码段时无法设定超时值,而且只能实现在同进程中的线程同步(当一个线程尝试进入一个已被其他线程占用的关键代码段时,它将会被阻塞,直到获得访问权限为止。
2024-01-09 15:53:33
1034
原创 2 Windows网络编程
C/S模式是指Client/Server模式(客户端/服务器模式)。它是一种计算机架构模式,用于描述分布式计算中的两个主要组成部分:客户端和服务器。客户端是指发起请求的用户或应用程序,它向服务器发送请求并等待服务器的响应。服务器是指接受客户端请求,并提供相应服务或资源的中央计算机或系统。
2024-01-02 23:06:37
1321
原创 1 手写第一个Win32窗口程序
LPCTSTR: 根据环境配置,如果定义了UNICODE宏,则是LPCWSTR类型,否则则为LPCSTR类型。TCHAR: 如果定义了UNICODE,则为WCHAR,否则为CHAR。DWORD: 32位无符号整型数据(DWORD32)LONGLONG: 64位符号整型(LONG64)HANDLE: 对象的句柄,最基本的句柄类型。LONG: 32位符号整型(LONG32)DWORD64: 64位无符号整型数据。SHORT: 无符号短整型(16位)INT32: 32位符号整型。INT64: 64位符号整型。
2023-12-25 01:11:41
1192
原创 239. 滑动窗口最大值
单调队列解决区间求极值的问题,单调队列永远在维护尽可能是最大的值,那些肯定不是最大的值在push的过程中就已经被弹出了。
2023-08-07 14:43:37
312
原创 栈
栈是只允许一端进行插入或删除的线性表// 存放栈中元素 int top;// 栈顶指针 } SqStack;10// 存放栈中元素 int top;// 栈顶指针 } SqStack;用链式存储实现的栈。
2023-07-20 21:30:36
93
原创 线性表
线性表是具有相同数据类型的n(n>=0)个数据元素的有限序列,其中n为表长,当n=0时,线性表是一个空表。若用L来命名线性表,则一般表示为:ai是线性表中的“第i个”元素,i代表的是线性表中的位序a1是表头元素、an是表尾元素除了表头元素外,每个元素有且只有一个直接前驱;除了表尾元素,每个元素有且只有一个直接后继线性表的顺式存储也叫顺序表。顺式存储:把逻辑上相邻的元素存储在物理位置也相邻的存储单元中,元素之间的关系也由存储单元的邻接关系来体现为了使逻辑上相邻的元素,在物理上也相邻,顺式表用。
2023-07-20 01:48:31
126
原创 算法和算法评价
一个语句的频度是指该语句在算法中被重复执行的次数。算法中所有语句的频度之和记为T(n),它是该算法问题规模n的函数,时间复杂度主要分析的就是T(n)的数量级。
2023-07-14 00:39:59
342
原创 数据结构的三要素
逻辑结构是线性结构基本运算:查找第i个元素、在第i与第i+1个元素之间插入元素、删除第i个数据元素等等运算的定义是针对逻辑结构,指出运算的功能;运算的实现是针对物理结构,指出运算的具体步骤。
2023-06-25 23:06:09
715
原创 数据结构讲了什么?
数据结构学了什么?如何用程序代码把现实世界的问题信息化(1)虚拟货币 (2)微信小程序排队等餐如何用计算机高效的处理这些信息从而创造价值
2023-06-25 19:59:50
230
原创 06 网络套接字函数
典型的服务器程序可以同时服务于多个客户端,当有客户端发起连接时,服务器调用的accept()返回并接受这个连接,如果有大量的客户端发起连接而服务器来不及处理,尚未accept的客户端就处于连接等待状态,listen()声明sockfd处于监听状态,并且最多允许有backlog个客户端处于连接待状态,如果接收到更多的连接请求就忽略。客户端需要调用connect()连接服务器,connect和bind的参数形式一致,区别在于bind的参数是自己的地址,而connect的参数是对方的地址。
2023-05-22 22:51:35
125
原创 04 sockaddr数据结构
IPv4和IPv6的地址格式定义在中,IPv4地址用sockaddr_in结构体表示,包括16位端口号和32位IP地址,IPv6地址用sockaddr_in6结构体表示,包括16位端口号、128位IP地址和一些控制字段。UNIX Domain Socket的地址格式定义在sys/un.h中,用sock-addr_un结构体表示。各种socket地址结构体的开头都是相同的,前16位表示整个结构体的长度(并不是所有UNIX的实现都有长度字段,如Linux就没有),后16位表示地址类型。
2023-05-22 22:15:24
371
原创 03 IP地址转换函数
af 参数指定了地址族,可以是 AF_INET(IPv4)或 AF_INET6(IPv6)src 参数是一个指向以点分十进制表示的IP地址字符串的指针。dst 参数是一个指向用于存储转换结果的缓冲区(内存)的指针。函数将点分十进制的IP地址转换为。
2023-05-21 23:43:19
184
原创 02 网络字节序
例如上一节的UDP段格式,地址0-1是16位的源端口号,如果这个端口号是1000(0x3e8),则地址0是0x03,地址1是0xe8,也就是先发0x03,再发0xe8,这16位在发送主机的缓冲区中也应该是低地址存0x03,高地址存0xe8。发送主机通常将发送缓冲区中的数据按内存地址从低到高的顺序发出,接收主机把从网络上接到的字节依次保存在接收缓冲区中,也是按内存地址从低到高的顺序保存,因此,网络数据流的地址应这样规定:先发出的数据是低地址,后发出的数据是高地址。TCP/IP协议规定,
2023-05-21 23:23:59
192
原创 01 套接字概念
Socket本身有“插座”的意思,在Linux环境下,用于表示进程间网络通信的特殊文件类型。本质为内核借助缓冲区形成的伪文件。既然是文件,那么理所当然的,我们可以使用文件描述符引用套接字。与管道类似的,Linux系统将其封装成文件的目的是为了统一接口,使得读写套接字和读写文件的操作一致。区别是管道主要应用于本地进程间通信,而套接字多应用于网络进程间数据的传递。在TCP/IP协议中,“IP地址+TCP或UDP端口号”唯一标识网络通讯中的一个进程。“IP地址+端口号”就对应一个socket。欲建立连接的两
2023-05-21 23:06:13
89
原创 03 Linux用户和权限
(3)比如,针对某文件,可以控制用户的权限,也可以控制用户组的权限。选项:-g指定用户的组,不指定-g,会创建同名组并自动加入,指定-g需要组已经存在,如已存在同名组,必须使用-g。权限可以用3位数字来代表,第一位数字表示用户权限,第二位表示用户组权限,第三位表示其它用户权限。其中:u表示user所属用户权限,g表示group组权限,o表示other其它用户权限。选项:-r,删除用户的HOME目录,不使用-r,删除用户时,HOME目录保留。所以751表示: rwx(7) r-x(5) --x(1)
2023-05-06 23:08:04
100
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅