精华内容
下载资源
问答
  • 成员变量跟局部变量

    2017-12-13 15:30:00
    public class Variables { /* * 成员变量跟局部变量特点 * 成员变量:定义类中有什么,在类中定义,在整个类中都是可见的 * JAVa会给成员变量赋一个初始值 * 局部变量:类的方法中定义,用来临时保存数据,仅...

    public class Variables {
    /*
    * 成员变量跟局部变量的特点
    * 成员变量:定义类中有什么,在类中定义,在整个类中都是可见的
    * JAVa会给成员变量赋一个初始值
    * 局部变量:类的方法中定义,用来临时保存数据,仅限于定义它的方法
    * JAVA不会给局部变量赋初始值,不同方法中可以有相同名称的局部变量
    * 局部变量的优先级比同名的成员变量高
    */
    String name;//定义一个name的成员变量不赋值
    int age=19;//定义一个age的成员变量,赋值为19
    public void VarMethod() {//定义类的方法
    float height =1.80f;//定义一个局部变量,注意:局部变量必须要赋值不然会报错
    int age=18;//定义一个跟成员变量同名的变量
    System.out.println("姓名:"+name+"年龄"+age+"身高"+height);

    }
    public static void main(String[] args) {
    Variables variables = new Variables();//创建一个对象

    variables.VarMethod();
    }

    }

    打印结果:

    姓名:null年龄18身高1.8

    转载于:https://www.cnblogs.com/Gain-knowledge/p/8033124.html

    展开全文
  • 目录1 成员变量、局部变量和静态变量2 静态变量的特点及注意事项1 特点2 注意事项3 什么情况下使用静态变量3 总结 1 成员变量、局部变量和静态变量 成员变量:在类中且在方法外定义的变量称为成员变量; 局部变量:...

    1 成员变量、局部变量和静态变量

    成员变量:在类中且在方法外定义的变量称为成员变量;

    局部变量:方法中、方法的形参或代码块中定义的变量,都属于局部变量;

    静态变量:如果一成员变量有static关键字修饰,则该变量被称为静态变量。

    成员变量 局部变量 静态变量
    定义位置 类中,方法外 方法中、方法的形参或代码块内 类中,方法外
    初始化值 有默认初始化值 无,先定义,赋值,最后使用 有默认初始化值 (类初次加载时进行初始化)
    调用方式 对象调用 对象调用,类名调用
    存储位置 方法区
    生命周期 与对象共存亡 与方法共存亡 与类共存亡
    别名 实例变量 类变量

    2 静态变量的特点及注意事项

    1 特点

    1. 有static修饰符;
    2. 随着类的加载而加载,优先于对象存在;
    3. 可以直接被类名调用,即多了一种调用方式:类名.静态变量;
    4. 其内存空间对所有该类的实例是共享的,实现了数据共享。

    2 注意事项

    1. 如果变量是对象特有的,不应当被静态修饰。因为那样的话,特有变量会变成对象的共享变量,这样对事物的描述就出了问题。因此,在定义静态时,必须要明确,该变量是否是被对象所共享的。
    2. 静态方法只能访问静态成员(包括静态方法、静态变量、静态代码块),不可以访问非静态成员。因为静态方法加载时,先于对象存在,所以没有办法访问对象中的成员。
    3. this()和super()都指的是对象,所以,均不可以在static环境中使用。包括:static变量,static方法,static语句块。

    3 什么情况下使用静态变量

    静态变量实现了内存共享,节省了内存开销,但由于其生命周期太长,不易被回收,使用不合理反而会造成内存浪费,因此建议在满足以下条件时使用。

    1. 变量所在对象体积较大,占用内存较多;
    2. 变量所在对象生命周期较长;
    3. 变量所在对象数据稳定;
    4. 该类的实例有对该变量的共享需求。

    3 总结

    1. 如果一个变量能够用来描述一个类的属性,就定义为成员变量;
    2. 如果一个变量应被所有对象共享,就把这个变量用static来修饰,即为静态变量;
    3. 否则就定义为局部变量。
    展开全文
  • 聊到final修饰成员变量和局部变量有什么区别时,只是隐约记得大概,没有十足把握,于是进行论证 先告知论证结果 final修饰成员变量和局部变量 1.都不能被改变,也就是不能被二次赋值。引用类型是地址值不能被改变,...

    昨晚12点以后,跟人讨论问题,无意中聊到了final可以修饰的类型以及修饰后所具备的特点,可以详见
    java基础问题101问(javaSE阶段知识汇总)
    聊到final修饰成员变量和局部变量有什么区别时,只是隐约记得大概,没有十足把握,于是进行论证

    先告知论证结果

    final修饰成员变量和局部变量
    1.都不能被改变,也就是不能被二次赋值。引用类型是地址值不能被改变,对象中的属性可以改变
    2.成员变量在声明时必须被赋值,局部变量声明时可以不赋值,当局部变量被第一次赋值以后,不能二次赋值

    论证

    在这里插入图片描述

    在这里插入图片描述

    局部变量补充

    final修饰的局部变量,会给人一种延长生命周期的错觉,这是在方法中有内部类的情况下,因为局部变量在方法调用一次后就死亡了,内部类对象在没有引用指向后才死亡,所以会有内部类对象还在,局部变量已死的情况,这时内部类怎么访问它所在方法的局部变量呢?
    实际上是局部变量在方法调用一次后就死亡了,但是final修饰的局部变量会在内部类对象中拷贝一份,所以内部类对象访问的是拷贝给它的副本,已经成为它的成员了。
    在这里插入图片描述

    可以看下别人的博客解释,链接,要是没有耐心就直接看我的总结

    展开全文
  • makefile学习(七):全局变量和局部变量

    千次阅读 2019-07-25 11:13:14
    问题:makefile变量与C/C++等高级语言的变量有什么区别? 我们首先回忆一下C语言关于变量的特点吧: 变量分为全局变量和局部变量:区别在于作用域不同,存储区域不同 变量需要声明类型才能使用:如int、char、float...

    7.makefile中的全局变量和局部变量

    问题:makefile变量与C/C++等高级语言的变量有什么区别?

    我们首先回忆一下C语言关于变量的特点吧:

    1. 变量分为全局变量和局部变量:区别在于作用域不同,存储区域不同
    2. 变量需要声明类型才能使用:如int、char、float等
    3. 变量初始化:全局变量初始化默认为0,局部变量初始化为不确定值
    4. 通过extern关键字可以在多个源文件共同使用同一个变量

    环境变量(全局变量)

    环境变量实际就是操作系统的全局变量

    1. makefile中能够直接使用环境变量的值
    2. 定义了同名变量,环境变量将被覆盖
    3. 运行make时知道“-e”选项,优先使用环境变量

    问题:为什么我们需要在makefile中使用环境变量?

    这是因为一般在项目中,并不只有一个makefile,所以就会存在共用变量或变量传递的问题。而环境变量可以在所有makefile中共同使用,因此就能解决这个问题。
    但是,环境变量毕竟是操作系统的全局变量,当操作系统不同时,有些环境变量就不存在了,所以过多依赖环境变量会导致移植性降低

    问题:除了环境变量之外,还有别的方法在makefile之间传递变量吗?

    1. 直接在外部定义环境变量进行传递
    2. 使用export 定义变量进行传递(定义临时环境变量)
    3. 定义make 命令行变量进行传递 (推荐)

    示例代码:变量的传递

    Makefile.1
    JAVA_HOME := java home
    export var := D.T.Software
    new := TDelphi
    
    test :
        @echo "JAVA_HOME => $(JAVA_HOME)"
        @echo "make another file ..."
        @$(MAKE) -f makefile.2
    @$(MAKE) -f makefile.2 new:=$(new)
    
    Makefile.2
    test:
        @echo "JAVA_HOME => $(JAVA_HOME)"
        @echo "var => $(var)"
        @echo "new => $(new)"
    

    输出结果:
    C:\exercise\makefile>make
    “JAVA_HOME => java home”
    “make another file …”
    mingw32-make[1]: Entering directory C:/exercise/makefile' "JAVA_HOME => " "var => D.T.Software" "new => " mingw32-make[1]: Leaving directoryC:/exercise/makefile’
    mingw32-make[1]: Entering directory C:/exercise/makefile' "JAVA_HOME => " "var => D.T.Software" "new => TDelphi" mingw32-make[1]: Leaving directoryC:/exercise/makefile’

    分析:
    1.JAVA_HOME := java home 实际上是Linux环境变量,但是在Windows命令行中却不存在这个变量。所以我们调用makefile.2时,JAVA_HOME打印却是空字符串。
    2.export var := D.T.Software 我们定义了一个临时的环境变量,所以可以在别的makefile中共同使用。
    3.$(MAKE) -f makefile.2 new:=$(new) 可以通过命令参数传递变量。

    目标变量(局部变量)

    1. 作用域只在指定目标及连带规则中
    • target : name value
    • target : override name value

    在这里插入图片描述

    模式变量

    1. 模式变量是目标变量的扩展
    2. 作用域只在符合模式的目标及连带规则中
    • pattern : name value
    • pattern : override name value
      在这里插入图片描述

    示例代码:局部变量初探

    var := D.T.Software
    new := TDelphi
    
    test : var := test-var
    %e : override new := test-new
    
    test : another
        @echo "test :"
        @echo "var => $(var)"
        @echo "new => $(new)"
        
    another :
        @echo "another :"
        @echo "var => $(var)"
        @echo "new => $(new)"
        
    rule :
        @echo "rule :"
        @echo "var => $(var)"
        @echo "new => $(new)"
    

    输出结果:
    C:\exercise\makefile>make
    “another :”
    “var => test-var”
    “new => TDelphi”
    “test :”
    “var => test-var”
    “new => TDelphi”

    分析:
    1.模式匹配中“%”代表的是通配符,就是目标最后一个字符e就能匹配了。
    2.局部变量的作用域会延伸到依赖规则中。

    展开全文
  • 内存管理是计算机学习编程的一个重要知识,也是令大多数程序员比较头疼的一个知识。由于在目前的嵌入式...一、堆与栈特点栈:由系统自动分配的释放,用来存放函数的参数、局部变量的值。先进先出的特点堆:由程...
  • 2.形式参数如果现在是一个类(除了String类),它作为形式参数有什么特点 3.在一个学生类中,给学生的年龄属性赋值—赋值为负数----不合理------封装 4.一个标准类写法: 属性私有化,对外提供公共的访问方法 5.this ...
  • 1.在类中变量以final作为修饰符的变量(静态变量,实例变量,局部变量)称为常量。 2.只能被对象访问但不能修改它的值。 其次看一下static修饰符: 1.static表示“全局”、“静态”的意思,但是Java语言中中没有...
  • 静态局部变量有两个用法,记忆功能和全局生存期.  2. 用于全局变量,主要作用是限制此全局变量被其他的文件调用.  3. 用于类中的成员.表示这个成员是属于这个类但是不属于类中任意特定对象 static 声明的变量在...
  • 问题:全局变量和局部变量在内存中是否区别?如果,是什么区别? 解析:区别。全局变量保存在内存的全局存储区中,占用静态的存储单元;局部变量保存在栈中,只有在所在函数被调用时才动态地为变量分配...
  • 面向对象思想有什么特点? 答:随着需求的更改,功能的增多,需要面对每一个步骤很复杂。能否把这些步骤和功能在进行封装,封装时根据不同的功能,进行不同的封装,功能类似的封装在一起。如果要使用,找到对应的类...
  • 有什么特点? 最终的意思。可以修饰类,方法,变量。 它修饰类,类不能被继承。 它修饰方法,方法不能被重写。 它修饰变量变量是常量。且没有默认初始化,只能初始化一次。----------------------------------...
  • 一、基于寄存器与基于固件库的stm32 LED流水灯例子的编程方式有什么差异 使用固件库,目前比较多的例程是使用固件库编写的。官方的例子也都采用固件库方式。特点就是简单,易于理解,资料多。如果你没有CortexM系列...
  • 线程有什么特点

    千次阅读 2019-05-26 21:08:06
    1、轻型实体 线程中的实体单位基本上不拥有系统资源,只是一点必不可少的、能保证独立运行的资源。 线程的实体包括程序、数据和...4)存放每个线程的局部变量主存区。 5)访问同一个进程中的主寸和其他资源...
  • 栈:存放的是局部变量(在方法和语句块内部定义的变量):当方法和语句块一结束,空间马上释放堆:存放的是成员变量(也叫属性,在方法外,在类里,定义的变量):随着对象而产生,随对象销毁而销毁。数据段:存放的...
  • 变量概述

    2018-05-12 21:20:42
     我们说变量,变量有什么特点呢?它的属性有哪些呢?变量有五大属性:生命周期、内存区域、作用域、默认值和连接属性。我们就从这五个方面来说。 变量的可以分为四大类:(静态)全局变量、(静态)局部变量、动态...
  • 对比局部变量有什么不同?我们要如何正确使用变量?我们先来看第一个问题当系统加载类或者创建类的实例时,此时系统便自动为成员变量分配空间,并在分配空间后自动为成员变量指定初始化值看如下几行代码:publi...
  • static有什么用途

    千次阅读 2016-10-26 10:08:59
    全局静态变量有以下特点: (1)在全局数据区内分配内存 (2)如果没有初始化,其默认值为0 (3)该变量在本文件内从定义开始到文件结束可见。 二、定义全局静态变量:在局部变量前面加上关键字static,该局部...
  • 接下来说存储类说明符的第二个知识点——静态变量,它包括三种:全局变量/外部变量,静态...这个内存区域有什么特点?我们知道栈区的特点是 :变量的申请与释放都是由操作系统帮我们管理的,而且变量的生命周期在它...
  • static有什么作用?

    2019-10-09 03:28:42
    全局静态变量有以下特点: (1) 在全局数据区内分配内存 (2) 如果没有初始化,其默认值为0 (3) 该变量在本文件内从定义开始到文件结束可见 二、 定义局部静态变量:在局部静态变量前面加上关键字stati...
  • 前篇《由static来谈谈模块封装》基本实现了对外隐藏属性,隐藏局部模块函数,开放接口的功能。对于这个话题还有些点没有深入探讨:为什么要这样做?...先谈谈全局变量特点 全局变量(Global Var...
  • static有什么

    2015-12-13 17:11:43
    面试题:static有什么作用? 答:在C语言中,static主要定义全局静态变量,定义局部静态...全局静态变量有以下特点: (1) 在全局数据区内分配内存 (2) 如果没有初始化,其默认值为0 (3) 该变量
  • 00014.03局部内部类

    2020-09-18 14:27:02
    只能abstract 或者 final2、特点(2)作用域2、特点(3)如果局部内部类在静态方法中,那么它不能使用外部类的非静态成员2、特点(4)在局部内部类中,可以使用当前局部类所在方法的局部变量,但是要求这个局部...
  • "动作"本质上是一段C代码,在运行系统中,后台任务(如打印报表、监控变量或完成特定的计算等)均由动作来完成。在脚本系统中动作分为"全局动作"和"局部动作"。在单用户项目中,它们没有明显区别;在"客户机-服务器...
  • Java中静态变量的使用

    千次阅读 2012-08-30 13:32:42
    我们在编写java程序时候可能会遇到错误:“ERROR无法从静态上下文中引用非静态变量” 下面我们将会分析怎么解决这个问题。 什么是“static”?...(1)生存周期:静态局部变量的生存周期也是整个源程序。
  • ERROR无法从静态上下文中引用非静态变量2012-06-16 20:58:52 分类:Java ...什么是“static”?...用这个关键字修饰的变量叫做静态变量,其特殊的作用...(1)生存周期:静态局部变量的生存周期也是整个源程序。...
  • js全局变量和局部变量两种说法。但是从广义来看我认为js只有局部变量。(这里要把不带var的变量定义去掉) 为什么这么说捏?因为这样从js寻找变量的方式来说了。js寻找变量的方式是从内到外的,js引擎寻找变量的...
  • 栈是被发明出来管理内存的,其如下特点分配的内存小,因此不应该在程序中定义过大的局部变量,如int a[10000],都是不合理的定义自动化,即我们在函数内定义(不用static修饰)一个数据(局部变量,入栈...

空空如也

空空如也

1 2 3 4 5 ... 14
收藏数 280
精华内容 112
关键字:

局部变量有什么特点