java成员变量和局部变量的初始化和内存中的运行机制
成员变量:
当系统加载类或创建类的实例时,系统会自动为成员变量分配内存空间,并在分配内存空间后,自动为成员变量指定初始值。
eyeNum是类属性。name是实例属性
所有person实例访问eyeNum都将访问person类的eyeNum属性。访问的是同一块内存。如果通过实例修改类属性,所有实例访问时都会改变。
局部变量:
局部变量定义后,必须经过显示初始化才能使用。这意味着定义了局部变量后,系统并未为这个变量分配内存空间,直到等到程序为这个变量赋值初始值时,系统才会给局部变量分配内存,并将初始值保存到这块内存中。
与成员变量不同,局部变量不属于任何类或实例,因此它总是保存在其所在方法的栈内存中。如果局部变量是基本类型变量,则直接把变量值存放在栈中,如果是引用类型,则存放地址在栈中。
栈内存中的变量无须系统垃圾回收,变量是随方法或代码块的运行结束而结束的。因此,局部变量的作用域是从初始化该变量开始,知道该方法或该代码块运行完成而结束。因为局部变量只保存基本类型的值或对象的引用,因此局部变量所占的内存通常较小。
当我们定义一个成员变量时,成员变量将被放置到堆内存中,成员变量的作用域将扩大到类存在范围或者对象存在范围。这种范围扩大有两个坏处:
1,增大了变量的生存时间,将导致更大的系统开销
2,扩大了作用域,不利于程序的内聚性。
转载于:https://www.cnblogs.com/fpcbk/p/9005115.html
java成员变量和局部变量的初始化和内存中的运行机制相关推荐
- 成员变量的初始化和内存中的运行机制
成员变量被分为类变量和实例变量两种,定义成员变量时没有static修饰的就是实例变量,有static修饰的就是类变量.其中类变量从该类的准备阶段起开始存在,直到系统完全销毁这个类,类变量的作用域与这个 ...
- Java成员变量和局部变量的区别
package com.zhangxueliang.demo;import org.junit.Test;/** 成员变量和局部变量的区别:* A:在类中的位置不同* 成员变量:类中,方法外* 局部变 ...
- JAVA 成员变量与局部变量的区别
public class ObjectOrientend5 {int x;//为成员变量,紧跟着类public void show(int a){int y = 0;//这里的a,y都是在方法中,故都 ...
- day6 java成员变量与局部变量以及对象的建立
1.成员变量与局部变量 2.属性 3.类的创建与对象的实例化 一个文件中可以有多个类,但是public class只有一个,并且与文件名相同 对象的创建 引用实例变量 综上 4.JVM内存图
- Java 成员变量和局部变量
成员变量:在类中定义,用来描述对象将要有什么,可被本类,有关系的其他类使用 局部变量:在类的方法中定义,在方法中临时保存数据,只能被当前类使用 区别:1.作用域不同 局部变量的作用域仅限于定义它的 ...
- 关于Java成员变量、局部变量、方法,在JVM的内存空间分配
1.变量类型 2.类的结构 下面是一般类的结构 //类体=属性+状态(即:类体=变量+方法) public class 类名{ //类名最好首字母大写的英文String name; //在方法体外,所 ...
- Java 成员变量与局部变量
成员变量:在整个类中都有效 局部变量:在方法内定义的变量称为"局部变量"或"临时变量",方法结束后局部变量占用的内存将被释放 其特点就是只在定义它的方法中有效, ...
- [JAVA基础] 成员变量和局部变量(一看就懂的总结归纳篇)
引言 成员变量和局部变量在每种编程语言中都有涉及,如果之前了解过其他语言的成员变量或者局部变量,那么在学习java中的成员变量和局部变量时可以看看有那些联系和不同,这一块的东西也不能说难,如果第一次接 ...
- java成员变量/局部变量
成员变量/局部变量 1.定义位置不同,成员变量定义在类里,局部变量定义在类的方法里. 来自网络 2.成员变量中,其中类变量从该类的准备阶段起开始存在,直到系统完全销毁这个类,类变量的作用域与这个类的生 ...
最新文章
- 生成树协议,stp使用哪两个参数来选举根网桥?
- 主要的窗体控件的概述
- Android调试的必杀技——反汇编
- Codeforces Round #375 (Div. 2) D. Lakes in Berland 并查集
- 全球及中国智能隐形眼镜行业供需现状与营销策略建议报告2022-2028年
- 你是别人眼中的废物产品经理吗?
- 计算机控制系统三种信号,计算机控制技术模拟试题3
- 采用这套全方位监控方案,立刻规避90%采购风险(附体验demo)
- python入门教程(非常详细)-python初学者怎么入门:python入门教程非常详细
- es分词查询与模糊查询
- [BZOJ 3622]已经没有什么好害怕的了(Dp+容斥原理)
- r4烧录卡内核安装_R4 Wood内核怎么用?R4烧录卡Wood R4内核详细使用教程
- 单片机软件开发的简单入门
- 【最详细】Wireshark使用教程
- 计算机图表制作教程,echarts入门教程 5分钟上手制作ECharts图表
- Linux服务器之Redis集群搭建
- APP登录 技术点与流程全解
- 设计模式超简单的解释!
- OLLYDBG使用笔记
- C#操作Word模板并且修改书签