日常积累
文章平均质量分 69
日常技术知识积累,正常每周一次总结。
lgily-1225
这个作者很懒,什么都没留下…
展开
-
Java新特性
在Java 16以前,当我们使用instanceof来检查一个对象是否是某个类型的实例时,如果检查成功,还得显式地将这个对象转型为对应类型,然后才能调用这个类型的方法或访问它的字段。在这个例子中,我们首先检查obj对象是否是String类型的实例,然后将obj对象转型为String类型,并将结果赋值给str变量,最后调用str变量的length()方法。这个方法接收一个指定条件,它可以从一个有序的Stream中取出满足条件的所有元素,一旦遇到不满足条件的元素,就会停止处理后续元素。其实这个方法等价于!原创 2024-10-09 11:43:27 · 743 阅读 · 0 评论 -
Spring源码学习
Spring MVC 是 Spring 框架的核心组件之一,用于构建基于 Web 的应用程序。它实现了 Model-View-Controller(MVC)模式,使开发者可以方便地管理业务逻辑、视图和数据交互。以下是 Spring MVC 请求处理的主要流程及源码解析。Spring MVC 的核心流程通过 DispatcherServlet 调度请求,根据请求 URL 查找处理器,然后通过 HandlerAdapter 调用处理器执行业务逻辑,最终由 ViewResolver 解析视图并返回结果。原创 2024-09-29 17:54:26 · 835 阅读 · 0 评论 -
Docker与Kubernetes学习
Docker 是一个流行的容器化平台,允许开发人员在容器中创建、部署和运行应用程序。Docker 提供了一组工具和 API,使开发人员能够构建和管理容器化应用程序,包括 Docker Engine、Docker Hub 和 Docker Compose。Kubernetes 是一个开源容器编排平台,可自动执行容器化应用程序的部署、扩展和管理。Kubernetes 提供了一组 API 和工具,使开发人员能够跨多个主机和环境大规模部署和管理容器化应用程序。原创 2024-09-23 08:32:21 · 950 阅读 · 0 评论 -
Nginx中return和rewrite的区别
rewrite用于修改请求 URI,并将请求重定向到另一个地址,通常用于URL重写或内部转发。rewrite:重写请求的 URI,并根据新的 URI 重新进行一次请求。如果只是简单的重定向需求,推荐使用 return,而如果需要更复杂的 URI 重写逻辑,则可以使用 rewrite。return 比 rewrite 更高效,因为它在 Nginx 的内部进行处理,不会引起额外的请求-响应往返。在Nginx中,return和rewrite都用于重定向请求,但还是有区别,写法也不一样。原创 2024-09-16 08:14:20 · 574 阅读 · 0 评论 -
nginx配置ssl证书
openssl生成证书,nginx配置ssl证书实现https访问。原创 2024-09-02 07:44:44 · 411 阅读 · 0 评论 -
分布式锁的实现与处理策略
分布式锁的实现涉及选择合适的技术和策略来解决锁的可靠性、宕机恢复以及锁过期问题。通过了解 Redis、Zookeeper 和 Etcd 等分布式锁实现的优缺点,结合具体业务场景,可以设计出高效、可靠的分布式锁机制。在实践中,合理配置锁的过期时间、实施心跳机制、设计重试逻辑和监控告警,将有效地应对分布式锁带来的挑战。原创 2024-08-26 07:53:13 · 820 阅读 · 0 评论 -
数据库改名方法
数据库改名方法介绍原创 2024-08-19 07:59:03 · 188 阅读 · 0 评论 -
三级等保中的三员管理
三级等保中的三员管理详解及linux机器配置三员管理示例原创 2024-08-11 23:23:13 · 788 阅读 · 0 评论 -
Mysql主从复制
MySQL数据库默认是支持主从复制的,不需要借助于其他的技术,我们只需要在数据库中简单的配置即可。MySQL主从复制是一个异步的复制过程,底层是基于Mysql数据库自带的 二进制日志 功能。就是一台或多台MySQL数据库 从另一台MySQL数据库进行日志的复制,然后再解析日志并应用到自身,最终实现 从库 的数据和 主库 的数据保持一致。MySQL主从复制是MySQL数据库自带功能,无需借助第三方工具。原创 2024-08-05 08:11:06 · 568 阅读 · 0 评论 -
FFmpeg研究
FFmpeg的全称是“”,组件由命令行应用程序和函数库两部分组成。通俗概括来说,FFmpeg 是一个免费的开源程序库,一个多媒体音视频处理分析工具软件,且提供命令行方式调用,专门用来编辑处理各种音视频或图像。它的源码是由 C 语言编写的,基于 Linux 系统中开发,不过在其它操作系统中都可以运行,跨平台性良好。ffmpeg:功能强大的处理音视频文件的软件,可以实现音视频的录制、转码、剪辑、合成等功能。ffplay。原创 2024-07-29 08:01:40 · 1169 阅读 · 1 评论 -
linux防火墙
防火墙就是根据系统管理员设定的规则来控制数据包的进出,主要是保护内网的安全。目前Linux系统的防火墙类型主要有两种:分别是iptables和firewalld。原创 2024-07-22 08:30:53 · 276 阅读 · 0 评论 -
linux编译安装命令详解
等这些都是典型的使用GNU的AUTOCONF和AUTOMAKE产生的程序的安装步骤。是源代码安装的第一步,用来检测安装平台的目标特征的。主要的作用是对即将安装的软件进行配置,检查当前的环境是否满足要安装软件的依赖关系,但并不是所有的tar包都是源代码的包。会检测是不是有CC或GCC,并不是需要CC或GCC,它是个shell脚本。make是用来编译的,它从Makefile或者makefile(Linux区分大小写)中读取指令,然后编译。是用来安装的,它也从Makefile中读取指令,安装到指定的位置。原创 2024-07-14 23:38:53 · 933 阅读 · 0 评论 -
Spring的循环依赖
循环依赖是指两个或多个Bean相互依赖,形成一个闭环。Bean A依赖于Bean BBean B依赖于Bean A这种依赖关系就形成了一个循环,导致Spring容器在初始化Bean时无法确定哪个Bean应先创建。Spring循环依赖是一个复杂的问题,理解其工作原理和解决机制对于开发高质量的Spring应用程序至关重要。通过合理的设计和最佳实践,可以有效避免和解决循环依赖,确保应用程序的稳定性和可维护性。:缓存某个 beanName 对应的经过了完整生命周期的bean;原创 2024-07-08 00:07:43 · 575 阅读 · 0 评论 -
Linux安装MySQL问题记录
比如修改了配置文件中“[mysql]”选项下的“socket”参数,而未指定“[client]”、“[mysql]”选项的“socket”参数,导致mysql使用默认的socket文件位置去寻找socket文件,从而导致未找到socket文件而引发此错误。解决方法: 修改“/etc/my.cnf”配置文件,在配置文件中添加“[client]”选项和“[mysql]”选项,并使用这两个选项下的“socket”参数值,与“[mysqld]”选项下的“socket”参数值,指向的socket文件路径完全一致。原创 2024-07-01 07:28:55 · 928 阅读 · 0 评论 -
x86架构与ARM架构
GOOGLE开发了开放式的Android系统后,统一了ARM结构电脑的操作系统,使新推出基于ARM结构的电脑系统有了统一的、开放式的、免费的操作系统,为ARM的发展提供了强大的支持和动力。X86系统由微软及Intel构建的Wintel联盟一统天下,垄断了个人电脑操作系统近30年,形成巨大的用户群,也深深固化了众多用户的使用习惯,同时x86系统在硬件和软件开发方面已经形成统一的标准,几乎所有x86硬件平台都可以直接使用微软的视窗系统及现在流行的几乎所有工具软件,所以x86系统在兼容性方面具有无可比拟的优势。原创 2024-06-24 07:59:30 · 1932 阅读 · 0 评论 -
Kafka的基本模型
Java中消息产生,发送到MQ软件中,发送消息的被称为Producer(消息提供者),接收消息的被称为Consumer(消息消费者),MQ软件中一般用队列处理消息,消息一般包含消息头、消息属性、消息主题内容。原创 2024-06-17 07:49:01 · 188 阅读 · 0 评论 -
OpenEuler系统学习
什么是OpenEuler,个人理解就是:通过社区合作,打造统一和开放的操作系统。官方是这么介绍的:欧拉是数字基础设施的开源操作系统,可广泛部署于服务器、云计算、边缘计算、嵌入式等各种形态设备,应用场景覆盖IT(Information Technology)、CT(Communication Technology)和OT(Operational Technology),实现统一操作系统支持多设备,应用一次开发覆盖全场景。原创 2024-06-11 07:48:37 · 371 阅读 · 0 评论 -
SpringBoot温习
Spring Boot是一个开源的Java框架,由Pivotal团队(现在是VMware的一部分)开发,它是Spring框架的一个模块,旨在简化Spring应用程序的初始搭建以及开发过程。 Spring Boot作为Spring生态系统的一部分,带来了许多显著的优势,这些优势使得它成为现代Java应用程序开发的一个非常受欢迎的选择。Spring Boot通过提供简化的配置和快速启动的特性,帮助开发者专注于业务逻辑的实现,而不是花费大量时间在环境搭建和配置上,从而提高开发效率和应用程序的质量。原创 2024-06-03 07:22:57 · 487 阅读 · 1 评论 -
Spring框架温习
Spring是一个全面的、企业应用开发一站式的解决方案,贯穿表现层、业务层、持久层。但是 Spring仍然可以和其他的框架无缝整合。轻量级、控制反转、面向切面、容器、框架集合。原创 2024-05-27 08:38:39 · 467 阅读 · 0 评论 -
几种监控工具学习
在Linux上有很多监控工具,比如Zabbix、Prometheus、APM和ELK监控工具是确保系统稳定运行的关键组件之一,它可以帮助系统管理员和开发人员及时发现并解决问题。原创 2024-05-13 08:14:01 · 637 阅读 · 0 评论 -
视频国标学习
GB/T28181协议,全名叫《安全防范视频监控联网系统信息传输、交换、控制技术要求》,是由中国国家标准委员会发布的一种国家级的标准。它主要对视频监控系统的各个方面做了明确的规定,使得不同厂商生产的视频监控设备能够相互连通,信息共享,提高整个监控系统的效率和可靠性。28181协议从2011年发行第一个版本以来已经连续迭代了3个版本,最新发布版本为GB/T28181-2016,最新的协议文档可通过点击文末的阅读原文获取。原创 2024-04-15 09:38:27 · 1133 阅读 · 0 评论 -
流行的API架构学习
优点:RESTful 一种基于现有 Web标准和 HTTP协议的设计和构建网络应用程序的架构风格,旨在提供一种简洁、可扩展、可靠和可互操作的方式来进行网络通信。优点:SOAP 是一种基于 XML 的通信协议,具有良好的跨平台和跨语言支持。适用场景:SOAP 适用于需要高安全性和复杂数据交换的企业级应用程序和 Web 服务场景,尤其是需要实现事务处理和消息传递机制的场景。适用场景:GraphQL 适用于需要灵活数据获取和精确控制的应用程序,特别是面向移动设备的应用程序和需要聚合多个数据源的场景。原创 2024-04-01 09:57:47 · 1337 阅读 · 0 评论 -
PostgreSQL与MySQL对比
PostgreSQL和MySQL都是流行的关系型数据库管理系统,但它们在多个方面存在显著差异,这直接影响了它们各自的应用场景。原创 2024-03-24 22:02:35 · 1213 阅读 · 0 评论 -
openSSH学习
当有100台主机,你需要创建100个密码,全部一样,你管理的时候每台主机都要输入密码,那如果全部不一样呢,那就更麻烦了!需要你输入密码是用户认证,先进行主机用证在进行用户验证,平时就是用户验证,就第一次验证需要输入yes,后面输入密码即可登录。服务器端——sshd,配置文件在/etc/ssh/sshd_config (可以优化服务端的配置)客户端——ssh,配置文件在/etc/ssh/ssh_config (这个配置文件不需要修改)telnet // 远程登录协议,23/TCP,认证明文,数据传输明文。原创 2024-03-18 08:47:00 · 378 阅读 · 0 评论 -
Linux系统free命令
free 命令可以显示Linux系统中 空闲的、已用的物理内存 及 swap内存,及 被内核使用的buffer。在Linux系统监控的工具中,free命令是最经常使用的命令之一。free命令:可选参数:参数 说明-b 以Byte为单位显示内存使用情况-k 以KB为单位显示内存使用情况-m 以MB为单位显示内存使用情况-g 以GB为单位显示内存使用情况-h 根据内存大小自动选择合适的单位显示-o 不显示缓冲区调节列-s 持续观察内存使用状况-c 和-s配合使用。原创 2024-03-11 08:46:48 · 1825 阅读 · 0 评论 -
JVM类加载机制
之所以以这样的一个加载顺序,让标准库先加载,然后再扩展库,最后再是用户写的类,是为了防止用户可能会写出一些标准库或者扩展库已经存在的类的,就比如 java.lang.String,而这个是标准库中已经存在的类的,按照上述的加载顺序,JVM 最后加载出来的就是标准库中的类,而不是用户自己写的;初始化: 针对类对象里面的内容进行初始化,加载父类,执行父类静态代码块,父类静态变量赋值,子类静态代码块,子类静态变量赋值,父类初始化模块,父类普通变量,父类构造器,子类初始化模块,子类普通变量,子类构造器…原创 2024-03-04 08:46:33 · 593 阅读 · 0 评论 -
工厂模式学习
2、可扩展性:由于每个具体产品都有对应的具体工厂,可以轻松地添加新的具体产品类和对应的工厂类,而不会影响现有的代码结构。总的来说,简单工厂模式适用于对象较少且变化不频繁的场景,但在面对频繁变化的产品类型或产品创建过程复杂的情况下,不太适合使用简单工厂模式。2、增加了系统的抽象性和理解难度:引入了抽象工厂和具体工厂的概念,增加了系统的抽象性,使得系统的理解和学习成本增加。工厂方法模式将对象的实例化放到子类。1、简单工厂模式实现了对象创建和对象使用的分离,客户端只需知道产品的类型,无需关心产品的创建细节。原创 2024-02-26 08:46:13 · 894 阅读 · 0 评论 -
Mysql日志学习
r edo log 是为了防止 Buffer Pool 中的脏页丢失而设计的,那么如果随着系统运行,Buffer Pool 的脏页刷新到了磁盘中,那么 redo log 对应的记录也就没用了,这时候我们擦除这些旧记录,以腾出空间记录新的更新操作。进行事务的过程中,会先把产生的binlog写入到binlog cache中,事务commit(提交)的时候再写入到日志文件当中,而这个日志文件是否写入磁盘,再根据参数 sync_binlog来决定这个事务的binlog日志是否马上写入到磁盘中。原创 2024-01-29 08:49:31 · 419 阅读 · 0 评论 -
国密算法学习
SM2密码算法是国产密码算法标准,是一种基于椭圆曲线密码(ECC,Elliptic Curve Cryptography)的公钥密码,椭圆曲线密码是非对称密码的一种,具有更高的安全性与更低的计算复杂性。数字信封是指在公共信道上传输数据时,使用对称加密算法对数据进行加密,并将加密后的数据和加密所使用的密钥分别用接收方的公钥和私钥进行加密,然后发送给接收方。填充方式为将消息的末尾添加一个1,然后添加若干个0,使得消息长度满足对512取模为448,最后在末尾添加一个64位的长度值,表示消息的长度。原创 2024-01-22 09:51:14 · 645 阅读 · 0 评论 -
Docker学习
Linux namespaces 是对全局系统资源的一种封装隔离,使得处于不同 namespace 的进程拥有独立的全局系统资源,改变一个 namespace 中的系统资源只会影响当前 namespace 里的进程,对其他 namespace 中的进程没有影响。LXC,其名称来自 Linux 软件容器(Linux Containers)的缩写,一种操作系统层虚拟化(Operating system–level virtualization)技术,为 Linux 内核容器功能的一个用户空间接口。原创 2024-01-08 08:52:15 · 635 阅读 · 0 评论 -
JVM调优相关参数学习
最近在网上看到一些人讨论到java.lang.Runtime类中的 freeMemory(), totalMemory(), maxMemory()这几个方法的一些问题,很多人感到很疑惑,为什么,在java程序刚刚启动起来的时候freeMemory()这个方法返回的只有一两兆字节,而随着java程序往前运行,创建了不少的对象,freeMemory()这个方法的返回有时候不但没有减少,反而会增加。设置为4,则两个Survivor区与一个Eden区的比值为2:4,一个Survivor区占整个年轻代的1/6。原创 2024-01-02 08:54:51 · 460 阅读 · 0 评论 -
Nginx的stream配置
stream模块一般用于tcp/UDP数据流的代理和负载均衡,可以通过stream模块代理转发TCP消息。也就是说,必须在使用./configure --with-stream编译时添加流模块。流模块的使用方法与http模块相同,语法也基本相同。# 为了让这个配置文件简单一些,将配置stream放入到/etc/nginx/conf.d,并以.stream做后缀名。#stream模块和http模块是并列级别的,所以stream要写在http{}外边。#增加stream配置,开启stream模块。原创 2023-12-11 08:55:30 · 4447 阅读 · 0 评论 -
Linux磁盘不足问题定位及解决
搜索到目标文件被占用的进程,然后kill相应进程即可,如果进程kill之后还在自启动,则输入命令cat /proc/目标进程pid/status找到对应的父进程的pid,然后kill父进程,再kill目标进程,即可释放。:被删除文件可能被某个进程占用,导致状态为deleted,但实际并未释放。第三步:查看哪个目录最大,找到对应文件夹,并逐一进入查找对应大文件。解决方法:第四步前面加上命令sudo给予超级权限即可。第一步:查看哪个挂载目录满了。第四步:删除大文件,释放空间。第二步:切换到对应目录。原创 2023-10-17 15:05:58 · 411 阅读 · 0 评论 -
Frp内网穿透
Frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。服务端运行,监听一个主端口,等待客户端的连接;客户端连接到服务端的主端口,同时告诉服务端要监听的端口和转发类型;服务端fork新的进程监听客户端指定的端口;外网用户连接到客户端指定的端口,服务端通过和客户端的连接将数据转发到客户端;客户端进程再将数据转发到本地服务,从而实现内网对外暴露服务的能力。原创 2023-09-25 09:46:14 · 215 阅读 · 0 评论 -
简述Mysql索引
MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构。索引的本质:索引是数据结构。你可以简单理解为“排好序的快速查找数据结构”,满足特定查找算法。这些数据结构以某种方式指向数据, 这样就可以在这些数据结构的基础上实现高级查找算法。原创 2023-08-07 11:01:05 · 140 阅读 · 0 评论 -
SpringBootAdmin介绍
SpringBootAdmin 是一个非常好用的监控和管理的开源组件,该组件能够将 Actuator 中的信息进行界面化的展示,也可以监控所有 Spring Boot 应用的健康状况,提供实时警报功能。原创 2023-07-30 23:51:16 · 356 阅读 · 1 评论 -
MyBatis-Plus条件查询问题解决
最终定位到用户注册的时候,表中的“exception_flag”字段为null,而生成的校验sql语句为“exception_flag 1”,“”并不包含null的情况,用户注册过过的信息始终查询不到,导致用户可以重复注册。首先排查数据生成时间点不同,相差时间有长有短,不是用户同时多次点击的原因,应该是用户这边不同时间重复多次注册导致的,但是程序中防止重复校验的代码没有生效。系统中有用户注册的功能,但是会出现重复注册的现象,代码中有做过重复校验,但是没有生效。原创 2023-07-16 21:46:45 · 463 阅读 · 0 评论 -
HTTP与HTTPS
超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。原创 2023-07-10 08:57:03 · 1400 阅读 · 0 评论 -
Mybatis-Plus不能更新对象字段为空值问题解决
在实体字段上,如果不通过@TableField注解指定字段的更新策略,字段默认的更新策略是FieldStrategy.DEFAULT,即跟随全局策略。在使用Mybatis-Plus调用updateById方法进行数据更新默认情况下是不能更新空值字段的,而在实际开发过程中,往往会遇到需要将字段值更新为空值的情况,该如何解决呢?如果你不想修改全局的字段更新策略,又需要项目中某个实体的所有字段都支持空值更新,推荐采用该方法。会忽略字段的更新策略,直接对实体中的每一个字段都执行更新操作。注解指定字段的更新策略为。原创 2023-07-03 10:08:00 · 5995 阅读 · 0 评论 -
MySQL空间数据学习
如果 type 的值为 GeometryCollection(几何体集合),那么该对象必须有变量geometries,其值是一个数组,数组的每一项都是一个 GeoJSON 的几何对象。已知二进制(WKB)格式。用已知二进制(WKB)表示的几何值,用于交换二进制流格式的几何数据,用包含几何WKB信息的BLOB值表示。用已知文本(WKT)表示几何值是为用ASCII格式交换几何数据而设计的。GeoJSON 的最外层是一个单独的对象(object)。格式的,只不过对其名称进行了规范,专门用于表示地理信息。原创 2023-06-26 09:02:46 · 706 阅读 · 0 评论