变数的种类 (蔡学墉)

VS2017中调用gdal(C#版)的方法二(含gdal下载地址,配置过程,代码测试,超详细!!) VS2017中gdal(C#)版的配置与测试 上次记录了直接在VS2017中下载并应用gdal的方法,这次来记录一下网上下载的安装包配置与测试的方法。 一、环境、版本及下载地址 win10,vs2017社区版,gdal2.4.4 还是像之前在Unity中应用gdal一样,最好是下载已经编译好的C#版的gdal,不然自己配置真的很容易出错,我就是这样的,下面提供不同版本的gdal下载地址: 1.GDAL2.4.4(C#版、64位): https://download.youkuaiyun.com/download/che 阅读详情
本文章尝试着为变数的种类做一个总整理,以期让读者能充分掌握每一种变数的特性。

根据宣告方式来为变数分类
根据宣告方式详细来区分,Java 的变数有七种,下面的程式码展示了这七种变数的宣告方式:

class MyClass {
static int a;
int b;
public static void myMethod(int c) {
try {
int d;
} catch (Exception e) {
}
}
MyClass(int f) {
int[] g = new int[100];
}
}

class variable:宣告在 class 内,method 之外,且使用 static 修饰的变数,例如上面程式码的 a。
instance variable:宣告在 class 内,method 之外,且未使用 static 修饰的变数,例如上面程式码的 b。
method parameter:宣告在 method 小括号内的变数,例如上面程式码的 c。
狭义的区域变数(local variable):宣告在 method 内的变数,例如上面程式码的 d 与 g。
exception-handler parameter:宣告在 catch 小括号内的变数,例如上面程式码的 e。
constructor parameter:宣告在 constructor 小括号内的变数,例如上面程式码的 f。
阵列元素(array component):阵列的元素值没有识别名称,必须透过阵列和索引值(index)来识别。例如上面程式码的 g[0]。
根据变数记忆体来分类
根据变数记忆体位置来区分,Java 的变数有两种,包括了:

heap variable:占用的记忆体在 heap 中,这类变数包括了 class variable、instance variable、array component,即前面程式的 a, b, g[0]。这类变数会自动被 JVM 初始化成预设值。
stack variable:通称广义的区域变数(pan-local variable),其占用的记忆体在 stack 中,这类变数包括了狭义的区域变数、method parameter、exception-handler parameter、constructor parameter,即前面程式的 c, d, e, f。狭义的区域变数不会被 JVM 初始化成预设值,使用者必须自行初始化该变数,但是 parameter 类(包括 method parameter、exception-handler parameter、constructor parameter)会被 JVM 初始化成传入值。
根据使用方式来为变数分类
根据使用方式,只要分成三类即可,分别是:

class variable:即上例的 a。
instance variable:即上例的 b。
广义的区域变数:包含上例的 c、d、e、f。这四者的差别很小,直接归为一类。
至于「阵列元素」(array component)则不在此三类中,但是「阵列元素」并不常被注意到,为它多分出一类的用处不高。我通常将阵列视为物件,将 array component 视为物件的 instance variable。
ESP8266-Arduino网络编程实例-异步TCP客户端 本次实例将使用ESPAsyncTCP库实现一个简单的客户端。 阅读详情

相关推荐

HFSS仿真中如何提取最大E/H场强与频率关系曲线

本文详细讲解了在HFSS仿真中提取最大E/H场强与频率关系曲线的完整流程。通过使用场计算器(Field Calculator)和创建场报告,工程师可以准确获得器件在整个频带内的电场或磁场强度峰值,并进一步推导出关键的功率容量曲线,为高功率射频器件(如滤波器、耦合器)的设计提供至关重要的安全评估依据。

ss78901的博客 1098

Java学习之路03---标识符、关键字、变数概念

架构图 前言 Java程式是一系列对象的集合,而对象之间透过彼此之间调用方法来达到开发目的,因此在认识Java程式前需要特别注意几个专有名词: 类(class): 一个抽象的模板,例如人,他有身高、体重等属性,有说话、跳舞等动作 对象(object): 一个类的实例,例如美国人、欧洲人等 方法(method): 包在类当中的函数,可以代表该类的行为,例如人会说话。一个类可以拥有多个方法 实例变数(Instance variables): 每个类都有专属的变数,并且可以拥有多种不同变数 接着来看看一个

札克Zach的博客 604

SNN系列|编码篇(2)时序编码

Tempotral Coding 选择编码方法是要根据编码对象以及模型如何处理编码信息进行选择,如下是一种时序信息的编码对比: Threshold-based encoding 又称为tempotral contrast,该方法可以用于编解码一段序列,当差值超过阈值时发放脉冲,阈值是根据编码的序列自适应变化的。 使用该编码方法时,实值序列最好是沿时间变化的,因为在根据差分决定是否发放脉冲后,脉冲的顺序与差分顺序有关。 Time-to-first spike coding 该编码方法将信息用神经元首次

Tianlong Lee的博客 1万+

java 类方法和实例方法 以及 类变量和实例变量

类体中的方法分为实例方法和类方法两种,用static修饰的是类方法 类方法: 对于类中的类方法,在该类被加载到内存时,就分配了相应的入口地址。从而类方法不仅可以被类创建的任何对象调用执行,也可以直接通过类名调用。类方法的入口地址直到程序退出才被取消。 实例方法: 当类的字节码文件被加载到内存时,类的实例方法不会被分配入口地址,当该类创建对象后,类中的实例方法才分配入口地址,从而实例方法可以...

weixin_30315723的博客 350

NXP应用随记(八):S32K3XX的HSE学习记录(HSE\MU\UTEST\IVT\A,B SWAP)

HSE,即硬件安全引擎(Hardware Security Engine),是NXP S32K312微控制器(MCU)中的一个功能,它提供了一系列的安全特性,包括加密、安全启动和密钥存储等。这些功能旨在增强汽车电子系统的信息安全,符合ISO26262标准,达到ASIL D安全等级。具体来说,S32K312的HSE支持AES-128/192/256加密、RSA、ECC等加密算法,以及侧通道保护,确保了数据传输和存储的安全性。

梦想技术家 9743

重磅!AI实时读取总结微信聊天记录,附MCP协议+智能体配置教程!

【摘要】本文介绍了一套AI实时分析微信聊天记录的解决方案,通过Chatlog+Trae+MCP协议实现智能整理群聊信息。Chatlog作为开源工具本地解析微信数据,确保隐私安全;Trae提供AI分析能力,支持自然语言处理。操作步骤包括:1)下载运行Chatlog并启动HTTP服务;2)安装Trae配置MCP协议;3)创建智能体设置提示词。该方案虽需初始配置,但能有效解决群聊信息过载问题,自动提炼关键内容,避免有价值信息被淹没。文中提供了详细教程链接和网盘资源。

