【Java 类】001-访问修饰符、命名规范
【Java 类】001-访问修饰符、命名规范
文章目录
- 【Java 类】001-访问修饰符、命名规范
- 一、访问修饰符概述
- 1、是什么
- 2、作用
- 作用
- 问题
- 3、访问修饰符有哪些
- 4、作用对象
- 二、访问修饰符使用演示
- 1、类访问修饰符演示
- 第一步:创建 `Dog` 类:public
- 第二步:同包下创建 `Cat` 类:default
- 第三步:在 `domain` 包下创建 `Pig` 类:default
- 第四步:创建 `Main` 类
- 第五步:查看提示 `Pig` 类无法访问
- 2、方法访问修饰符访问
- 第一步:创建 `Dog` 类
- 第二步:在同包下创建 `Main` 类
- 第三步:在不同包下创建 `Main` 方法
- 第四步:在不同包下创建 `DogSon` 类
- 第五步:演示 `private` 方法本类可访问
- 3、属性访问修饰符演示
- 第一步:创建 `Dog` 类
- 第二步:在同包下创建 `Main` 类
- 第三步:在不同包下创建 `Main` 类
- 第四步:在不同包下创建 `DogSon` 类
- 第五步:演示 `private` 属性本类而可访问
- 扩展:Java 中为什么子类的 `main` 方法中通过父类对象的实例访问 `protected` 方法报错?
- 扩展:Java 中为何同类下的 `main` 方法可以直接通过当前类对象访问 `private` 属性?
- 三、包命名规范
- 四、类命名规范
- 五、变量命名规范
- 六、常量命名规范
- 七、方法命名规范
- 八、泛型命名规范
一、访问修饰符概述
1、是什么
Java访问修饰符是一种关键字,用来控制类、方法和变量的访问权限。
2、作用
作用
-
封装性:访问修饰符可以用来限制其他类对于某个类、方法或变量的访问,从而保护类的数据安全性,实现类的封装。
Java 面向对象的封装性就依赖访问修饰符来实现!
-
可读性:访问修饰符可以用来表明类、方法或变量的访问范围,使代码更易于理解和维护。
我对这种可读性的理解是对于访问范围进行了直接标明!
-
重用性:访问修饰符可以用来控制子类对于父类中属性和方法的访问,从而实现代码的重用。
我觉得更多的,访问修饰符对这方面提供了灵活的控制!我觉得子类继承父类最大的目的就是为了代码复用,访问修饰符提供了灵活的控制!
-
可维护性:访问修饰符可以用来限制对于某个类、方法或变量的访问,从而使得修改代码更加容易,不会影响其他部分的代码。
访问修饰符限制了可访问范围,代码修改带来的影响也是在一定范围内的!
-
**安全性:**访问修饰符可以用来限制对于某个类、方法或变量的访问,从而提高程序的安全性,防止恶意操作或者不合理的访问。
限制的大多数目的就是为了安全!凡是容易造成安全问题的行为都应该得到限制!目标 => 策略 => 规则(限制)!
总之,Java访问修饰符可以用来控制程序中各个部分的访问范围,从而实现类的封装,增强程序的可读性、重用性、可维护性和安全性。
问题
访问修饰符并不是只有优点,也会带来一些问题!如带来了程序设计的复杂性,垂直和水平方向的访问限制设置提高了对软件开发人员的要求,如果访问修饰符使用不当,会导致代码的可读性大大降低,提高了系统的复杂性!访问修饰符设置得当的时候,往往带来很多好处,但如果设置不当便适得其反!
3、访问修饰符有哪些
Java中有四种访问修饰符,它们分别是:
- public(公共的):被声明为
public
的类、方法和变量可以被任何其他类访问。 - protected(受保护的):被声明为
protected
的方法和变量只能被同一包内的其他类访问,或者是其他包中的子类访问。 - default(默认的):如果没有指定任何访问修饰符,则默认为
default
,被声明为default的方法和变量只能被同一包内的其他类访问。 - private(私有的):被声明为
private
的方法和变量只能被同一类内部的其他方法访问,不能被其他类访问。
4、作用对象
Java访问修饰符可以用于以下三个对象:
- 类:Java 中的类可以使用
public
和默认
的访问修饰符。如果使用public
访问修饰符,这个类将被其他任何类所访问。如果使用默认
的访问修饰符,则只能在同一包内的其他类中访问这个类。 - 方法:Java 中的方法可以使用
public
、protected
、private
和默认
的访问修饰符。如果使用public
访问修饰符,这个方法将被其他任何类所访问。如果使用protected
访问修饰符,这个方法将被同一包中的其他类和其他包中的子类所访问。如果使用private
访问修饰符,这个方法只能在同一类中访问。如果使用默认
的访问修饰符,则只能在同一包中的其他类中访问这个方法。 - 变量:Java 中的变量可以使用
public
、protected
、private
和默认
的访问修饰符。如果使用public
访问修饰符,这个变量将被其他任何类所访问。如果使用protected
访问修饰符,这个变量将被同一包中的其他类和其他包中的子类所访问。如果使用private
访问修饰符,这个变量只能在同一类中访问。如果使用默认
的访问修饰符,则只能在同一包中的其他类中访问这个变量。
在实际开发中,访问修饰符的选择应该根据具体的需求和业务逻辑,合理地使用访问修饰符,避免过度使用访问修饰符,降低代码的可读性和灵活性。同时,需要保持代码的简洁和清晰,避免过度的复杂性和实现细节的暴露。
二、访问修饰符使用演示
1、类访问修饰符演示
第一步:创建 Dog
类:public
package main;/*** @author zibo* @date 2023/3/5 12:05* @slogan 真正的大师永远怀着一颗学徒的心。——易大师*/
public class Dog {}
第二步:同包下创建 Cat
类:default
package main;/*** @author zibo* @date 2023/3/5 12:07* @slogan 真正的大师永远怀着一颗学徒的心。——易大师*/
class Cat {}
第三步:在 domain
包下创建 Pig
类:default
package domain;/*** @author zibo* @date 2023/3/5 12:11* @slogan 真正的大师永远怀着一颗学徒的心。——易大师*/
class Pig {}
第四步:创建 Main
类
package main;import domain.Pig;/*** @author zibo* @date 2023/3/5 12:06* @slogan 真正的大师永远怀着一颗学徒的心。——易大师*/
public class Main {public static void main(String[] args) {// public 修饰的类,可以在任何地方被访问Dog dog = new Dog();// default 修饰的类,只能在同一个包中被访问Cat cat = new Cat();// default 修饰的类,只能在同一个包中被访问new Pig();}
}
第五步:查看提示 Pig
类无法访问
2、方法访问修饰符访问
第一步:创建 Dog
类
package main;/*** @author zibo* @date 2023/3/5 12:16* @slogan 真正的大师永远怀着一颗学徒的心。——易大师*/
public class Dog {/*** public 方法:可以被任何类访问*/public void publicMethod() {System.out.println("publicMethod");}/*** protected 方法:可以被同一个包下的类访问,也可以被不同包下的子类访问*/protected void protectedMethod() {System.out.println("protectedMethod");}/*** default 方法:可以被同一个包下的类访问*/void defaultMethod() {System.out.println("defaultMethod");}/*** private 方法:只能被本类访问*/private void privateMethod() {System.out.println("privateMethod");}}
第二步:在同包下创建 Main
类
package main;/*** @author zibo* @date 2023/3/5 12:06* @slogan 真正的大师永远怀着一颗学徒的心。——易大师*/
public class Main {public static void main(String[] args) {Dog dog = new Dog();dog.publicMethod();dog.protectedMethod();dog.defaultMethod();dog.privateMethod(); // 私有方法报错}
}
私有方法报错
第三步:在不同包下创建 Main
方法
package test;import main.Dog;/*** @author zibo* @date 2023/3/5 12:18* @slogan 真正的大师永远怀着一颗学徒的心。——易大师*/
public class Main {public static void main(String[] args) {Dog dog = new Dog();dog.publicMethod();dog.protectedMethod(); // 不同包下的非子类访问报错dog.defaultMethod(); // 不同包下的类访问报错dog.privateMethod(); // 私有方法报错}}
错误提示
第四步:在不同包下创建 DogSon
类
package test;import main.Dog;/*** @author zibo* @date 2023/3/5 12:22* @slogan 真正的大师永远怀着一颗学徒的心。——易大师*/
public class DogSon extends Dog {/*** 子类访问父类的 public 方法*/public void testPublicMethod() {publicMethod();}/*** 子类可以访问父类的 protected 方法*/public void testProtectedMethod() {protectedMethod();}/*** 子类不能访问父类的 default 方法*/public void testDefaultMethod() {defaultMethod(); // 报错}/*** 子类不能访问父类的 private 方法*/public void testPrivateMethod() {privateMethod(); // 报错}}
错误提示
第五步:演示 private
方法本类可访问
package main;/*** @author zibo* @date 2023/3/5 12:30* @slogan 真正的大师永远怀着一颗学徒的心。——易大师*/
public class Dog {/*** private 方法:只能被本类访问*/private void privateMethod() {System.out.println("privateMethod");}public static void main(String[] args) {Dog dog = new Dog();dog.privateMethod();}}
3、属性访问修饰符演示
第一步:创建 Dog
类
package main;/*** @author zibo* @date 2023/3/5 12:31* @slogan 真正的大师永远怀着一颗学徒的心。——易大师*/
public class Dog {/*** public 变量:可以被任何类访问*/public String publicVariable = "publicVariable";/*** protected 变量:可以被同一个包下的类访问,也可以被不同包下的子类访问*/protected String protectedVariable = "protectedVariable";/*** default 变量:可以被同一个包下的类访问*/String defaultVariable = "defaultVariable";/*** private 变量:只能被本类访问*/private String privateVariable = "privateVariable";}
第二步:在同包下创建 Main
类
package main;/*** @author zibo* @date 2023/3/5 12:35* @slogan 真正的大师永远怀着一颗学徒的心。——易大师*/
public class Main {public static void main(String[] args) {Dog dog = new Dog();System.out.println(dog.publicVariable);System.out.println(dog.protectedVariable);System.out.println(dog.defaultVariable);System.out.println(dog.privateVariable); // 报错}
}
错误提示
第三步:在不同包下创建 Main
类
package test;import main.Dog;/*** @author zibo* @date 2023/3/5 12:18* @slogan 真正的大师永远怀着一颗学徒的心。——易大师*/
public class Main {public static void main(String[] args) {Dog dog = new Dog();System.out.println(dog.publicVariable);System.out.println(dog.protectedVariable); // 报错System.out.println(dog.defaultVariable); // 报错System.out.println(dog.privateVariable); // 报错}}
错误提示
第四步:在不同包下创建 DogSon
类
package test;import main.Dog;/*** @author zibo* @date 2023/3/5 12:22* @slogan 真正的大师永远怀着一颗学徒的心。——易大师*/
public class DogSon extends Dog {/*** 子类访问父类的 public 属性*/public void testPublicProperty() {System.out.println(publicVariable);}/*** 子类可以访问父类的 protected 属性*/public void testProtectedProperty() {System.out.println(protectedVariable);}/*** 子类访问父类的 default 属性*/public void testDefaultProperty() {System.out.println(defaultVariable); // 报错}/*** 子类不能访问父类的 private 属性*/public void testPrivateProperty() {System.out.println(privateVariable); // 报错}public void myPrint(String[] args) {System.out.println(protectedVariable); // 这种可以!Dog dog = new Dog();System.out.println(dog.publicVariable);System.out.println(dog.protectedVariable); // 报错:注意这种方式是不行的System.out.println(dog.defaultVariable); // 报错System.out.println(dog.privateVariable); // 报错}}
第五步:演示 private
属性本类而可访问
package main;/*** @author zibo* @date 2023/3/5 13:07* @slogan 真正的大师永远怀着一颗学徒的心。——易大师*/
public class Dog {/*** private 变量:只能被本类访问*/private String privateVariable = "privateVariable";public static void main(String[] args) {Dog dog = new Dog();System.out.println(dog.privateVariable); // 这里可以访问,和 protected 在非同包子类不同}}
扩展:Java 中为什么子类的 main
方法中通过父类对象的实例访问 protected
方法报错?
在 Java 中,protected
修饰符用于限制只有同包下其他类和其子类可以访问该成员变量或方法。因此,如果你在子类的 main
方法中通过父类对象的实例访问 protected
方法,会出现编译错误。这是因为子类虽然继承了父类的 protected 方法,但是并不能通过父类对象的实例来直接访问该方法。
要访问父类的 protected
方法,可以在子类中创建一个方法来调用该方法。例如,可以在子类中创建一个公共方法,该方法通过 super
关键字调用父类的 protected
方法,然后从 main
方法中调用该公共方法。以下是示例代码:
public class Parent {protected void myMethod() {System.out.println("This is a protected method");}
}public class Child extends Parent {public void callProtectedMethod() {super.myMethod();}public static void main(String[] args) {Child child = new Child();child.callProtectedMethod();}
}
在上面的示例中,Child
类继承了 Parent
类的 protected
方法 myMethod()
,并创建了一个公共方法 callProtectedMethod()
,该方法通过super关键字调用了父类的 myMethod()
方法。然后在 main
方法中,创建 Child
类的对象 child
,并通过调用 callProtectedMethod()
方法来访问父类的 protected
方法。
扩展:Java 中为何同类下的 main
方法可以直接通过当前类对象访问 private
属性?
这是因为 Java 中的访问控制是基于类而不是基于对象的。私有属性被声明为 private
后,只有该类的其他方法可以访问它,而其他类的对象无法直接访问该属性。但是,由于 main
方法和其他方法都属于同一个类,因此它们都可以直接访问该类的私有属性。
package main;/*** @author zibo* @date 2023/3/5 13:22* @slogan 真正的大师永远怀着一颗学徒的心。——易大师*/
public class Dog {private static String privateStaticVariable = "privateStaticVariable";private String privateVariable = "privateVariable";public String publicVariable = "publicVariable";/*** 普通方法访问 private 变量*/public void myPrint() {System.out.println(privateStaticVariable);System.out.println(privateVariable);System.out.println(publicVariable);System.out.println(new Dog().privateVariable);}/*** 静态方法访问 private 变量*/public static void myStaticPrint() {System.out.println(privateStaticVariable);System.out.println(privateVariable); // 报错,静态方法不能访问非静态变量System.out.println(publicVariable); // 报错,静态方法不能访问非静态变量// 私有方法,只能在本类中访问,静态方法中不能访问非静态变量// 所以不能访问,但是可以通过对象访问,另外静态方法是可以直接访问本类的静态属性的System.out.println(new Dog().privateVariable); // 正常,私有普通属性是属于对象的,所以可通过对象访问System.out.println(new Dog().publicVariable); // 正常,私有普通属性是属于对象的,所以可通过对象访问}}
三、包命名规范
- 包名应该全部小写。
- 包名应该基于逆域名命名,例如,一个公司的域名为
example.com
,则该公司编写的 Java 代码的根包名应该是com.example
。 - 包名应该简短而有意义,能够反映出包中包含的类的功能。
- 如果一个包名由多个单词组成,单词之间都应该都点
.
隔开,例如:com.example.myapp
。 - 不要在包名中使用下划线或其他特殊字符,因为这可能会导致一些问题。
四、类命名规范
- 类名应该以大写字母开头,采用驼峰式命名规则,例如:
MyClass
,而不是myClass
或MYCLASS
。 - 类名应该是名词,而不是动词。
- 类名应该简明扼要地描述类的职责和功能,同时尽量避免使用缩写。
- 如果一个类名由多个单词组成,每个单词的首字母都应该大写,例如:
MyFirstClass
。 - 接口名也应该采用相同的规范,以便于与类名进行区分,例如:
MyInterface
。 - 抽象类的命名应该以
Abstract
开头,例如:AbstractClass
。 - 子类:如果一个类是某个类的子类,应该在父类名后面加上一个单词来描述它的特定功能,例如:
MySubClass
。 - 接口实现类:应该在类名后面加上
Impl
,例如:MyClassImpl
。 - 异常类:为了和普通类做出区别,一般以 “
Exceptiont
” 作为后缀。 - 测试类:为了和普通类做出区别,一般以“
Test
”作为后缀。 - 枚举类:为了和普通类做出区别,一般以“
Enum
”作为后缀,枚举类中的值遵循常量的命名规范。
五、变量命名规范
-
通常是见名知意的名词。
-
首字母小写。
-
多个单词时,采用驼峰命名法。
-
不建议使用中文缩写来命名。
-
不建议使用下划线作为连接。
六、常量命名规范
-
通常是见名知意的名词。
-
全部大写字母。
-
多个单词之间使用“
_
”进行分隔。 -
不建议使用中文缩写来命名。
七、方法命名规范
-
通常是见名知意的名词。
-
首字母小写。
-
多个单词时,采用驼峰命名法。
-
不建议使用中文缩写来命名。
-
不建议使用下划线作为连接。
-
有返回值的方法一般加“
get
”前缀。 -
设置的方法一般加对应的动词作为前缀(如:
set
、insert
、update
、delete
)。 -
查询的方法一般加“
select
”或“find
”或“query
”作为前缀。 -
带有条件的方法一般在命名中使用“
by
”或“with
”等字符。 -
判断的方法一般以“
is
”作为前缀。 -
测试方法一般以“
test
”作为前缀。
八、泛型命名规范
-
E 表示 Element,通常用在集合中。
-
T 表示 Type(类型),通常指类。
-
K 表示 Key(键),通常用于 Map 中。
-
V 表示 Value(值),通常用于 Map 中,与 K 成对出现。
-
N 表示 Number,通常表示数值类型。
-
? 表示不确定的 Java 类型。
-
X 表示异常。
-
U,S 表示任意类型。
相关文章:

【Java 类】001-访问修饰符、命名规范
【Java 类】001-访问修饰符、命名规范 文章目录【Java 类】001-访问修饰符、命名规范一、访问修饰符概述1、是什么2、作用作用问题3、访问修饰符有哪些4、作用对象二、访问修饰符使用演示1、类访问修饰符演示第一步:创建 Dog 类:public第二步:…...

【C++】命名空间
🏖️作者:malloc不出对象 ⛺专栏:C的学习之路 👦个人简介:一名双非本科院校大二在读的科班编程菜鸟,努力编程只为赶上各位大佬的步伐🙈🙈 目录前言一、命名空间产生的背景二、命名空…...

【AutoSAR】【MCAL】Dio
一、结构 二、功能介绍 DIO(数字输入输出)驱动模块主要是对端口(Port),通道(Channel)和通道组(ChannelGroup)进行读写操作。 通道(Channel)&…...

瑞吉外卖——day2
目录 一、新增员工 二、查询分页数据 三、启用、禁用员工账户、编辑员工信息 一、新增员工 点击左上角新增员工 页面如下: 我们随便填数据 ,点击保存,请求的地址如下 返回前端可以看到请求方式为Post 在employeeController中编写对应的代…...

了解java
#常见编程语言介绍 C语言 C语言 java语言 javaScript语言 PHP语言 python语言Object-C和Swift语言 C# (c sharp)语言 Kotlin语言 Go语言 Basic语言 #JAVA的发展 起源于1991年SUN公司GREEN项目,1996年JDK1.0正式发布 后被Oracle公司收购&…...

【编程实践】代码之中有创意:“我一直认为工程师世界上最具创造性的工作之一”
代码之中有创意 “我一直认为工程师世界上最具创造性的工作之一”。 文章目录 代码之中有创意一、代码可以赋予创造力1.1 代码的创造力1.2 如何发挥代码的创造力二、有创意的代码可以提高工作效率2.1 代码创意可以提高工作效率2.2 如何利用代码创意来提高工作效率三、代码创意可…...

【MySQL】表连接
一、为什么要学习 因为不合理的使用连接会导致慢查询 二、什么是连接 参与连接的表叫做 连接表, 连接就是把 各个连接表 进行的组合 (笛卡儿积)加入结果集并返回 三、连接查询 如何只是对表进行大量的连接,笛卡儿积作用得到的…...
2023湖南省“楚怡杯”职业技能大赛“网络安全” 项目比赛任务书
2023湖南省“楚怡杯”职业技能大赛“网络安全” 项目比赛任务书2023安徽省“中银杯”职业技能大赛“网络安全” 项目比赛任务书A模块基础设施设置/安全加固(200分)A-1:登录安全加固(Windows, Linux)A-2:Ngi…...

Android应用启动优化笔记整理
应用启动相关流程与优化 应用启动主要涉及SystemServer进程 和 app进程。 SystemServer进程负责app进程创建和管理、窗口的创建和管理(StartingWindow 和 AppWindow)、应用的启动流程调度等。 App进程被创建后,进行一系列进程初始化、组件初…...
图像bytes字节串二进制转十六进制及bytes转为图像
目录前言正文二进制与十六进制的bytes互转读取bytes为图像法1:直接写入f.read的结果法2: 转换为PIL或Numpy前言 参考: 8. python基础之基础数据类型–bytes - CSDN python 16进制与图片互转 - CSDN 正文 二进制与十六进制的bytes互转 bytes保存的是原始的字节(二…...

信息安全与数学基础-笔记-②同余
知识目录同余完全剩余系剩余类完全剩余系❀简化剩余系❀欧拉函数逆元!欧拉定理 !同余 a,b 两个数字,都模m,当两个数字模m后余的数一样即为同余。 例子: a bq r (mod m),这里的a 和 r 就是同余 ÿ…...
网络安全法
目录正文第一章第二章第三章第四章第五章第六章 法律责任第七章 附则正文 学习网络安全应该知道网络安全法 第一章 总则 第一条: 为了保障网络安全,维护网络空间主权和国家安全、社会公共利益,保护公民、法人和其他组织的合法权益,促进经济…...

django框架开发部署项目
前言:相信看到这篇文章的小伙伴都或多或少有一些编程基础,懂得一些linux的基本命令了吧,本篇文章将带领大家服务器如何部署一个使用django框架开发的一个网站进行云服务器端的部署。 文章使用到的的工具 Python:一种编程语言&…...
Unity记录1.3-入门-第一阶段总结
文章首发及后续更新:https://mwhls.top/4447.html,无图/无目录/格式错误/更多相关请至首发页查看。 新的更新内容请到mwhls.top查看。 欢迎提出任何疑问及批评,非常感谢! 汇总:Unity 记录 摘要:第一阶段的总…...
Linux入门篇-文件管理
简介 简单的文件管理。 ⽂件内容的查看 ⽂本⽂件内容的查看 cat ⽂本⽂件的path1 ⽂本⽂件的path2 head ⽂本⽂件的path ,显示⽂件的前10⾏内容 head -n 5 ⽂本⽂件的path , 显示⽂件的前5⾏内容 head -5 等于head -n 5tail ⽂本⽂件的path, 显示⽂件的后10⾏内容…...

如何从错误中成长?
在上一篇文章“技术人的犯错成本”里,我和你聊了技术人可能会犯的各式各样的错误,也举了很多例子,说明了技术人犯错的成本。在竞争激烈的互联网时代,试错当然是好事,但了解错误成本,避免不应该犯的错误&…...
谈谈一个程序员的职场心得(真有用)
谈谈一个程序员的职场心得 我会分为三个部分:软件开发,职场协作和认知成长,每个部分精简成 7 条心得。 软件开发 若无必要,勿增实体。 这是奥卡姆剃刀的定义,所谓剃刀就是法则,是奥卡姆这个英国学者提出来…...
Pytest:一个卓有成效的测试工具
大家都知道,目前最流行的Python单元测试框架有三种,分别是unittest, nose和pytest。其中unittest是Python自带的测试框架,但问题是比较老了,赶不上时代发展了(哈哈哈);nose2定位是带插件的unitt…...

Compose 动画 (三) : AnimatedVisibility 从入门到深入
1. AnimatedVisibility 是什么 AnimatedVisibility可以实现Compose组件的显示和隐藏,并且可以指定显示/隐藏时候的动画效果。(EnterTransition/ExitTransition) 和 animateXxxAsState、animateContentSize、Crossfade、AnimatedContent 这几个API一起,都…...

网络基础(二)
目录 应用层 再谈 "协议" 协议是一种 "约定". socket api的接口, 在读写数据时, 都是按 "字符串" 的方式来发送接收的. 如果我们要传输一些"结构化的数据" 怎么办呢? 为什么要转换呢? 如果我们将struct message里面…...
R语言AI模型部署方案:精准离线运行详解
R语言AI模型部署方案:精准离线运行详解 一、项目概述 本文将构建一个完整的R语言AI部署解决方案,实现鸢尾花分类模型的训练、保存、离线部署和预测功能。核心特点: 100%离线运行能力自包含环境依赖生产级错误处理跨平台兼容性模型版本管理# 文件结构说明 Iris_AI_Deployme…...
uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖
在前面的练习中,每个页面需要使用ref,onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入,需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...

Docker 运行 Kafka 带 SASL 认证教程
Docker 运行 Kafka 带 SASL 认证教程 Docker 运行 Kafka 带 SASL 认证教程一、说明二、环境准备三、编写 Docker Compose 和 jaas文件docker-compose.yml代码说明:server_jaas.conf 四、启动服务五、验证服务六、连接kafka服务七、总结 Docker 运行 Kafka 带 SASL 认…...

【Oracle】分区表
个人主页:Guiat 归属专栏:Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...
【生成模型】视频生成论文调研
工作清单 上游应用方向:控制、速度、时长、高动态、多主体驱动 类型工作基础模型WAN / WAN-VACE / HunyuanVideo控制条件轨迹控制ATI~镜头控制ReCamMaster~多主体驱动Phantom~音频驱动Let Them Talk: Audio-Driven Multi-Person Conversational Video Generation速…...
SQL慢可能是触发了ring buffer
简介 最近在进行 postgresql 性能排查的时候,发现 PG 在某一个时间并行执行的 SQL 变得特别慢。最后通过监控监观察到并行发起得时间 buffers_alloc 就急速上升,且低水位伴随在整个慢 SQL,一直是 buferIO 的等待事件,此时也没有其他会话的争抢。SQL 虽然不是高效 SQL ,但…...

【Linux】Linux 系统默认的目录及作用说明
博主介绍:✌全网粉丝23W,CSDN博客专家、Java领域优质创作者,掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围:SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物…...

Python环境安装与虚拟环境配置详解
本文档旨在为Python开发者提供一站式的环境安装与虚拟环境配置指南,适用于Windows、macOS和Linux系统。无论你是初学者还是有经验的开发者,都能在此找到适合自己的环境搭建方法和常见问题的解决方案。 快速开始 一分钟快速安装与虚拟环境配置 # macOS/…...

Win系统权限提升篇UAC绕过DLL劫持未引号路径可控服务全检项目
应用场景: 1、常规某个机器被钓鱼后门攻击后,我们需要做更高权限操作或权限维持等。 2、内网域中某个机器被钓鱼后门攻击后,我们需要对后续内网域做安全测试。 #Win10&11-BypassUAC自动提权-MSF&UACME 为了远程执行目标的exe或者b…...

【笔记】AI Agent 项目 SUNA 部署 之 Docker 构建记录
#工作记录 构建过程记录 Microsoft Windows [Version 10.0.27871.1000] (c) Microsoft Corporation. All rights reserved.(suna-py3.12) F:\PythonProjects\suna>python setup.py --admin███████╗██╗ ██╗███╗ ██╗ █████╗ ██╔════╝…...