Java学习笔记——局部变量和成员变量
声明:本文首发于我的个人微信公众号【Java编程社区】,查看更多文章与学习资源请移步我的公众号Java编程社区
成员变量:定义在类中的变量。
局部变量:定义在方法中的变量。
成员变量与局部变量的区别:
1、应用范围
成员变量在整个类中有效
局部变量只在其声明的方法中有效
2、生命周期
成员变量:它属于对象,它随着对象的创建而创建,随着对象的消失而消失
局部变量:使用完马上释放空间
看段代码
void show(int id){for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) {System.out.println(id);}}}
这里的id,i,j都是在方法内声明的,因此都是局部变量
id在show方法被调用时它的生命周期开始,方法结束时id消失
j当里层for循环执行时生命周期开始,当里层for结束,j消失
3、存储位置
成员变量属于对象,它存储在堆内,堆内的实体,当没有引用指向其时,才被垃圾回收处理。
局部变量存在于栈内存中,当不在使用时,马上就会被释放。
4、初始值
成员变量它存储在堆中,如果没有赋初值,它有默认值
整数byte,short,int,long = 0
char = ‘\u0000’
boolean = false
String = null
float,double = 0.0
局部变量要想使用必须手动初始化
注意事项:
局部变量名称可以和成员变量名称一样,在方法中使用的时候,采用的是就近原则。
内存分析
class Car {//汽车应该具备的属性String color;//汽车具备的颜色int num; //汽车跑的行为public void run(){System.out.println(color + "的车,轮胎数: " + num + "个,跑起来了");}
}public class CarDemo {public static void main(String[] args) {//创建实体Car car = new Car();car.color = "red";car.num = 4; //指挥车运行,调用格式:对象.对象成员car.run();}
}
这里car其实是对象的引用,它存储的是一地址,这个地址指向了堆里的一块内存。这里的color和num都是成员变量,null和0是它们的默认值,”red”和4是赋给它们的初始值。
最后再来看个例子
class Variable {int a; //成员变量a,默认值是0public void test() {int b = 20;//局部变量b,没有默认值,需要初始化System.out.println(b);//20 int a = 50;//局部变量a,和成员变量a的名称相同System.out.println(a);//50}
}
class VariableDemo {public static void main(String[] args) {Variable variable = new Variable();System.out.println(variable.a); //0,variable.a访问成员变量variable.test();//调用成员方法 }
}
代码执行结果:
今天就分享到这,后续会继续分享,敬请期待!
声明:本文首发于我的个人微信公众号【Java编程社区】,查看更多文章与学习资源请移步我的公众号Java编程社区
Java学习笔记——局部变量和成员变量相关推荐
- Java中合理使用局部变量替代成员变量、静态变量
故事起因 一个Java类中可以存在多种形式的变量,可以是最一般的成员变量.或静态变量.或临时变量.如下图: public class VariableDemo {static int staticVa ...
- java 静态成员 创建_Java学习笔记11---静态成员变量、静态代码块、成员变量及构造方法的初始化或调用顺序...
当创建一个对象时,各种成员变量及构造方法的初始化或调用顺序是怎样的呢? (1).如果类尚未加载,则先初始化静态成员变量和静态代码块,再初始化成员变量,最后调用相应的构造方法: (2).如果类已经加载过 ...
- java中的局部变量、成员变量、类变量
局部变量:在方法.构造函数或者语句块中定义的变量被称为局部变量. 特点:变量的声明和初始化都是在方法中,方法结束后,变量就会自动销毁. 例:下面代码块的s2 成员变量:成员变量是定义在类中,方法体之外 ...
- Java学习笔记2、环境变量配置与初学者常见错误
2.1 环境变量的配置 2.1.1 path环境变量配置的作用 程序的执行需要使用外部指令javac,但是javac指令仅仅能在JDK安装目录下的bin目录下运行,因此程序只能写入bin目录程序开发过 ...
- java学习笔记day07 成员变量与局部变量、形式参数、匿名对象、封装、private、this、构造方法、类详细讲解、static
java学习笔记day07 1.成员变量和局部变量的区别 定义变量的注意事项 2.形式参数⭐ [P175] 形参是个类名,要的其实是一个对象 3.匿名对象(了解即可) 4.封装 class Stude ...
- Java学习笔记day14(两个引用指向同一对象内存图解、成员变量和局部变量的区别、private关键字、this关键字、构造方法的特点、面向对象标准汽车类练习)
*1.两个引用指向同一对象内存: * 例子:Phone.java与Phone_Test.java /** 手机类:* 成员变量:品牌,价格,颜色...* 成员方法:打电话,发短信.. ...
- 第三次学JAVA再学不好就吃翔(part21)--局部变量与成员变量
学习笔记,仅供参考 文章目录 面向对象 局部变量与成员变量的区别 来几个例子 注意事项 面向对象 局部变量与成员变量的区别 在类中的位置不同 成员变量:在类中方法外 局部变量:在方法定义中或者方法声明 ...
- java中局部变量和成员变量
java中局部变量和成员变量 1. 定义的位置不一样 局部变量:在方法的内部 成员变量:在方法的外部,直接写在类当中 2. 作业范围不一样 局部变量:只有方法当中才能使用,出了方法就不能再用 成员变量 ...
- 【火同学】Java学习笔记——标识符,基本数据类型,变量
Java学习笔记 Ps:素材来源:老韩校长的Java编程课.目的是记录自己的学习历程,与商业利益无关.所有步骤都是自己根据课程内容编写,所以投原创啦! ★哔哩哔哩~搜索:这里是火同学 观看视频介绍 大 ...
最新文章
- MFC单文档框架编程(二): SDI框架下的消息处理
- python文件行数统计_文件行数和代码行数统计
- Atlassian发布事故管理解决方案Jira Ops
- jooq_jOOQ星期二:拉斐尔·温特豪德(Rafael Winterhalter)正在与字节好友合作字节码...
- js操作table中tr的顺序,实现上移下移一行的效果
- armv7 cortex a系列编程手册_AWTK能为现代GUI编程带来何种改变?
- 国科大高级人工智能+prml4-CNN
- 如何制作一条网线?(双绞线在水晶头中的排列顺序)
- 剑指offer (02):实现 Singleton 单例模式 (Python 实现详解)
- 信息收集端口扫描工具masscan
- 想学PLC编程,先弄清5种PLC专用语言
- CF 1467 C. Three Bags
- MFC无边框窗体设置窗口圆角,并且绘制边框
- Zbrush 导出置换 然后导入vray 在 3ds max 和 maya 设置
- 聊一次跳槽被怼的经历
- SQL巩固以及数据库、表结构优化
- 【如何处理Windows 8 系统自带微软拼音简捷输入法无法删除】
- python爬取网站的图片
- 现要求输入一个整数n,请输出斐波那契数列的第n项
- 我的世界服务器java进不去_萌新求助 mc服务器进不去