puyihuan的博客 1万+

Day12 -千变万化的变数:class variable,class instance variable与instance variable

前情提要: 第12天,往细节探索去!昨天我们讲到broc是有名字的内存块物件,可储存变数;lambda是一种method方法,严格检查参数数目。今天想要更深地讨论变数:) Ruby经典面试题目#12 Ruby的类别变数与类别实体变数,与实体变数有何不同?What is difference between class variable,class instance va...

weixin_30906701的博客 201

配置 NVIDIA RTX 5090 + sm_120 + flashattention,已跑通一个大模型 ~~

本文介绍了在Ubuntu 22.04系统下为NVIDIA RTX 50系显卡搭建深度学习环境的完整流程。重点包括:1)安装适配50系显卡(sm_120架构)的CUDA 12.9驱动和Toolkit,需注意禁用系统自带驱动;2)配置环境变量解决nvcc命令识别问题;3)通过源码编译方式安装支持sm_120的PyTorch nightly版本(cu129),解决官方二进制包不兼容问题。整个过程涉及显卡驱动安装、CUDA环境配置、PyTorch适配等关键步骤,并提供了详细的验证方法和常见问题解决方案。文中特别强调

qq_36674060的博客 6156

方法中的可变参数的总结

package cn.itcast.day13.demo07;/** * @author newcityman * @date 2019/7/20 - 10:25 * 可变参数:是JDK1.5之后出现的新特性 * 使用前提: * 当方法的参数列表数据类型已经确定,参数的个数不确定,就可以使用可变参数 * 使用格式:定义方法是使用 * 修饰符...

273

Qt for Android:基于libusb实现CH340x串口通信的高效开发方案

本文详细介绍了在Qt for Android环境下,基于libusb实现CH340x串口通信的高效开发方案。通过绕过Android高版本系统的权限限制,利用libusb+JNI技术实现稳定通信,适用于工业手持终端等场景。文章涵盖环境搭建、核心实现、常见问题解决方案及性能调优经验,帮助开发者快速掌握这一关键技术。

weixin_42715608的博客 426

InfiniBand 与 RoCE 协议介绍

InfiniBand 是高性能互联的 “标杆”,以极致的低延迟、高可靠性适用于对性能要求苛刻的场景(如超算、大规模 AI 训练);而 RoCE 通过以太网实现 RDMA,平衡了性能与成本,成为数据中心和云计算的主流选择。两者均基于 RDMA 技术,核心目标是解决传统网络的 “CPU 瓶颈” 和 “延迟瓶颈”,推动高性能计算和分布式系统的发展。

jundao1997的专栏 713

只要一篇就能看懂的变量和数据类型

变量与数据类型 主要内容 标识符与关键字 变量与常量 数据类型 类型转换 转义字符与进制问题 第一节 关键字和标识符 1. 编程规范 Ø 任何地方的名字都需要见名知意; Ø 代码适当缩进 Ø 书写过程成对编程 Ø 对代码进行合理注释 2. 关键字 2.1、定义 是被系统征用的特殊单词(标识符),而且是被广大程序员所认知的。 2.2、特点 全部小写 2.3、注意事项 A:goto和const作为保留字存在。 B:类似于Notepad++这样的高级记事本会对关键字有特殊颜色标

dirft_din的博客 1557

人形机器人电路板和算法分析

人形机器人电路板与算法深度剖析 电路板领域:人形机器人电子系统分为计算、驱动、感知、能源、通信五大模块。主控板采用高性能SoM(如NVIDIA Jetson AGX Orin),需满足严格电源完整性(PDN)与信号完整性(SI)要求;关节驱动板集成MCU、GaN/SiC功率器件及高精度编码器接口,采用刚柔结合PCB以适应狭小空间。挑战包括热-振可靠性(85°C/10G振动)、高密度互连(3mil线宽)及EMC兼容性。 算法领域:运动控制依赖MPC(模型预测控制)与强化学习(RL),实现实时动态平衡;感知算法

几十年资深高级架构师,技术专家的技术笔记。专注C、Java、Python、微服务、云原生、AI工程化及高并发系统分布式架构实战,分享源码剖析、性能调优与架构治理经验。 305

Java中Array与ArrayList的主要区别

1)精辟阐述:可以将 ArrayList想象成一种“会自动扩增容量的Array”。2)Array([]):最高效;但是其容量固定且无法动态改变;     ArrayList: 容量可动态增长;但牺牲效率;3)建议:基于效率和类型检验,应尽可能使用Array,无法确定数组大小时才使用ArrayList!

tony_xjz的专栏 982

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

数据类型FAQ

FAQ:JAVA有几种数据类型? 总共有8种数据类型,其中4种整型、浮点型、字符型、布尔型 四类 八种 字节数 取值范围 整型 byte 1 -2^7 ~ 2^7-1 short 2 -2^15 ~ 2^15-1 int 4 -2^31~2^31-1 long 8 -2^63~ 2^63-1 浮...

云上碧霄 328

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

1.c语言中变量类型,C语言中的变量数据类型.ppt

C语言中的变量数据类型第二章 变量和数据类型 回顾 程序是为执行一项任务而编写的有序指令集 算法是解决问题的具体方法和步骤 流程图是算法的图形化表现形式 C语言的特点 C程序的编译和运行过程 编译器将源程序转换成机器能理解的程序 连接器用于连接相关的目标文件以生成可执行程序 目标 理解变量和常量的含义 熟悉基本数据类型 - int、char、float 和 double 使用算术运算符 理解类型转...

weixin_32350433的博客 150

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

内存数据库SQLite

本文以“黑板”比喻内存数据库,对比传统硬盘数据库,详解 SQLite 使用 :memory: 实现高速临时存储的原理与优势。通过动态占位符生成、executemany 批量操作等技巧,实现毫秒级数据读写,适用于单元测试、临时计算与隐私保护场景。强调其瞬时性与内存限制,提醒开发者注意数据量控制与安全防护,突出参数化查询防注入的核心价值。

看了都说刑的博客 316

【JVM】对象内存布局

HotSpot JVM 中,Java 对象内存布局由对象头(12字节,含Mark Word与压缩Klass Pointer)、实例数据及对齐填充构成,总大小为8字节倍数。对象头支持锁状态动态复用,指针压缩使引用仅4字节,但堆超32GB时失效。实例字段按类型优先级重排序以减少间隙,最小对象大小为16字节。通过JOL工具可精准验证布局,理解锁机制、GC、伪共享等底层行为。

2301_79732484的博客 149

11-01-演进-.NET GC发展史

.NET GC发展史映射硬件演进:从单核STW到多核并发,再到区域化细粒度回收。历经分代管理、ServerGC、BackgroundGC、LOH自动压缩、POH隔离、DATC自适应线程数及Region-based管理等关键革新,代码量从5000行增至4万+,复杂度指数上升。每一步优化均在暂停时间、吞吐量与资源开销间权衡,体现“实用主义”哲学。核心启示:GC演进由硬件驱动,方向明确——更短暂停、更高效率,但代价是工程复杂性持续攀升。

设计 AI 玩游戏🎮 347

深入理解 JVM 垃圾回收:GC 是什么、如何判定垃圾、四大回收算法全解析

本文深入解析JVM垃圾回收机制,涵盖GC核心概念、垃圾判定(基于可达性分析)、四大回收算法(标记清除、复制、标记整理、分代回收)及其应用场景。重点说明GC主要作用于堆内存,通过根对象遍历识别不可达对象,避免循环引用问题;并结合新生代与老年代特性,阐述分代回收如何提升效率,实现高效内存管理。

qq_61228769的博客 646

SQLite 是什么?和 MySQL、Redis 有什么区别,项目中应该怎么选?

SQLite 是轻量级嵌入式关系型数据库,无需独立服务,直接通过文件存储数据,适合本地工具、桌面应用、移动端离线数据及单机轻量业务。与 MySQL 相比,它部署简单但并发写入受限;与 Redis 不同,它支持完整 SQL 与事务,适用于结构化数据持久化。三者可协同使用:MySQL 处理核心业务,Redis 实现高速缓存与计数,SQLite 降低部署复杂度。选型应基于场景需求,而非技术偏好。

栈外手记|2018 年起深耕后端开发。跳出代码栈,分享技术、项目踩坑与行业思考,看见技术之外更多可能。 331

JVM 核心机制

JVM 是运行时抽象层,核心机制包括类加载(双亲委派)、运行时数据区(堆、元空间、栈帧)、分代垃圾回收(新生代复制、老年代标记-整理)及JIT编译(解释器与C1/C2分层优化)。通过可达性分析识别GC Roots,避免循环引用问题。常见故障如OOM、StackOverflow源于内存或线程资源耗尽,需结合GC日志与堆转储排查。

2401_89855466的博客 298

JVM中的GC垃圾回收器

同时,引入ZGC:可伸缩的低延迟垃圾回收器(Experimental)。删除CMS垃圾回收器,并弃用Parallel Scavenge和Serial Old的组合。1999年随JDK1.3.1一起来的是串行方式的Serial GC,它是第一款GC。有了虚拟机,就一定需要收集垃圾的机制,这就是Garbage Collection,对应的产品称为Garbage Collector。2018年3月,JDK 10中G1垃圾回收器的并行完整垃圾回收,实现并行性来改善最坏情况下的延迟。2020年9月,JDK15发布。

记录一点 381

智学文枢:题目管理页

题目管理页是「智学文枢」的数据基座入口,用一个 10 列的 QTableWidget 承载学生级习题的筛选、搜索、CRUD 与自动流水线触发,其核心难点不是"画表格",而是把"前端过滤 + Store 信号刷新 + 组合题父子展示 + 懒加载规避"组织成一条不卡 UI 的渲染管线。

caixuwen的专栏 283

AI Agent 工程化开发实战(五):持久化与断点恢复——Checkpointer 与 Store

多轮对话的记忆怎么扛住进程重启?本文讲清 LangGraph 两大持久化机制:Checkpointer 存「这一轮聊到哪」(线程内、自动写),Store 存「跨会话成立的事实」(全局、手动写)。用 `get_state` / `get_state_history` / `update_state` 实现断点恢复与时间旅行——回滚重写坏回复、fork 对照分支,再落盘 SQLite 验证重启后仍记得,为后续长期记忆埋线。

寻道AI,探索AI无限可能! 681

libagentcore - 一个基于c++的AI多agent系统升级到2.0版本

libagentcore是一个基于大语言模型的多Agent协作系统核心库,支持任务规划、代码生成、问题求解等复杂场景。系统通过Planner、Worker等专业化Agent协同工作,实现任务自动分解与执行,具备多Token预测加速、本地/网络模型动态切换、任务自愈回溯、分级控制及线程间通信能力。依托SQLite日志与向量数据库记忆管理,支持状态回溯与语义检索,适用于自动化开发、智能问答与决策支持等应用。

akinggw的专栏 217
上一篇: 实现 Java 平台的三种方式
下一篇: 用 XML 设计一个你自己的程序语言
zaowei21
博客等级 码龄25年 38粉丝 517原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值