- 博客(307)
- 收藏
- 关注
原创 C++标准库STL排序函数大全
C++标准库(STL)提供了丰富的排序算法供开发者使用。除了常见的全范围排序外,STL还支持对部分范围进行排序、检查排序状态等操作。同时Boost库也提供了一些高效的排序算法供选择。本文将介绍STL和Boost中常用的排序相关函数及其使用场景。一起来看看STL和Boost在这方面能做些什么。C++标准库提供了多种灵活的排序算法,可以满足各种场景下的排序需求。对于大型集合,Boost的spreadsort也是一个不错的选择。
2026-02-04 02:53:37
104
原创 MySQL 的 INSERT(插入数据)详解
如果你要插入的值涵盖了表中的所有列,可以省略列名部分。但请注意,值的顺序必须与表中列的顺序相同。无论是基础的单行插入,还是高级的插入否则更新和数据迁移。语句非常灵活,支持多种语法形式,可以根据具体需求选择合适的用法。如果你希望在插入数据时忽略已经存在的记录(即不抛出错误),可以使用。如果你希望在插入数据时遇到主键或唯一键冲突时更新现有记录,可以使用。语法来插入数据,这种方式更适用于需要明确指定列名和值的场景。语法,适用于插入单行数据。子句中指定多组值,从而一次性插入多行数据。语句的详细语法和使用示例。
2026-02-04 02:49:44
151
原创 Nginx三种安装方式
上面是一条命令,每行的末尾 表示对命令进行换行, 之后不能有空格。协议, Nginx 的 SSL 模块和其他模块需要。宿主机不存在不存在 nginx.conf 文件,会把。可以下载最新版或稳定版本,建议使用稳定版本。当成文件夹来处理,那么把宿主机的。就是 Nginx 的安装路径。的路径和配置文件的路径要对应。OpenSSL 用来支持。
2026-02-04 02:48:31
206
原创 使用Nginx正向代理让内网主机通过外网主机访问互联网
内网服务器发送请求:内网服务器通过HTTP或HTTPS发送请求到外网代理服务器的8080端口。代理服务器接收请求:外网代理服务器接收到请求后,根据请求的协议(HTTP或HTTPS)使用proxy_pass将请求转发到目标互联网服务器。互联网服务器处理请求:目标互联网服务器接收到请求后处理并生成响应。代理服务器返回响应:互联网服务器将响应发送回外网代理服务器,然后代理服务器将响应转发回内网服务器。
2026-02-04 02:46:43
188
原创 Redis五种用途
Redis是一个高性能的key-value数据库。Redis 与其他 key - value 缓存产品有以下三个特点:- Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。- Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。- Redis支持数据的备份,即master-slave模式的数据备份。
2026-02-04 02:45:29
139
原创 MySql的慢查询(慢日志)
慢查询日志,就是查询花费大量时间的日志,是指mysql记录所有执行超过参数设定的时间阈值的SQL语句的日志,以帮助开发者分析和优化数据库查询性能。默认情况下,慢查询日志是关闭的,要使用慢查询日志功能,首先要开启慢查询日志功能。
2026-02-04 02:44:58
217
原创 Python 生成词云-jieba库与和wordcloud 库
其他各类文本数据,这一技能都能帮助我们更高效地挖掘文本价值,发现其中的规律与重点。在实际应用中,大家还可以根据需求调整参数、更换遮罩图片、优化停用词表等,打造更具个性化的词云作品。资源绑定附上本章完整资源供读者参考学习
2026-02-04 02:44:08
270
原创 MySQL的UPDATE(更新数据)详解
MySQL的UPDATE语句是数据库操作中不可或缺的一部分,通过合理使用索引、批量更新、避免全表更新、使用LIMIT以及优化事务,可以显著提高UPDATE语句的执行效率。
2026-02-04 02:43:15
169
原创 nginx简单命令启动,关闭等
方法一:(1)输入nginx命令 nginx -s stop(快速停止nginx) 或 nginx -s quit(完整有序的停止nginx),这两个命令的区别在于nginx -s stop是快速停止Nginx,而nginx -s quit是有序的停止Nginx,前者可能会导致数据没有完全保存;方法二可以直接在cmd命令面板上使用,当第一种方法无效时可以尝试使用此方法,方法二适用于大部分版本的Nginx,但是个别版本的可能不实用,使用taskkill就可解决。注意:方法一必须要在Nginx的安装包目录下。
2026-02-04 02:42:14
209
原创 mysql实用系列日期格式化
如果你有一个非日期时间类型的字段,但你知道它包含的是日期或时间信息,你可能需要先将其转换为 DATETIME 类型,然后再使用 DATE_FORMAT() 函数。如果你尝试对一个非日期时间类型的字段使用 DATE_FORMAT(),比如 INT 或 VARCHAR,MySQL 会返回一个错误,因为它无法将这些类型的数据解释为日期或时间。这里,STR_TO_DATE() 函数将字符串转换为 DATETIME 类型,然后 DATE_FORMAT() 函数将其格式化为所需的格式。函数的一些基本用法。
2026-02-04 02:41:25
94
原创 MySQL 导出数据
在数据库管理中,导出数据是一个常见的操作,它允许用户将数据库中的数据保存到本地文件中,以便进行备份、迁移或数据分析。本文将详细介绍如何使用 MySQL 导出数据,包括使用命令行工具、图形界面工具和编程语言。是 MySQL 自带的一个命令行工具,用于备份或导出数据库。它可以导出整个数据库、单个表或特定表的结构和数据。MySQL Workbench 是官方提供的图形界面工具,它提供了直观的界面来管理 MySQL 数据库。Python 的 MySQL 连接器库可以用来连接 MySQL 数据库并导出数据。
2026-02-04 02:40:47
132
原创 Mysql 驱动程序
MySQL 驱动程序是连接应用程序与 MySQL 数据库的重要组件。根据不同的编程语言和应用场景,MySQL 提供了多种驱动程序,包括 MySQL Connector/J(Java)、MySQL Connector/Python(Python)、MySQL Connector/NET(.NET)、MySQL Connector/C++(C++)、MySQL ODBC 驱动程序等。这些驱动程序简化了数据库操作,提高了性能,并增强了安全性。
2026-02-04 02:38:17
67
原创 MySQL中查看表结构
DESCRIBE或DESC:适合快速查看表的基本结构。:提供更详细的列信息,如默认值和额外信息。:显示创建表的完整SQL语句,包括所有列定义、索引和约束。:通过查询系统数据库,获取最详细的元数据信息。
2026-02-04 02:33:00
153
原创 Java MySQL 连接
本章节我们为大家介绍 Java 如何使用 使用 JDBC 连接 MySQL 数据库。,解压后得到 jar 库文件,然后在对应的项目中导入该库文件。
2026-02-04 02:31:00
170
原创 Nginx更换ssl证书不生效
在用的ssl证书要过期了,申请了新的ssl证书下来,在nginx配置上更换上去后,打开系统地址,一依然是使用原来的旧证书,以前有更换过别的域名证书,重启nginx服务后立马就生效了。这次没生效,看着旧证书还有几天才过期,想着有可能是要等到旧证书过期后,新证书会自动生效,等到了旧证书过期后再看新证书还是没生效,访问系统域名已经提示证书过期了。将新的ssl证书放到一个新目录下(不放在旧证书同目录下)修改nginx的证书配置位置,重启服务,打开系统域名,新的证书生效了。修改配置文件ssl证书路径。
2026-02-04 02:29:37
140
原创 Java核心设计思想:对内隐藏细节,对外暴露接口
当需要对多个类的对外暴露接口进行统一规范时,Java的interface就派上了用场。接口是一种完全抽象的类型,它只定义方法的签名(方法名、参数、返回值),不定义方法的实现,本质上是在规定“对外暴露什么功能”,而具体的实现细节则由实现该接口的类来完成。示例代码如下:Payable接口定义了统一的支付功能接口(pay)和查询状态接口(queryPayStatus),明确了对外暴露的功能规范,所有支付方式都必须遵循这个规范;
2026-02-03 01:52:32
769
原创 Java String类深度解析:从特性到实战避坑
虽然value数组本身是可以修改的(比如通过反射),但Java官方并未提供这样的接口,因此从开发者的角度来看,String对象就是不可变的。如果需要大量拼接字符串,建议使用StringBuilder(非线程安全,效率高)或StringBuffer(线程安全,效率稍低),它们的底层是可变的字符数组,不会频繁创建新对象。其实不然,这里的“修改”本质上是让str变量重新指向了一个新的String对象"def",而原来的"abc"对象并没有被改变,最终会被垃圾回收器回收。那么String的不可变性是如何实现的呢?
2026-02-03 01:51:54
319
原创 Java全栈工程师的实战面试:从基础到微服务的全面考察
林子轩:Spring Boot的自动配置是通过spring.factories文件加载的,它会根据类路径下的依赖自动配置一些默认的Bean。林子轩:Vue3主要是性能提升,比如使用Proxy代替Object.defineProperty,响应式系统更高效。这位工程师名叫林子轩,28岁,拥有计算机科学硕士学历,曾就职于某知名电商平台,负责后端系统开发和前端架构优化。林子轩:有,比如做一个权限校验的指令,可以在模板中直接使用v-has-permission="'view_order'"来控制元素显示。
2026-02-03 01:51:04
162
原创 Java异常详解:从认知到实践的核心指南
Java提供的系统异常虽然覆盖了大部分常见场景,但在实际开发中,我们可能需要根据业务需求定义自己的异常(比如用户登录时的“用户名不存在异常”、“密码错误异常”)。自定义异常的实现非常简单,只需继承Exception(受检异常)或(非受检异常)即可。
2026-02-03 01:50:06
215
原创 从 C 的栈到 C++ 的类:代码结构与封装的艺术
类可以按增强版的结构体来理解,它是一个复合类型,C++把语言原生代的一些类型叫做基本类型,例如int,double,char,指针。用类定义的叫做自定义类型class为定义类的关键字,Stack叫类的名字,{}中为类的主体,注意类定义结束时后面分号不能省略(与之相比命名空间定义的是一个域,不是一个新的类型,所以没有分号)。类体中内容称为类的成员:类中变量称为类的属性或成员变量;类中的函数称为类的方法或者成员函数。在这里插入图片描述C语言结构体的一大缺陷之一就是在这里插入图片描述。
2026-02-03 01:49:16
612
原创 C++ 运算符重载详解:赋值与取地址运算符及日期类实现
这里的代码还有很多缺点,都知道传值传参是要调用拷贝构造的,对于内置类型,用传值传参和引用传参区别不大,第一内置类型都比较小,传值传参拷贝代价也不大,第二它也不涉及调用拷贝构造,都是指令直接完成。但是对于自定义类型,尤其是深拷贝的类型,用引用传参就非常的重要,而且这里函数不改变参数,加上const更好,这样普通对象,const对象,都可以调用。这里对应的指令是cmp,cmp就是compare,将i给eax,eax就是i的值,然后和j进行一个cmp比较,后面指令的意思就是取到比较的结果。
2026-02-03 01:48:37
319
原创 从Java全栈开发到云原生实践:一次真实面试的深度记录
应聘者:好的,最近我参与了一个电商平台的重构项目,主要使用了Spring Boot、Vue3和TypeScript进行前后端分离开发,同时引入了微服务架构,提升了系统的可扩展性和稳定性。应聘者:好的,我叫李明,28岁,本科毕业于某985高校计算机专业,有5年左右的Java全栈开发经验。应聘者:我们通过微服务拆分和缓存机制优化,使系统响应时间降低了40%以上,同时支持了更高的并发量,上线后用户满意度也明显提升。面试官:你好,我是负责技术面试的工程师,今天主要想了解一下你的技术背景和项目经验。
2026-02-03 01:48:14
133
原创 一文搞懂Java值传递与引用传递的核心区别
很多人之所以困惑,是因为对“值”的理解不够准确——这里的“值”,对于基本类型来说是具体的数值,对于引用类型来说则是对象的内存地址。下面我们就通过具体代码案例来拆解分析。
2026-02-03 01:47:30
163
原创 Java面向对象核心:类与对象的本质及内存关联解析
面向对象编程的核心思想是“万物皆可对象”,我们通过抽象现实世界中的事物,将其转化为程序中的“对象”来进行操作。而“类”则是对这些对象的共性进行提炼后形成的“模板”,二者是“模板与实例”的关系。
2026-02-03 01:46:33
197
原创 Java开发核心原则:高内聚低耦合的设计与实践
在面向对象编程中,内聚和耦合是描述类与类、模块与模块之间关系的两个关键指标,二者相辅相成,共同决定了代码的质量。高内聚低耦合不是一句空洞的口号,而是Java开发中提升代码质量的核心方法论。它的本质是“职责清晰、依赖松散”——通过单一职责原则强化内聚,通过面向接口编程、封装、设计模式降低耦合。在实际开发中,我们需要结合业务场景灵活运用这些设计思想,既不忽视原则的重要性,也不陷入过度设计的误区。只有这样,才能写出易于维护、可扩展的Java代码,让系统在业务迭代中保持稳定与高效。
2026-02-03 01:44:23
180
原创 Java基础核心知识点梳理:语法、规范与数据类型
数据类型分为两大类:基本数据类型和引用数据类型,核心区别是存储方式不同(基本类型存值,引用类型存地址)。注释是对代码的说明,不参与程序执行,分为三种:单行注释(// 注释内容)、多行注释(/* 注释内容 */)、文档注释(/** 注释内容 */,可生成API文档)。标识符是用来给类、方法、变量等命名的符号,规则如下:由字母、数字、下划线(_)、美元符号($)组成;8种基本类型对应的包装类分别是:Byte、Short、Integer、Long、Float、Double、Character、Boolean。
2026-02-03 01:42:22
142
原创 Java与C语言语法核心区别:聚焦面向对象视角
封装的核心是“隐藏内部细节,暴露安全接口”,Java通过访问修饰符(public、private、protected、默认)实现严格的访问控制,语法上直接限制对成员变量和方法的访问权限。这种“封装”特性是面向对象的核心之一,Java通过类语法强制实现了数据与方法的绑定,而C语言的结构体仅能存储数据,无法包含方法,数据与方法的关联需要程序员手动维护。这里的关键差异的是:C语言的函数是独立的程序单元,而Java的方法必须隶属于类,对象是方法执行的载体(static方法除外,但仍需在类内)。
2026-02-03 01:41:12
231
原创 从基础到实战:Java全栈开发面试实录
最大的挑战是服务间依赖关系复杂,容易导致雪崩效应,所以我们引入了Hystrix和Resilience4j来增强系统的容错能力。我们使用了Eureka做服务注册与发现,Feign做服务调用,Hystrix做熔断降级,还结合了Redis缓存和Kafka消息队列来提高系统的稳定性。应聘者:是的,在一个高并发的电商系统中,我们最初使用的是Parallel Scavenge,但随着用户量增长,GC停顿时间变长,影响了用户体验。应聘者:是的,MyBatis是一个轻量级的ORM框架,适合需要高度定制SQL的场景。
2026-02-03 01:40:32
237
原创 Java全栈开发面试实战:从基础到高阶的深度对话
应聘者:你好,我叫李晨,28岁,本科毕业于电子科技大学,有5年Java全栈开发经验,主要集中在电商和内容社区类项目上。它最大的优点是提供了类型检查,可以在编译阶段发现很多潜在的错误,比如类型不匹配、未定义的方法调用等,这样能大大减少运行时错误。应聘者:是的,JPA是一种ORM框架,它允许我们通过面向对象的方式操作数据库。应聘者:是的,Spring WebFlux是响应式编程的一部分,适合处理高并发、低延迟的场景。应聘者:是的,Spring Security是一个强大的安全框架,可以用来处理认证和授权。
2026-02-03 01:39:36
112
原创 函数模板与类模板:C++泛型编程核心解析
函数模板是一个蓝图,它本身并不是函数(函数在处理时会编译成一段指令,int和char的指令是不一样的,如果交换的是int,tmp对象是4个字节,如果交换的是char,tmp对象是一个字节),是编译器用使用方式产生特定具体类型函数的模板,这里转到汇编看一下。函数模板代表了一个函数家族,该函数模板与类型无关,在使用时被参数化,根据实参类型产生函数的特定类型版本。那能否告诉编译器一个模子,让编译器根据不同的类型利用该模子生成代码呢?巧的是前人早已将树载好,我们只需在此乘凉。如果在C++中,也能够存在这样一个。
2026-02-03 01:38:17
202
原创 C++ string 操作指南:接口解析与编程实践
在这里插入图片描述缩容的原理:现在有一块32个字节大小的空间,在前面放了11-12个字符,由于C/C++是不支持释放一部分空间的,所以缩容只能去开一块更小的空间,把数据拷贝下来后,再把旧空间释放掉。这样插入的过程中就不用扩容了(扩容的代价是很大的,如果一个空间后面没有足够的空间原地扩容,就要异地开空间,拷贝数据,释放原空间),就提高了效率。在VS2022的C++编译器中,扩容的机制:第一次是二倍(第一次的空间是16字节,因为没有算入’\0’,但是’\0’也有存储空间),其余都是1.5倍(取整了)
2026-02-03 01:37:42
255
原创 C++ STL string类全面指南:从编码历史到实战应用
例如,std::wstring用于宽字符(通常为wchar_t,在Windows平台中一般为2字节,在Linux平台中通常为4字节),以及C++11标准引入的std::u16string和std::u32string,分别用于处理UTF-16和UTF-32编码的字符,对应的字符类型为char16_t(2字节)和char32_t(4字节)在OJ中,有关字符串的题目基本以string类的形式出现,而且在常规工作中,为了简单、方便、快捷,基本都使用string类,很少有人去使用C库中的字符串操作函数。
2026-02-03 01:37:09
195
原创 C++ 进阶特性深度解析:从友元、内部类到编译器优化与常性应用
不通过是前置声明的问题,在用任何的变量,函数,类型的时候都要在当前位置的前面声明或定义了后面才能用,因为编译器是向上编译检查的(节省编译时间,同时向上向下查找出处浪费时间),图中A类中的形参B向上找的时候找不到,也就是A,B类之间存在相互依赖。友元不是相互的,友元是一种单向关系,D成为了C的友元,在D中可以访问C,但在C中是无法访问D的,除非在D中加C的友元声明,是可以互相成为友元的。这里有两个类A,B,此时有一个函数既要访问A,也要访问B,就要使用友元了,一个函数是能够成为多个类的友元的。
2026-02-03 01:36:30
135
原创 C++ STL 栈与队列完全指南:从容器使用到算法实现
C++中为了避免引入太多运算符,会复用C语言的一些符号,比如前面的<<和>>,这里引用也和去地址使用同一个符号&,要注意区分,但是个人觉得用更多符号反而更好,不容易混淆在这里插入图片描述创建i这个变量的时候会开辟一块空间叫i,int& j = i,就是给这块空间又去了一个名字叫j,还可以再取一个名字叫k在这里插入图片描述在这里插入图片描述引用可以给一个变量取多个别名,也可以给别名取别名。
2026-02-03 01:34:22
482
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