当前位置: 首页 > news >正文

成员变量和局部变量深度对比

一、什么是成员变量,什么是局部变量

1、成员变量

成员变量分为实例变量(如果没有static修饰)或 类变量(有static修饰),定义在类内部、方法外部的变量,属于类或对象的属性。

2、局部变量

定义在方法内部方法参数列表代码块(for、if)的变量,属于临时变量。

二、核心区别

2.1 作用域(生效范围)

  • 成员变量:
    • 实例变量:作用域是整个对象,只要对象不被销毁,在类的任意非静态方法中都能够直接访问(注意访问权限修饰符);
    • 类变量:作用域是整个类,通过类名.变量名就可以在任何地方访问,甚至不需要创建对象
  • 局部变量:
    • 作用域仅限定义它的代码块,比如方法内定义的变量只能在方法内使用,if 代码块内的变量出了 if 就会失效,超过作用域后变量就会被销毁,无法访问。

2.2 默认值(面试常考踩坑点)

  • 成员变量:

不管是实例变量还是类变量,JVM 都会自动赋予默认值,不同数据类型的默认值如下:

    • 整数类型(byte/short/int/long): 0
    • 浮点类型(float/double): 0.0
    • 布尔类型(boolean): false
    • 引用类型(String、对象等): null
  • 局部变量:

JVM 不会给局部变量赋默认值,必须手动初始化后才可以使用,否则会直接编译报错

2.3 内存位置(底层原理)

  • 成员变量:
    • 实例变量:存储在堆内存
    • 类变量:存储在方法区JDK8后是元空间)中
  • 局部变量:
    • 存储在栈内存的方法栈帧

2.4 生命周期(存在时长)

  • 成员变量:
    • 实例变量:生命周期和对象一致,对象被GC 回收的时候,实例变量才会被销毁;
    • 类变量: 生命周期和一致,从类加载到 JVM,直到类被卸载类变量一直存在
  • 局部变量:
    • 生命周期和代码块/方法执行周期一致,方法开始执行时创建,方法执行结束或代码块执行完毕后,立即被销毁,无法复用。

三、开发中常见的错误场景

场景 1:局部变量遮蔽成员变量 (变量遮蔽)

当局部变量和成员变量重名的时候,局部变量会"遮蔽"成员变量,此时如果想要访问成员变量,只需要使用this 关键字(实例变量)或类名(类变量)

场景 2:局部变量的作用域混淆

新手容易在嵌套代码块中误用局部变量,比如在for 循环内定义的变量,出了循环就无法访问。

http://www.cnnetsun.cn/news/104540.html

相关文章:

  • Docker MCP 网关插件开发指南(90%开发者忽略的核心原理)
  • FastReport开源版:快速构建.NET报表系统的完整指南
  • HeidiSQL数据库管理工具:从零开始的完整安装与使用指南
  • MATLAB与XFoil翼型分析:终极集成指南
  • EmotiVoice语音合成在新闻播报自动化中的效率提升
  • 浏览器原生Python编程革命:JupyterLite深度解析与应用指南
  • Vue Query Builder 终极指南:快速构建可视化查询界面
  • 从零构建高可用Agent服务:Docker备份恢复的7步黄金流程
  • 网站域名没有被百度收录
  • echarts给饼图以及折线图悬浮提示框添加单位
  • 从文本到情感语音:EmotiVoice如何重塑语音合成新标准?
  • GEO对决传统SEO:AI搜索时代,品牌如何赢得“心智推荐”
  • 【专家级排错手册】:基于Docker Compose的Agent服务日志采集失败的7种场景与应对方案
  • 极简主义知识管理新体验:Obsidian Minimal主题完全使用指南
  • 如何在gem5-gpu上实现全系统仿真模式 full-system mode
  • 兼容为基,革新为核 —— 金仓数据库重塑企业数据库运维新体验
  • YOLOv12架构革命:通过UniRepLynne主干网络实现特征提取能力的代际飞跃**
  • NewGAN-Manager终极指南:足球经理头像配置一键生成
  • 38、深入探索Linux系统中的事件追踪工具
  • 震惊!这家外卖点单小程序开发公司,竟让客户排队抢着合作!
  • MATLAB进行图像分割从基础阈值到高级分割
  • Figma-Context-MCP完整使用指南:让AI助手秒懂你的设计意图
  • 【Docker Buildx镜像推送终极指南】:掌握多架构构建与高效推送的5大核心技巧
  • EvolveGCN实战宝典:从入门到精通的动态图神经网络完全指南
  • 你的WebRTC安全吗?深度解密Janus加密防护体系
  • 5、CoreOS 调试与自动更新全解析
  • 13、容器技术与CoreOS集成:标准、运行时与高级特性
  • 21、容器化与微服务基础设施的技术洞察与实践指南
  • 2、轻量级容器优化操作系统及CoreOS技术详解
  • 别瞎挖了!弱口令挖掘就这 3 招(1 字典 + 2 技巧),月入 5K 稳