【JAVA】十、基础知识“类和对象”干货分享~(三)
目录
1. 封装
1.1 封装的概念
1.2 访问限定符
public(公开访问)
private(私有访问)
1.3 包
1.3.1 包的概念
1.3.2 导入包中的类
1.3.3 自定义包
2. static成员
2.1 static变量(类变量)
2.1.1 static修饰成员变量
2.2 static方法(类方法)
2.2.1 static修饰成员方法
2.3 static成员变量初始化
3. 代码块
3.1 代码块概念以及分类
3.1.1 普通代码块(少用)
3.1.2 构造代码块(实例代码块)
3.1.3 静态代码块
1. 封装
1.1 封装的概念
在 Java 中,面向对象程序三大特征:封装,继承,多态。而封装是面向对象编程(OOP)的核心概念之一,它的核心思想是将数据(属性)和操作数据的方法(行为)捆绑在一起,并隐藏对象的内部实现细节,仅对外公开可控的访问接口来和对象进行交互。简单来说就是套壳屏蔽细节啦~
并且封装通过限制对对象内部状态的直接访问,提高了代码的安全性、可维护性和灵活性。
1.2 访问限定符
Java 中的访问限定符用于控制类、成员变量、方法和构造方法的可见性,是实现封装的重要机制。共有四种访问修饰符:public、protected、默认、private。在这里博主先介绍public修饰符,再介绍private修饰符,剩下两个修饰符不做过多描述~
-
public
(公开访问)
作用范围:所有类均可访问。
使用的场景:
对外暴露的接口或工具类(如
public class Main
)。常量(如
public static final
)。
public class Animal {public String name; // 任何类都可以访问
}
-
private
(私有访问)
封装性:优先使用 private
,通过公共方法控制访问。
作用范围:仅限于声明它的类内部。
使用场景:
封装类的内部状态(如私有字段)。
单例模式的私有构造方法。
public class Student {private String id; // 仅本类可以访问public String getId() { // 通过公共方法暴露出来return id;}
}
1.3 包
1.3.1 包的概念
在 Java 中,包是一种用于组织类和接口的命名空间机制。它类似于文件系统中的文件夹,里面存有很多文件,主要目的是避免命名冲突、控制访问权限。
为了更好的管理,把多个类收集在一起成为一组,称为软件包。
包有一个很重要的作用:不同包中可以存在相同名称的类,避免类名的冲突。
1.3.2 导入包中的类
下面这一段代码是输出数组的内容,我们通过这段代码来进行导入包中的类的讲解:
// 导入Arrays类(位于java.util包中)
import java.util.Arrays;public class Test3 { // 类名建议首字母大写public static void main(String[] args) {// 创建并初始化一个int数组int[] array = {1, 2, 3};// 使用Arrays类的静态方法toString()转换数组为字符串// 注意:Arrays是类名,Array是Java中的数组关键字,不要混淆System.out.println(Arrays.toString(array));// 输出 [1, 2, 3]}
}
- 导入包
使用 Arrays
类前需导入包:可以使用import语句导入包:
import java.util.Arrays; // 必须添加在代码开头
Arrays.toString(array)
Arrays
是 Java 提供的工具类(位于java.util
包),用于操作数组。toString()
是它的静态方法,功能是将数组元素转换为可读的字符串格式。
System.out.println(Arrays.toString(array))
这行Java代码的作用是将数组 array
的内容转换为字符串并输出到控制台。
如果直接打印数组对象 System.out.println(array)
,输出的是数组的哈希值(如 [I@1b6d3586
),这时候没办法看到实际内容。
使用 Arrays.toString()
后,输出的是直观的数组元素[1, 2, 3]
。
我们也可以使用import static
导入包中的静态的方法和字段,后续代码中可以直接使用静态成员,无需通过类名调用。
// 使用静态导入:导入Arrays类中的toString方法
// 使得可以直接调用toString()而无需写类名Arrays
import static java.util.Arrays.toString;public class test3 {public static void main(String[] args) {// 定义一个int数组int[] array = {1, 2, 3};// 直接调用静态导入的toString方法,等价于Arrays.toString(array)System.out.println(toString(array));//输出[1, 2, 3]}
}
1.3.3 自定义包
选中src,右键点击 src
目录,点击New(新建),再点击Package(软件包),创名字(名字全小写),最后就创建好了包。
2. static成员
在之前的博客中我们举了学生类来进行相关知识点讲解,现在同样我们再用学生类举例:
上述三者都是成员变量。成员变量定义在方法的外部,类的内部。其中schoolName用static修饰之后,就不存在于对象当中了,而存在于方法区当中。
所有学生共享学校名称:每个学生对象都有自己的 name
和 age
,但 schoolName
是所有学生共享的。修改一次,所有对象看到的都会变化。
直接通过类名访问:例如 Student.schoolName
2.1 static变量(类变量)
2.1.1 static修饰成员变量
用
static
修饰的成员属于类本身(schoolName被static修饰)所有对象共享同一个static变量
示例中的
schoolName
被所有Student对象共享静态成员变量访问方式:
类名.变量名
(而非静态成员变量属于对象,访问方式是:引用.变量名)
静态成员变量不依赖于对象,不用实例化都可以
2.2 static方法(类方法)
2.2.1 static修饰成员方法
- ②静态成员方法中,使用时也是不依赖于对象的
②静态成员方法无需实例化:可通过
类名.方法名()
直接调用
changeSchool()
通过类名调用(如Student.changeSchool("希望中学")
),修改所有学生共享的schoolName
- 在②静态成员方法里面,不能 直接 调用①非静态成员方法或成员变量,在
changeSchool()
中尝试访问name
或age
会报错,因为static 方法中没有this
引用
若是一定要在静态成员方法里调用的话,一定要通过对象的引用来调用!即:
完整代码如下:
public class Student {// 实例变量 - 每个学生对象独有的属性String name; // 学生姓名int age; // 学生年龄// static成员 - 属于类本身的属性(所有对象共享)static String schoolName = "阳光中学"; // 学校名称(所有学生相同)// 构造方法public Student(String name, int age) {this.name = name;this.age = age;}// 实例方法 - 需要创建对象后才能调用void showInfo() {System.out.println(name + "," + age + "岁,就读于" + schoolName);}// static方法 - 通过类名直接调用static void changeSchool(String newName) {schoolName = newName; // 修改所有学生共享的学校名称}
}// 测试类
public class Main {public static void main(String[] args) {// 访问static变量(不需要创建对象)System.out.println("当前学校:" + Student.schoolName);// 创建两个学生对象Student s1 = new Student("张三", 15);Student s2 = new Student("李四", 16);// 调用实例方法s1.showInfo(); // 张三,15岁,就读于阳光中学s2.showInfo(); // 李四,16岁,就读于阳光中学// 通过类名调用static方法修改学校名称Student.changeSchool("希望中学");System.out.println("\n修改后的学校信息:");s1.showInfo(); // 张三,15岁,就读于希望中学s2.showInfo(); // 李四,16岁,就读于希望中学// 再次直接访问static变量System.out.println("当前学校:" + Student.schoolName);}
}
2.3 static成员变量初始化
静态成员变量一般不会放在构造方法中初始化,构造方法里面初始化的是与对象相关的实例属性。
初始化方式分为两种:就地初始化和静态代码块初始化
就地初始化在定义时直接给出初始值:
static String schoolName = "阳光中学"; // 最常用的初始化方式
静态初始化我们在后面进行介绍
3. 代码块
3.1 代码块概念以及分类
如图,使用{ }定义的一段代码称为代码块。 可以分为四类:
- 普通代码块 构造块 静态块 同步代码块
3.1.1 普通代码块(少用)
- 在方法内部用
{ }
包裹的代码块
void showInfo() {{ // 普通代码块开始int temp = 10;System.out.println("变量是:" + temp);} // temp变量在这里被销毁// System.out.println(temp); // 这里会报错,temp已经不可用啦
}
3.1.2 构造代码块(实例代码块)
- 类中直接使用
{ }
包裹的代码块(不加修饰符)。也叫做实例代码块,构造代码块一般用于初始化实例成员变量,这个代码块在方法的外面,类的里面。 - 每次创建对象时自动执行,且在构造方法之前
public class Student {// 实例变量String name;int age;// ---------- 构造代码块 ----------{// 这个代码块会在每次创建对象的时候执行System.out.println("执行构造代码块");age = 10; // 为所有学生设置默认年龄10}// -----------------------------// 构造方法public Student(String name, int age) {System.out.println("执行构造方法");this.name = name;this.age = age; // 会覆盖构造代码块中的默认值}
}
3.1.3 静态代码块
- 使用
static { }
包裹的代码块称为静态代码块。一般用于初始化静态成员变量。 - 类首次加载时执行,且仅仅执行一次
public class Student {static String schoolName;// 静态代码块static {System.out.println("静态代码块啦~");schoolName = "希望中学";}}
静态代码块只会执行一次,只要类被加载,就会被执行,而实例代码块一定是实例化对象的时候被执行。
若是三者都存在时,执行顺序:①静态代码块 ②实例代码块 ③不带参数的构造方法。
希望能帮到友友们的学习~
制作不易,更多内容加载中~感谢友友们的点赞收藏关注~~
如有问题欢迎批评指正,祝友友们生活愉快,学习工作顺顺利利!
相关文章:
【JAVA】十、基础知识“类和对象”干货分享~(三)
目录 1. 封装 1.1 封装的概念 1.2 访问限定符 public(公开访问) private(私有访问) 1.3 包 1.3.1 包的概念 1.3.2 导入包中的类 1.3.3 自定义包 2. static成员 2.1 static变量(类变量) 2.1.1 sta…...
Open GL ES -> SurfaceView + 自定义EGL实现OpenGL渲染框架
SurfaceView 自定义EGL实现OpenGL渲染 在Android开发中,当需要灵活控制OpenGL渲染或在多个Surface间共享EGL上下文时,自定义EGL环境是必要的选择 核心实现流程 -------------------- -------------------- -------------------- | 1. 创建Su…...
Solidity入门实战—web3
项目介绍 在这个项目中,我们建立一个小型智能合约应用,他允许用户向合约地址捐赠,允许合约所有者从合约中提取余额;并且还设定了捐赠的金额门槛;针对直接对地址进行的捐赠行为,我们也予以记录 源代码 ht…...
Open Scene Graph动画系统
OSG 提供了强大的动画功能,支持多种动画实现方式,从简单的变换动画到复杂的骨骼动画。以下是 OSG 动画系统的全面介绍: 1. 基本动画类型 1.1 变换动画 (Transform Animation) // 创建动画路径 osg::AnimationPath* createAnimationPath(co…...
无需libpacp库,BPF指令高效捕获指定数据包
【环境】无libpacp库的Linux服务器 【要求】高效率读取数据包,并过滤指定端口和ip 目前遇到两个问题 一是手写BPF,难以兼容,有些无法正常过滤二是性能消耗问题,尽可能控制到1% 大方向:过滤数据包要在内核层处理&…...
重回全面发展亲自操刀
项目场景: 今年工作变动,优化后在一家做国有项目的私人公司安顿下来了。公司环境不如以前,但是好在瑞欣依然可以每天方便的买到。人文氛围挺好,就是工时感觉有点紧,可能长期从事产品迭代开发,一下子转变做项…...
DimensionX
旨在通过可控的视频扩散模型从单张图像生成高质量的3D和4D场景。 1. 背景与问题 3D和4D生成的目标 3D生成:从单张或多张2D图像中重建出三维场景或物体,包含空间信息(长、宽、高)。4D生成:在3D的基础上加入时间维度&a…...
2025年04月08日Github流行趋势
项目名称:markitdown 项目地址url:https://github.com/microsoft/markitdown项目语言:Python历史star数:44895今日star数:1039项目维护者:afourney, gagb, sugatoray, PetrAPConsulting, l-lumin项目简介&a…...
数据结构与算法-数学-容斥原理,高斯消元解线性方程组
容斥原理 容斥原理用于计算多个集合的并集元素个数,公式为 ∣A1∪A2∪⋯∪An∣∑i1n∣Ai∣−∑1≤i<j≤n∣Ai∩Aj∣∑1≤i<j<k≤n∣Ai∩Aj∩Ak∣−⋯(−1)n−1∣A1∩A2∩⋯∩An∣ 举一个例题: 给定一个整数 nn 和 mm 个不同的质数 p1,p2,…,p…...
告别运动控制不同步:某车企用异构PLC实现99.98%焊接合格率
在长三角某新能源汽车电池工厂,工程师们正面临棘手的生产难题:随着产线速度提升到每分钟12个电芯,原有PLC系统开始频繁出现运动控制不同步现象。这直接导致极片焊接合格率从99.2%骤降至94.7%,每条产线日均损失超23万元。这个场景折…...
BetaFlight参数配置解读
BetaFlight参数配置解读 📌相关篇《Betaflight固件编译和烧录说明》🥕各型号已编译好的配置文件资源(.config):https://github.com/betaflight/unified-targets/tree/master/configs/default🌿各型号配置头…...
PowerBI累计分析
累计分析 累计分析主要有三种:年初至今(YTD)、季初至今(QTD)、月初至今(MTD)。DAX中计算累计的函数有两类:一类是datesytd、datesqtd、datesmtd,该类返回一个单列日期表…...
最新 OpenHarmony 系统一二级目录整理
我们在学习 OpenHarmony 的时候,如果对系统的目录结构了解,那么无疑会提升自己对 OpenHarmony 更深层次的认识。 于是就有了今天的整理。 首先在此之前,我们要获取源码 获取源码的方式 OpenHarmony 主干代码获取 方式一(推荐&am…...
多模态大语言模型arxiv论文略读(七)
MLLM-DataEngine: An Iterative Refinement Approach for MLLM ➡️ 论文标题:MLLM-DataEngine: An Iterative Refinement Approach for MLLM ➡️ 论文作者:Zhiyuan Zhao, Linke Ouyang, Bin Wang, Siyuan Huang, Pan Zhang, Xiaoyi Dong, Jiaqi Wang,…...
STM32单片机入门学习——第27节: [9-3] USART串口发送串口发送+接收
写这个文章是用来学习的,记录一下我的学习过程。希望我能一直坚持下去,我只是一个小白,只是想好好学习,我知道这会很难,但我还是想去做! 本文写于:2025.04.08 STM32开发板学习——第27节: [9-3] USART串口发送&串口发送接收 前言开发板说…...
【元表 vs 元方法】
元表 vs 元方法 —— 就像“魔法书”和“咒语”的关系 1. 元表(Metatable):魔法书 是什么? 元表是一本**“规则说明书”**,它本身是一个普通的 Lua 表,但可以绑定到其他表上,用来定义这个表应该…...
小型园区网实验
划分VLAN SW3 [sw3]vlan batch 2 3 20 30 [sw3]interface GigabitEthernet 0/0/1 [sw3-GigabitEthernet0/0/1]port link-type access [sw3-GigabitEthernet0/0/1]port default vlan 2 [sw3-GigabitEthernet0/0/1]int g0/0/2 [sw3-GigabitEthernet0/0/2]port link-type acces…...
python 数组append数组
在Python中,可以通过多种方式将一个数组(列表)添加到另一个数组(列表)中。以下是几种常见的方法: 1. 使用 append() 方法 append() 方法将一个数组作为整体添加到另一个数组的末尾。 list1 [1, 2, 3] l…...
从0到1:STM32 RTC定时器配置全流程
1. 什么是RTC? RTC(Real-Time Clock) 是嵌入式系统中用于提供独立计时功能的硬件模块,具有以下特点: 独立于主系统时钟(即使MCU进入低功耗模式仍可运行)提供日历功能(年/月/日/时/…...
(学习总结33)Linux Ext2 文件系统与软硬链接
Linux Ext2 文件系统与软硬链接 理解硬件磁盘、服务器、机柜、机房磁盘物理结构磁盘的逻辑结构实际过程 CHS 与 LBA 地址转换 引入文件系统引入 " 块 " 概念引入 " 分区 " 概念引入 " inode " 概念 ext2 文件系统宏观认识Block Group 块组与其内…...
LeetCode算法题(Go语言实现)_36
题目 给定一个二叉树的根节点 root ,和一个整数 targetSum ,求该二叉树里节点值之和等于 targetSum 的 路径 的数目。 路径 不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点…...
牛客华为机试--HJ48 从单向链表中删除指定值的节点C++
题目描述 示例1 示例2 该题的核心是每来一组数据,都要从头开始找,找到数据后再插入。而不是直接在尾部插入数据。 上代码 #include <iostream> using namespace std;struct ListNode {int val;ListNode *next;ListNode(int x) : val(x), next(nu…...
Jmeter 插件【性能测试监控搭建】
1. 安装Plugins Manager 1.1 下载路径: Install :: JMeter-Plugins.org 1.2 放在lib/ext目录下 1.3 重启Jmeter,会在菜单-选项下多一个 Plugins Manager菜单,打开即可对插件进行安装、升级。 2. 客户端(Jmeter端) 2.1 安装plugins manager…...
从攻防演练到AI防护:网络安全服务厂商F5的全方位安全策略
随着AI和云原生技术的蓬勃兴起,多云架构的广泛采用,企业内部IT系统正经历着翻天覆地的变化。在这个转型期,传统的攻击手段和防守策略正面临着巨大的挑战。基于此,用户需要跳出传统的思维模式,采取新的视角,…...
【Introduction to Reinforcement Learning】翻译解读5
4 核心算法 我们将算法分为三类:基于价值的方法、基于策略的方法和混合算法。 4.1 基于价值的方法Value-based 一个重要的突破是Q-learning的引入,它是一种无模型算法,被视为off-policy时间差分(TD)学习。TD学习无疑…...
Jmeter中的bzm-concurrency thread group 与普通线程组的区别
在 JMeter 中,bzm - Concurrency Thread Group(由 BlazeMeter 提供)和标准的 Thread Group 是两种不同的线程组实现,主要区别在于 并发控制模型 和 负载调节方式。以下是详细对比: 1. 核心区别 特性bzm - Concurrency Thread Group标准 Thread Group负载模型基于并发数(C…...
VBA将Word文档内容逐行写入Excel
如果你需要将Word文档的内容导入Excel工作表来进行数据加工,使用下面的代码可以实现: Sub ImportWordToExcel()Dim wordApp As Word.ApplicationDim wordDoc As Word.DocumentDim excelSheet As WorksheetDim filePath As VariantDim i As LongDim para…...
ubuntu22部署 3d-tiles-tools
安装fnm curl -fsSL https://fnm.vercel.app/install | bash安装nodejs 20.17.0LTS版本 https://nodejs.org/zh-cn/download/package-manager安装依赖包 # Download and install nvm: curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.2/install.sh | bash# in…...
WebStrom关闭模板字符串自动转换
WebStrom关闭模板字符串自动转换 Editor > General > smart Keys > JavaScript > Automatically replace string literal with template string on typing "${"...
【零基础入门unity游戏开发——动画篇】新动画Animator的使用 —— AnimatorController和Animator的使用
考虑到每个人基础可能不一样,且并不是所有人都有同时做2D、3D开发的需求,所以我把 【零基础入门unity游戏开发】 分为成了C#篇、unity通用篇、unity3D篇、unity2D篇。 【C#篇】:主要讲解C#的基础语法,包括变量、数据类型、运算符、…...
npx vite 可以成功运行,但 npm run dev 仍然报错 Missing script: “dev“
npx vite 可以成功运行,但 npm run dev 仍然报错 Missing script: "dev",说明问题可能出在 npm 的脚本解析 或 项目配置 上。以下是具体解决方案: 1. 检查 package.json 的物理位置 可能原因: 你当前运行的目录下可能有一个 无效的 package.json,而真正的 packa…...
Java 泛型的逆变与协变:深入理解类型安全与灵活性
泛型是 Java 中强大的特性之一,它提供了类型安全的集合操作。然而,泛型的类型关系(如逆变与协变)常常让人感到困惑。 本文将深入探讨 Java 泛型中的逆变与协变,帮助你更好地理解其原理和应用场景。 一、什么是协变与…...
C语言核心知识点整理:结构体对齐、预处理、文件操作与Makefile
目录 结构体的字节对齐预处理指令详解文件操作基础Makefile自动化构建总结 1. 结构体的字节对齐 字节对齐原理 内存对齐:CPU访问内存时,对齐的地址能提高效率。操作系统要求变量按类型大小对齐。对齐规则: 每个成员的起始地址必须是min(成…...
深度学习|注意力机制
一、注意力提示 随意:跟随主观意识,也就是指有意识。 注意力机制:考虑“随意线索”,有一个注意力池化层,将会最终选择考虑到“随意线索”的那个值 二、注意力汇聚 这一部分也就是讲第一大点中“注意力汇聚”那个池化…...
特权FPGA之乘法器
完整代码如下: timescale 1ns / 1ps// Company: // Engineer: // // Create Date: 23:08:36 04/21/08 // Design Name: // Module Name: mux_16bit // Project Name: // Target Device: // Tool versions: // Description: // // Dependencies: …...
安全的企业局域网聊天工具哪个好用?
在当今数字化时代,企业对于局域网聊天工具的需求日益增长,尤其是在对数据安全和定制化服务有较高要求的大中型政企单位中。安全的企业局域网聊天工具哪个好用?虽然市面上有很多即时通讯软件,今天来介绍一下已经拥有十年行业经验的…...
如何应对客户频繁变更需求
如何应对客户频繁变更需求?要点包括: 快速响应、深入沟通、灵活规划、过程记录、风险管控。这些策略既能降低项目失控风险,也能帮助团队在变动环境中保持高效率。其中深入沟通尤为关键,它不仅能够让团队第一时间了解客户意图&…...
R语言进行聚类分析
目录 简述6种系统聚类法 实验实例和数据资料: 上机实验步骤: 进行最短距离聚类: 进行最长距离聚类: 进行中间距离聚类: 进行类平均法聚类: 进行重心法聚类: 进行ward.D聚类:…...
1.6-抓包技术(Burp Suite\Yakit抓包\Web、APP、小程序)
1.6-抓包技术(Burp Suite\Yakit抓包\Web、APP、小程序) 如果要使用抓包软件,基本上第一步都是要安装证书的。原因如下: 客户端(浏览器或应用)会检测到证书不受信任,并弹出 证书错误࿰…...
DAPP实战篇:使用web3.js连接合约
说明 本系列内容目录:专栏:区块链入门到放弃查看目录 如果你还没有创建好项目请先查看:《DApp实战篇:先用前端起个项目》,如果你还不知道web3.js是什么请先查看:《DApp实战篇:前端技术栈一览》。 安装 点此查看web3.js官方文档 打开项目根目录,并唤起终端: 键入w…...
用 Python 构建一个简单的本地视频流媒体服务器
你是否曾经想过在本地网络上轻松地将电脑上的视频分享给手机或平板电脑观看?也许你下载了一部电影,想在客厅的智能电视上播放,却不想费力地拷贝文件。今天,我们将深入分析一个 Python 脚本,它使用 wxPython 创建图形用…...
汇丰xxx
1. Spring Boot 的了解,解决什么问题? 我的理解: Spring Boot 是一个基于 Spring 框架的快速开发脚手架,它简化了 Spring 应用的初始搭建和开发过程。解决的问题: 简化配置: 传统的 Spring 应用需要大量的…...
ruby基础语法
以下是 Ruby 基础语法的简明总结,适合快速入门: 一、变量与常量 局部变量 小写字母或下划线开头,作用域为当前代码块。 name "Alice" _age 20实例变量 以 开头,属于对象实例。 name "Bob"类变量 以 开头…...
智体OS-V3.1版:新增了rt-datalink底层数据链通讯,实现【无网络】本机使用
##智体OS-V3.1版本发布 更新简介 dtns.os智体OS-V3.1版:新增了rt-datalink底层数据链通讯(使用本地局域网的websocket端口通讯),解决了本机【无网络】正常使用的问题。 更新内容 dtns.connector支持使用新的rt-datalink与智体…...
Windows系统安装Git以及Git常用命令介绍
本文主要介绍Windows系统安装Git的方法,以及Git常用命令介绍。 一、下载Git 官网: Git - Downloads (git-scm.com) 根据自己的系统选择 我的是64位的Windows系统,选择对应的安装包,点击后开始下载 等待下载完成 二、安装Git 双…...
HTML 开发者的智能助手:通义灵码在 VSCode 中的应用
引言 在 HTML 开发领域,提高编码效率和质量是每位开发者追求的目标。通义灵码,作为一款由阿里云技术团队开发的智能编码助手,能够通过其强大的 AI 能力,为 HTML 开发者提供包括代码自动补全、智能注释、代码优化等多方面的支持。…...
MySQL随机获取记录之方法(The Method of Randomly Obtaining Records in MySQL)
MySQL中如何随机获取一条记录 随机获取一条记录是在数据库查询中常见的需求,特别在需要展示随机内容或者随机推荐的场景下。在 MySQL 中,有多种方法可以实现随机获取一条记录,每种方法都有其适用的情况和性能特点。在本文中,我们将…...
ngx_core_module 的 create_conf
Ubuntu 下 nginx-1.24.0 源码分析 - ngx_core_module-CSDN博客 定义在 src\core\nginx.c ngx_module_t ngx_core_module {NGX_MODULE_V1,&ngx_core_module_ctx, /* module context */ngx_core_commands, /* module directives */…...
41--华为IPSec主备链路实验:当加密隧道遇上“双保险“
🚦 华为IPSec主备链路实验:当加密隧道遇上"双保险" “如果你的IPSec隧道只有一条路,那就像走钢丝不系安全带——刺激但危险!” —— 本文将用华为设备打造主备双加密通道,结合IP-link智能检测,让…...
Reactive编程框架与工具
文章目录 6.2 后端 Reactive 框架6.2.1 Spring WebFlux核心架构核心组件实际应用高级特性性能优化适用场景与限制 6.2.2 Akka(Actor模型)Actor模型基础基本用法高级特性响应式特性实现性能优化实际应用场景优势与挑战 6.2.3 Vert.x(事件驱动&…...