`

未完 Variables 变量 (Instance/Class/Local)

阅读更多
Local/Instance/Class Variables:
http://www.leepoint.net/notes-java/data/variables/45local-inst-class.html

严格意义上,Java有三种变量类型:
实例变量 Instance variables (non-static fields):作为类成员的非静态变量。
类变量 Class variables (static fields):作为类成员的静态变量。
局部变量 Local variables:方法内部定义的变量。
其中前两种(Instance variables & Class variables),习惯上称其为成员变量英献称Fields,叫字段是不是更合适..


变量的初始化及默认值:
http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html
成员变量:声明时可以不对其进行初始化。如果不做初始化,编译器使用默认的值对其初始化:

局部变量:声明时可以不对其进行初始化,但编译器不会为一个未初始化的局部变量指定默认值。所以在第一次使用前必须显式为其指定初值。对未初始化的局部变量的访问操作是会出现编译错误的。
方法内的匿名代码块(Anonymous code blocks)是会限制变量的scope的,如下面的代码:
http://stackoverflow.com/questions/1563030/anonymous-code-blocks-in-java
public void foo() {
    {
        int i = 10;
    }
    System.out.println(i); // Won't compile; 局部变量i在匿名代码块之外是不可见的
}





变量的存储(参考:http://wuaner.iteye.com/admin/blogs/1669121): 待续。。。
http://docs.oracle.com/javase/tutorial/java/nutsandbolts/variablesummary.html
实例变量:存于堆中???类的每个对象有不同的实例变量存储空间。
类变量:存于静态。。。区?。只有一份,该类的所有对象共享这仅此一份的类变量。
局部变量:存于栈中?多线程访问方法情况下,局部变量是怎么存的那?每个线程有自己线程栈?


变量的生命周期:待续。。。
实例变量:始于对象被创建时,止于对象被垃圾回收器回收?
类变量:始于类加载。。。止于jvm stop?
局部变量:方法在执行的时候才会在栈stack中为其分配空间;当方法调用完成后,在栈中为这个方法的局部变量分配的内存空间被全部回收。



Tips:
局部变量只能使用final作为其修饰符(modifier),不能使用访问修饰符(public  protected  default(friendly、package-private)  private )、static作为其mofdifier。
分享到:
评论

相关推荐

    西门子变量的导出/导入有哪些方法可供选择?.pdf

     WinCC 变量可以使用 Smart Tools “Variables Import/Export” (VarExim.exe) 软件工具和 “Configuration Tool” 软件工具进行导出和导入。这些软件工具作为标准 随 WinCC 一起提供。必须通过 WinCC 安装程序进行...

    Grafana 变量 KeyValue 形式实现.md

    Grafna Dashboard 中,支持 `variables` 变量, 以下拉列表的形式展示在左上角,用户可选择其内容,下面的 Panel 中的对象查询中增加 $xxx 即可实现对象的切换, 比较方便。 问题: 常规实现没有问题,但对于下拉列表...

    浅析PHP原理之变量分离/引用(Variables Separation)

    本文将深入探讨PHP中的变量分离(Variables Separation)和引用(References)的概念,以及它们如何影响内存使用和程序执行效率。 首先,我们需要理解PHP中的zval结构。zval是PHP内部用于存储变量值的数据结构,...

    rf-实现变量文件的几种方式.rar

    - **资源变量**: 通过`*** Variables ***`部分定义在测试数据文件中的变量。 - **导入变量文件**: 通过`Import Variables`关键字导入外部文件的变量。 2. **变量文件格式**: - **.py文件**: Python文件,可以...

    。System_Variables_en系统变量.pdf

    《System Variables》是针对KUKA System Software 8.1, 8.2, 和 8.3版本的一份专家级文档,详细介绍了系统变量的使用。这份文档由KUKA Roboter GmbH发布,日期为2012年8月16日,版次为KSS 8.1, 8.2, 8.3 ...

    设置环境变量工具 NVM - eNvironment Variables Manager

    设置Windows环境变量工具 NVM - eNvironment Variables Manager 1.可以设置用户变量、系统变量,非常方便。 2.可以把环境变量导出成XML文件,不过不能导入 类似的工具有EnvMan,RapidEE。 此工具的源代码可以在...

    C/C++ 跨文件共享全局变量Demo

    1. **定义全局变量**:在其中一个源文件(如`global_variables.cpp`)中定义全局变量,例如: ```cpp // global_variables.cpp extern int sharedVar; // 声明但不初始化 int globalVar = 10; // 初始化的全局变量 `...

    blow分析.zip

    // Initialize local and output iconic variables HOperatorSet.GenEmptyObj(out ho_Image); //dev_open_window(...); ho_Image.Dispose(); HOperatorSet.ReadImage(out ho_Image, "printer_chip/printer...

    Maxwell多目标优化

    电机优化在建参数变量时有两种变量:1、Project Variables。相当于全局变量;2、local Variables。相当于局部变量; Project Variables能在一个project下各个2D、3D、RMxprt下用,设置在Design Properties下建立; ...

    c语言全局变量和局部变量问题汇总

    根据其作用范围的不同,可以将变量分为两大类:全局变量(Global Variables)与局部变量(Local Variables)。理解这两种变量的特点、使用场景以及它们之间的差异对于编写高效、可维护的代码至关重要。 #### 全局...

    labview局部变量与全局变量

    `Local Variables.vi`可能包含了如何在子VI中创建和使用局部变量,以及如何通过输入和输出端口传递局部变量的值的演示。`Global Variable.vi`可能展示了如何在多个VI之间创建和使用全局变量,以及如何管理全局变量的...

    hadoop单机配置方法

    # Set Hadoop-related environment variables export HADOOP_HOME=/usr/local/hadoop-0.20.2 # Set JAVA_HOME (we will also configure JAVA_HOME directly for Hadoop later on) export JAVA_HOME=/usr/lib/...

    scss-mixins-variables

    @import ' node_modules/sass-mixins-variables/variables ' ; // Import Mixins @import ' node_modules/sass-mixins-variables/mixins ' ; 覆盖默认变量 mixins使用的所有变量均已设置为!default,因此可以轻松地...

    C#读取JPEG图片的Exif信息

    // Declare local variables. string returnValue; try { // All of the EXIF properties will return strings to display in the control. // Some of the properties require additional formatting or ...

    静态全局变量,静态局部变量,全局变量,局部变量

    ##### 局部变量 (Local Variables) - **作用域**: 局部作用域,仅在其定义的函数或代码块内可见。 - **存储位置**: 通常存储在栈中。 - **生命周期**: 函数调用期间存在,函数执行完毕后销毁。 - **可见性**: 仅在...

    变量Variables)1

    在编程语言中,变量是程序的基本构建块,用于存储数据。在Java这样的编程语言中,变量是用来表示数据的内存位置,这些数据可以随着时间变化。在本文中,我们将深入探讨变量的声明、作用以及自由变量和约束变量的区别...

    Queues-vs-Local-Variables.zip_labview简单实例

    在LabVIEW编程中,"Queues vs Local Variables.zip_labview简单实例"是一个很好的起点,尤其对于初学者来说,它展示了两种关键的数据通信机制:队列(Queues)和局部变量(Local Variables)。这个实例旨在帮助理解...

    find-unused-sass-variables:查找未使用的Sass变量的简单工具

    查找未使用的assass变量 一个检查目录中未使用的Sass变量的简单工具。安装npm install find-unused-sass-variables --save-dev用法find-unused-sass-variables folder [, folder2...] --ignore " $my -var, $my -...

    tailwind-css-variables:将Tailwind配置文件转换为CSS变量

    安装将插件添加到您的项目中# Install via npmnpm install --save-dev tailwind-css-variables配置CSS变量插件提供了供您使用的选项。 这是将其添加到项目Tailwind插件中的示例。 在tailwind.js或tailwind.config.js...

Global site tag (gtag.js) - Google Analytics