Java基础访问修饰符全解析
一、Java 访问修饰符概述
Java 中的访问修饰符用于控制类、方法、变量和构造函数的可见性和访问权限,主要有四种:public、protected、default(无修饰符)和 private。
Java 的访问修饰符在编程中起着至关重要的作用,它们决定了类、方法、变量和构造函数在不同场景下的可见性和可访问性。以下分别介绍这四种主要的访问修饰符:
1. public 访问修饰符
public 修饰符是访问权限最宽松的修饰符,表示任何类都可以访问被修饰的类或类成员。无论这个类位于哪个包中,public 成员始终对所有其他类可见。
- 类:当一个类被声明为 public 时,任何其他类都可以访问这个类。
- 字段、方法、构造器:声明为 public 的字段、方法或构造器可以被任何类访问,不受包和继承关系的限制。
例如:
// 文件:Animal.java
package com.example;
public class Animal{
public String name;
public void makeSound(){
System.out.println("Animal makes a sound");
}
}
在这个例子中,Animal 类和它的 name 字段以及 makeSound () 方法都被声明为 public,因此任何其他包中的类都可以访问它们。
public 修饰符适用于公共 API 和工具类。当类或方法需要暴露给整个应用程序或多个模块时,public 是理想的选择。比如 Java 中的 Math 类的静态方法通常是 public,因为这些方法是通用工具,需要在多个地方调用。
2. private 访问修饰符
private 修饰符是访问权限最严格的修饰符。使用 private 修饰的成员只能在类内部访问,类的外部(包括其子类)无法访问。
- 类:类不能被声明为 private,Java 不允许使用 private 修饰符来限制类的访问权限。
- 字段、方法、构造器:声明为 private 的字段、方法或构造器仅在声明它们的类内部可见,其他类无权访问。
例如:
// 文件:Person.java
package com.example;
public class Person{
private String ssn;// 社会安全号码 (私密数据)
private void displaySsn(){
System.out.println("SSN: "+ ssn);
}
public void setSsn(String ssn){
this.ssn = ssn;
}
}
在这个例子中,ssn 字段和 displaySsn () 方法都是 private,所以它们只能在 Person 类内部被访问。其他类无法直接读取或修改 ssn,只能通过 setSsn () 这样的 public 方法进行控制。
private 修饰符适用于信息隐藏和确保安全性。当类中的某些数据或实现细节不希望被外部访问或修改时,使用 private 是最佳选择,确保了数据封装。敏感数据如密码、个人信息等应使用 private 修饰符,以防止被意外或恶意篡改。
3. protected 访问修饰符
protected 修饰符允许类的成员在同一包内或继承关系中的子类中访问。与 private 不同的是,protected 使得子类可以访问父类的受保护成员。
- 类:类不能声明为 protected。
- 字段、方法、构造器:声明为 protected 的成员在同一个包内的所有类中可见,此外,子类也可以访问它们。
例如:
// 文件:Animal.java
package com.example;
public class Animal{
protected String species;
protected void displaySpecies(){
System.out.println("Species: "+ species);
}
}
// 文件:Dog.java
package com.example;
public class Dog extends Animal{
public void showSpecies(){
this.species = "Canine";// 访问 protected 成员
this.displaySpecies();// 访问 protected 方法
}
}
在这个例子中,Animal 类的 species 字段和 displaySpecies () 方法是 protected 的,Dog 作为其子类可以访问这些成员。
protected 修饰符适用于继承和扩展。当希望类的某些成员能被子类继承和使用,但不希望被完全公开时,使用 protected 是合适的选择。
4. default(无修饰符,包访问权限)
如果在类或成员声明时未显式指定访问修饰符,则默认为包级访问权限。这种访问权限仅限于同一包内的类,包外的类无法访问它们。
- 类:如果类没有显式声明为 public,它就具有包级访问权限,仅对同一包内的类可见。
- 字段、方法、构造器:默认修饰符允许同包中的类访问这些成员,但包外的类和子类都无法访问。
例如:
// 文件:Animal.java
package com.example;
class Animal{
String name;
void makeSound(){
System.out.println("Animal makes a sound");
}
}
// 文件:Test.java
package com.example;
public class Test{
public static void main(String[] args){
Animal animal = new Animal();
animal.name = "Lion";// 同一包内,访问包级成员
animal.makeSound();
}
}
在这个例子中,Animal 类和它的成员没有访问修饰符,因此只能在 com.example 包内被访问。Test 类可以访问 Animal,但位于其他包中的类将无法访问 Animal。
默认访问权限适用于包内共享。当类或成员只需要在同一个包中共享时,可以使用默认访问权限。
二、四种访问修饰符详解
1. public
- 作用:表示被修饰的类、方法、变量或构造函数可以被任何其他类访问。
public 修饰符是访问权限最宽松的修饰符,无论类位于哪个包中,被 public 修饰的类或类成员始终对所有其他类可见。比如一个被声明为 public 的类,任何其他类都可以访问这个类;声明为 public 的字段、方法或构造器可以被任何类访问,不受包和继承关系的限制。
- 可见性:同一类内可见、同一包内可见、不同包中的子类可见、不同包中的非子类可见。
在同一类内,自然可以访问 public 修饰的成员;在同一包内,其他类也能访问 public 修饰的成员;不同包中的子类和非子类同样可以访问 public 修饰的成员。
2. protected
- 作用:表示被修饰的成员可以被同一包内的类和不同包中的子类访问。
protected 修饰符允许类的成员在同一包内或继承关系中的子类中访问。与 private 不同,protected 使得子类可以访问父类的受保护成员。例如,父类中的 protected 成员在同一包内的所有类中可见,此外,不同包中的子类也可以访问这些成员。
- 可见性:同一类内可见、同一包内可见、不同包中的子类可见、不同包中的非子类不可见。
在同一类内,protected 成员是可见的;在同一包内,所有类都可以访问 protected 成员;不同包中的子类可以访问父类的 protected 成员,但不同包中的非子类无法访问。
3. default(无修饰符)
- 作用:如果不指定任何访问修饰符,则默认为 default,也称为包级私有。
默认情况下,如果在类或成员声明时未显式指定访问修饰符,就具有包级访问权限。这种访问权限仅限于同一包内的类,包外的类无法访问它们。
- 可见性:同一类内可见、同一包内可见、不同包中的子类不可见、不同包中的非子类不可见。
在同一类内,无修饰符的成员可见;在同一包内,其他类可以访问无修饰符的成员;但不同包中的子类和非子类都无法访问这些成员。
4. private
- 作用:表示被修饰的成员只能在它所在的类内访问。
private 修饰符是访问权限最严格的修饰符。使用 private 修饰的成员只能在类内部访问,类的外部(包括其子类)无法访问。
- 可见性:同一类内可见、同一包内不可见、不同包中的子类不可见、不同包中的非子类不可见。
只有在声明它们的类内部,private 修饰的成员才可见,同一包内的其他类、不同包中的子类以及非子类都无法访问。
三、不同访问修饰符的使用场景
1. public
- 适用于需要在多个包中访问的类和实例变量。
-
- 当一个类或方法需要被不同包中的多个类访问时,使用 public 修饰符是最合适的选择。例如在设计一个通用的工具类时,可能希望它能够被整个项目中的任何地方调用,这时就可以将工具类声明为 public。如 CSDN 博客中提到的:“public 是最宽松的访问级别,允许类、方法或变量被任何其他类访问。当你希望一个方法或变量可以被任何地方调用或访问时,应使用 public。”
-
- 如果一个成员声明为 public,则它对其他所有的类和对象都是可见的。在不同包中的非子类和子类都可以访问 public 修饰的成员,具有最广泛的可见性。
- 如果一个成员声明为 public,则它对其他所有的类和对象都是可见的。
-
- public 修饰的类、方法、变量或构造函数在同一类内可见、同一包内可见、不同包中的子类可见、不同包中的非子类可见。这意味着无论在哪个位置,只要能够访问到该类所在的包,就可以访问到被 public 修饰的成员。
2. protected
- 适用于需要在子类中访问的变量和方法。
-
- 在设计类的继承结构时,如果某些变量或方法需要被子类访问,但又不希望被其他包中的非子类访问,那么可以使用 protected 修饰符。CSDN 博客中提到:“当一个变量或方法需要被子类访问但不想让包外的其他类访问时,使用 protected。”
-
- 例如在一个父类中定义了一些受保护的方法,子类可以在不同的包中继承并访问这些方法,实现特定的功能扩展。
- 如果一个成员声明为 protected,则它对它所在的类、它所在的包内的所有类以及它的子类都是可见的。
-
- protected 修饰的成员在同一类内可见、同一包内可见、不同包中的子类可见、不同包中的非子类不可见。这体现了 protected 修饰符在继承关系中的特殊作用,既保证了一定的封装性,又允许子类进行适当的访问和扩展。
3. default(包访问权限)
- 适用于同一个包中的所有类和方法。
-
- 当类或方法只需要在同一个包内共享时,可以使用默认访问权限,即不使用任何修饰符。CSDN 博客中提到:“当一个变量或方法只需要在同一个包内的类之间共享时,可以不使用任何访问修饰符。”
-
- 例如在一个项目中,某些辅助类或方法只在特定的包内使用,不需要对外暴露,这时使用默认访问权限可以避免不必要的访问,提高代码的封装性。
- 如果一个成员没有被定义为 public、protected 或 private,它将具有默认访问权限,即同样包中的所有类和方法都可以访问它。
-
- 默认访问权限的成员在同一类内可见、同一包内可见、不同包中的子类不可见、不同包中的非子类不可见。这种访问权限限制在同一个包内,有助于将实现细节限制在特定的范围内,保持代码的整洁和组织。
4. private
- 适用于需要在本类中使用的变量和方法。
-
- 当类中的某些数据或实现细节不希望被外部访问或修改时,使用 private 修饰符是最佳选择。CSDN 博客中提到:“private 是最严格的访问级别,仅允许同一类内部访问。用于封装类的内部状态,防止外部类直接修改这些状态。”
-
- 例如在一个类中,可能有一些敏感数据或内部实现的方法,只在本类内部使用,不希望被其他类访问,这时就可以使用 private 修饰符进行封装。
- 如果一个成员声名为 private,则它只对当前类内部可见。外部类以及任何继承类都不能访问该成员。
-
- private 修饰的成员仅在同一类内可见,同一包内不可见、不同包中的子类不可见、不同包中的非子类不可见。这种严格的访问限制确保了类的内部实现细节不被外部随意访问,实现了良好的封装。
相关文章:
Java基础访问修饰符全解析
一、Java 访问修饰符概述 Java 中的访问修饰符用于控制类、方法、变量和构造函数的可见性和访问权限,主要有四种:public、protected、default(无修饰符)和 private。 Java 的访问修饰符在编程中起着至关重要的作用,它…...
朗迪锋亮相2024人因工程与智能系统交互国际会议
2024年11月28日至30日,2024人因工程与智能系统交互国际会议在深圳隆重举办。此次大会以推动我国人因工程学科发展为目标,致力于加强国际学术交流,深入探讨人工智能时代的智能系统交互,旨在培育新质生产力,助力经济社会…...
OpenGL学习过程总结
1、矩阵 参考链接 第三课:矩阵变换...
webGL入门教程_06变换矩阵与绕轴旋转总结
变换矩阵与绕轴旋转总结 目录 1. 变换矩阵简介2. 平移矩阵3. 缩放矩阵4. 旋转矩阵 4.1 绕 Z 轴旋转4.2 绕 X 轴旋转4.3 绕 Y 轴旋转 5. 组合变换矩阵6. 结论 1. 变换矩阵简介 在计算机图形学中,变换矩阵用于在三维空间中对物体进行操作,包括ÿ…...
mysql 查询所有的触发器
SELECTTRIGGER_SCHEMA AS Database,TRIGGER_NAME AS Trigger,EVENT_OBJECT_TABLE AS Table,EVENT_MANIPULATION AS Event,ACTION_STATEMENT AS Statement FROMinformation_schema.TRIGGERS;创建触发器遇到报错: You do not have the SUPER privilege and binary lo…...
基于Java Springboot个人财务APP且微信小程序
一、作品包含 源码数据库设计文档万字PPT全套环境和工具资源部署教程 二、项目技术 前端技术:Html、Css、Js、Vue、Element-ui 数据库:MySQL 后端技术:Java、Spring Boot、MyBatis 三、运行环境 开发工具:IDEA/eclipse 微信…...
GateWay使用手册
好的,下面是优化后的版本。为了提高可读性和规范性,我对内容进行了结构化、简化了部分代码,同时增加了注释说明,便于理解。 1. 引入依赖 在 pom.xml 中添加以下依赖: <dependencies><!-- Spring Cloud Gate…...
go语言读取yaml配置文件内容
1、config.yaml配置文件内容假设如下 name: "example" version: 1.0 settings:timeout: 30debug: truefeatures:- feature1- feature22、定义结构体 go语言定义结构体匹配yaml内容 package mainimport ("fmt""log""os""gopkg.…...
Proteus8.17下载安装教程
Proteus是一款嵌入式系统仿真开发软件,实现了从原理图设计、单片机编程、系统仿真到PCB设计,真正实现了从概念到产品的完整设计,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,能够帮助用…...
【AI】Sklearn
长期更新,建议关注、收藏、点赞。 友情链接: AI中的数学_线代微积分概率论最优化 Python numpy_pandas_matplotlib_spicy 建议路线:机器学习->深度学习->强化学习 目录 预处理模型选择分类实例: 二分类比赛 网格搜索实例&…...
图数据库 | 10、图数据库架构设计——高性能图存储架构(上)
老夫在之前的三大篇内容中,介绍了图数据库的三大组件—图计算、图存储以及图查询语言。(都归拢在图数据库原理、架构与应用这个专栏中了,感兴趣的朋友可以在去找阅读。) 接下来,老夫还将继续深化这三大组件࿰…...
el-table 组件二次封装(vue2)
PublicTable.vue <!-- 公共表格组件 --> <template><div class"table-common"><el-table v-loading"loading" :ref"tableid" border style"width: 100%" :data"tableDatas" :row-key"rowKey&quo…...
张量并行和流水线并行在Transformer中的具体部位
目录 张量并行和流水线并行在Transformer中的具体部位 一、张量并行 二、流水线并行 张量并行和流水线并行在Transformer中的具体部位 张量并行和流水线并行是Transformer模型中用于提高训练效率的两种并行策略。它们分别作用于模型的不同部位,以下是对这两种并行的具体说…...
详解Qt pdf 之QPdfSelection 选择文本类
文章目录 QPdfSelection 类详解前言 详细说明公共函数说明1. 构造函数2. text3. boundingRect4. isEmpty5. startPage6. endPage 使用场景示例代码代码说明总结 QPdfSelection 类详解 前言 QPdfSelection 是 Qt PDF 模块中的一个类,用于表示在 PDF 文档中被选中的…...
一款支持80+语言,包括:拉丁文、中文、阿拉伯文、梵文等开源OCR库
大家好,今天给大家分享一个基于PyTorch的OCR库EasyOCR,它允许开发者通过简单的API调用来读取图片中的文本,无需复杂的模型训练过程。 项目介绍 EasyOCR 是一个基于Python的开源项目,它提供了一个简单易用的光学字符识别ÿ…...
matlab 中的 bug
在matlab中绘图,设置 axe 的背景颜色 axes_in3.Color #00235B ;打印的时候 print(figure_handle1,-dpng,-r300,"merge_yt_ey") ;此时保存的图片无法识别背景颜色 原因在于 matlab 中的 InverseHardcopy 将 InvertHardcopy 设置成 off 则可以解决这个问…...
【算法刷题指南】优先级队列
🌈个人主页: 南桥几晴秋 🌈C专栏: 南桥谈C 🌈C语言专栏: C语言学习系列 🌈Linux学习专栏: 南桥谈Linux 🌈数据结构学习专栏: 数据结构杂谈 🌈数据…...
android user版本默认usb模式为充电模式
android插入usb时会切换至默认设置的模式,debug版本为adb,user版本为mtp protected long getChargingFunctions() {// if ADB is enabled, reset functions to ADB// else enable MTP as usual.if (isAdbEnabled()) {return UsbManager.FUNCTION_ADB;} e…...
[极客大挑战 2019]HardSQL--详细解析
信息搜集 登录系统,有两个可能的注入点: 随便输一下看看传参类型: 都是GET型。 SQL注入 传参 usernameadmin’&password123 传参 usernameadmin&password123’ username和password传参,四种闭合方式只有单引号报错&a…...
java基础概念46-数据结构1
一、引入 List集合的三种实现类使用了不同的数据结构! 二、数据结构的定义 三、常见的数据结构 3-1、栈 特点:先进后出,后进先出。 java内存容器: 3-2、队列 特点:先进先出、后进后出。 栈VS队列-小结 3-3、数组 3-…...
数学建模选MATLAB还是Python?
在进行数学建模时,选择合适的编程语言和工具对于建模的效率和效果至关重要。目前,MATLAB和Python是两个常用的数学建模工具,它们各自有优缺点,适用于不同的场景。本文将从多个维度对MATLAB和Python进行比较,帮助大家做…...
【C++】多线程
目录 一 概念 1 多线程 2 多进程与多线程 3 多线程理解 二 创建线程 1 thread 2 join() 和 detach() 3 this_thread 三 std::mutex 1 lock 和 unlock 2 lock_guard 3 unique_lock 四 condition_variable 五 std::atomic 一 概念 1 多线程 在C11之前࿰…...
【计算机网络】实验2:总线型以太网的特性
实验 2:总线型以太网的特性 一、 实验目的 加深对MAC地址,IP地址,ARP协议的理解。 了解总线型以太网的特性(广播,竞争总线,冲突)。 二、 实验环境 • Cisco Packet Tracer 模拟器 三、 实…...
基于Matlab合成孔径雷达(SAR)回波信号建模与多指标质量评估
本研究基于合成孔径雷达(SAR)技术,建立了一个雷达回波信号的模拟模型,并通过多项评价指标对信号质量进行深入评估。首先,研究定义了与SAR系统相关的关键物理参数,如工作频率、平台速度、脉冲宽度、采样率等…...
spring boot3.3.5 logback-spring.xml 配置
新建 resources/logback-spring.xml 控制台输出颜色有点花 可以自己更改 <?xml version"1.0" encoding"UTF-8"?> <!--关闭文件扫描 scanfalse --> <configuration debug"false" scan"false"><springProperty …...
浅谈C#库之DevExpress
一、DevExpress库介绍 DevExpress是一个功能强大、界面美观的UI组件库,广泛应用于桌面应用程序和Web应用程序的开发中。它提供了丰富的控件和工具,帮助开发人员快速构建现代化的用户界面。DevExpress控件库以其功能丰富、应用简便、界面华丽以及方便定制…...
【webApp之h5端实战】项目基础结构搭建及欢迎页面的实现
这是一个实战项目的webapp,主要是使用原生js/css/html来实现我们的业务。预览下面的实战效果,我们将会从0到1实现这个系列的项目。包括大量的原生js知识,css3动画的开发,以及页面的交互实现。 效果预览 项目准备工作 封装的工具类,用于获取原生dom节点,处理原生dom事件的…...
生成树详解(STP、RSTP、MSTP)
目录 1、STP 1.概述 2.基本概念 3.端口角色及其作用 4.报文结构 5.STP的端口状态 6.三种定时器 7.STP选举步骤 8.配置BPDU的比较原则 9.TCN BPDU 10.临时环路的问题 11.传统STP的不足 拓扑变更处理过程 2、RSTP 1.端口角色 2.端口状态 3.P/A(Propo…...
C++趣味编程:基于树莓派Pico的模拟沙漏-倾斜开关与LED的互动实现
沙漏,作为一种古老的计时工具,利用重力让沙子通过狭小通道,形成了计时效果。在现代,我们可以通过电子元件模拟沙漏的工作原理。本项目利用树莓派Pico、倾斜开关和LED,实现了一个电子沙漏。以下是项目的详细技术解析与C++代码实现。 一、项目概述 1. 项目目标 通过倾斜开关…...
Matlab Simulink 电力电子仿真-单相电压型半桥逆变电路分析
目录 一、单相电压型半桥逆变电路仿真模型 1.电路模型 2.电路模型参数 二、仿真分析 三、总结 1.优缺点 2.应用场景 一、单相电压型半桥逆变电路仿真模型 1.电路模型 单相电压型半桥逆变电路是一种常见的逆变电路,主要用于将直流电源转换为交流电源。 &…...
在超表面中琼斯矩阵的使用
琼斯矩阵(Jones Matrix) 是一种线性代数方法,用于描述光的偏振状态和偏振变化,是偏振光学中重要的数学工具。它在 超表面理论设计 中广泛应用,尤其是在设计和调控光与物质相互作用时,例如偏振控制、相位调制…...
threeJs学习 贴图 :地球
效果图: 贴图以后的效果: vue代码: <template><div class"scene_box"><p>创建纹理贴图TextureLoader</p><div class"canvas"></div></div> </template><script s…...
详解Rust多线程编程
文章目录 多线程模型创建和管理线程自定义线程行为线程传递数据线程间通信线程池错误处理与线程Condvar(条件变量)无锁并发高性能并发库 Rust的多线程编程提供了一种安全、高效的方式来进行并发操作。Rust的并发性设计原则之一是确保线程安全,同时避免运行时的开销&…...
Uniapp触底刷新
在你的代码中,使用了 scroll-view 来实现一个可滚动的评论区域,并且通过监听 scrolltolower 事件来触发 handleScrollToLower 函数,以实现“触底更新”或加载更多评论的功能。 关键部分分析: scroll-view 组件: scroll-view 是一…...
【前端】安装hadoop后,前端启动报错,yarn命令
新安装hadoop后,前端启动项目用yarn命令,报错。 报错:系统找不到指定的路径。 No HADOOP_CONF_DIR set. Please specify it either in yarn-env.cmd or in the environment. 解决:删掉hadoop目录下yarn的文件 检查:…...
T620存储安全方案SoC芯片技术手册
系统资源 集成32位国产CPU CK803S;最高工作频率260Mhz CK803S内置16KB I/D Cache,内置32KB DTCM 32KB ROM;256KB SRAM;8KB SRAM(系统专用) 512KB/1MB 片内Flash 安全算法 支持SM4数据加密,加密性…...
Rust循环引用与多线程并发
循环引用与自引用 循环引用的概念 循环引用指的是两个或多个对象之间相互持有对方的引用。在 Rust 中,由于所有权和生命周期的严格约束,直接创建循环引用通常会导致编译失败。例如: // 错误的循环引用示例 struct Node {next: Option<B…...
力扣 二叉树的锯齿形层序遍历-103
二叉树的锯齿形层序遍历-103 此题就是再二叉树层序遍历的基础上,加了反转当前层数组元素的函数reverse(),也可以不反转,直接在遍历当前层的所有节点的for循环里直接进行if判断,根据遍历方向,决定如何插入元素。 clas…...
PyCryptodome:Python中的密码学库
简介 PyCryptodome是一个功能强大的Python密码学库,提供了各种密码学算法的实现,包括对称加密、非对称加密、哈希函数、消息认证码等。它是对Python的Crypto库的一个现代化和增强版,提供了更好的性能和安全性。 Git地址 PyCryptodome的代码可…...
我眼中的“懂重构”(一)
初识重构 2017年的时候,领导让我看公司的一本书《重构——改善代码的既有设计》,这是一本JAVA版本的,前后看了2遍。那时候看书因为不懂看的格外仔细。我只是那时候不懂,然而多年后的今天我仍然发现很多人对重构充满误解。在刚进入…...
Excel中日期格式“年月日 时间”修改为“年月日”
需求: 将Excel中“yyyy-mm-dd hh:mm:ss”格式的时间转换为“yyyy-mm-dd”格式的时间,选中转换后的时间时编辑栏中依然会显示“yyyy-mm-dd hh:mm:ss”格式。 方法一、在原数据列进行转换: 1、选中需要转换的数据列,右键--【设置…...
CSS底层基础:小白速来
1. CSS简介 CSS (Cascading Style Sheets) 是一种用来描述HTML或XML文档样式的语言。它使得开发者能够控制网页的布局和外观,包括字体、颜色、间距等。CSS通过选择器来指定要应用样式的元素,并定义这些元素的具体样式属性。 基本结构示例: …...
【MySQL】库和表的基本操作
目录 库 库的增删查改 字符集与校验集 库的备份与恢复 表 表的创建和删除 用不同的存储引擎创建表的区别 查看表 修改表 添加删除属性 修改改变属性 上篇博客我们讲了数据库的基本理解,对数据库有了一个大致的概念,下面我们来介绍一下库和表的…...
5款AI智能办公工具丨提升办公效率‼️
办公效率低?工作压力大?别担心,这里有五款超实用的AI办公工具,帮你轻松搞定各种任务!🌟 简直不要太实用,快快收藏起来总有一天你会用得上~ 红薯通AI📝写作文案的好帮手,…...
华为HarmonyOS 让应用快速拥有账号能力 -- 3 获取用户手机号
场景介绍 当应用对获取的手机号时效性要求不高时,可使用Account Kit提供的手机号授权与快速验证能力,向用户发起手机号授权申请,经用户同意授权后,获取到手机号并为用户提供相应服务。以下只针对Account kit提供的手机号授权与快…...
lambda strem流表达式处理工具
一个通用的lambda stream流处理工具, 包含了工作中绝大部分场景常用的使用方式 import java.math.BigDecimal; import java.util.*; import java.util.function.BiFunction; import java.util.function.Consumer; import java.util.function.Function; import java.util.funct…...
Android 编译和使用libheif
项目中需要使用libheif,libde265,libyuv。一下是相应的cmakelist.txt。这里直接使用了静态库。 里面涉及到c包的链接,需要stdc。 ${PROJECT_SOURCE_DIR}/../jniLibs/${ANDROID_ABI}/liblibde265.a这个路径由于操作过程中copy出现问题,多了一层路径&…...
新一代零样本无训练目标检测
🏡作者主页:点击! 🤖编程探索专栏:点击! ⏰️创作时间:2024年12月2日21点02分 神秘男子影, 秘而不宣藏。 泣意深不见, 男子自持重, 子夜独自沉。 论文链接 点击开启你的论文编程之旅h…...
神经网络入门实战:(九)分类问题 → 神经网络模型搭建模版和训练四步曲
(一) 神经网络模型搭建官方文档 每一层基本都有权重和偏置,可以仔细看官方文档。 pytorch 官网的库:torch.nn — PyTorch 2.5 documentation Containers库:用来搭建神经网络框架(包含所有的神经网络的框架);…...
写NFC微信小程序跳转Uri标签
本示例使用的发卡器:https://item.taobao.com/item.htm?spma21dvs.23580594.0.0.52de2c1b8bEEGz&ftt&id615391857885 Dim dispstr As String Dim status As Byte Dim status1 As Byte Dim afi As Byte Dim myctrlword As Byte Dim mypiccserial(0 To 7) …...