`
Josh_Persistence
  • 浏览: 1645829 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类

Java - 变量及其生命周期,初始值,访问方式

    博客分类:
  • Java
阅读更多

一、java类的成员变量有两种: (静态变量,实例变量)

1.被static关键字修饰的变量,叫类变量或者静态变量。

      1.1: 类的静态变量在内存中只有一个,java虚拟机在加载类的过程中为静态变量分配内存,

      1.2: 静态变量位于方法区,被类的所有实例共享。 

      1.3: 静态变量可以直接通过类名进行访问,其生命周期取决于类的生命周期。

      1.4: 静态变量是类相关的变量,所以他的生命周期是从这个类被声明,到这个类彻底被垃圾

回收机制彻底回收才会被销毁。

 

2.另一种没有static修饰,为实例变量 

      2.1:实例变量取决于类的实例。每创建一个实例,java虚拟机就会为实例变量分配一次内存,

      2.2:实例变量位于堆区中,其生命周期取决于实例的生命周期。

      2.3:实例变量是这个类的对象里的变量,它和静态变量不同,它只能由创建出的对象来调用。

      2.4:所以实例变量是从这个对象(其实就是实例)被创建开始,直到这个对象没有任何引用变量

去引用它,最终被垃圾回收站回收,这时这个实例变量也跟着就消失了。

      2.5:只要对象被当作引用,实例变量就将存在。

 

 

    总而言之:静态变量生命周期就是类的开始和销毁

              实例变量生命周期就是对象的开始和销毁.

 

 

二、局部变量

    1.作用域: 在你定义的范围内有效。

    2.作为方法或语句块的成员而存在,存在于方法的参数列表和方法定义中。

    

初始化

1:局部变量在使用前必须被程序员主动的初始化,

2:成员变量则会被系统提供一个默认的初始值。

所以在语法上,类的成员变量能够定义后直接使用,而局部变量在定义后先要赋初值,然后才能使用。

 

引用:所有类的成员变量可以通过this来引用。

2
0
分享到:
评论

相关推荐

    java变量的生命周期与作用域

    Java 变量的生命周期是指变量从定义到销毁的整个过程,而作用域是指变量可以被访问的范围。在 Java 中,变量的生命周期和作用域是密切相关的。 变量的生命周期可以分为三个阶段:定义、初始化和销毁。定义是指变量...

    Java中类的生命周期

    在深入了解Java中类的生命周期之前,我们首先需要了解Java虚拟机(JVM)及其生命周期的概念。 **1. Java虚拟机启动** 当我们通过`java`命令运行一个Java程序时,会启动一个Java虚拟机进程。这个进程从启动到终止的...

    Java中对象的生命周期 ..doc

    - 接着,对象的实例变量会被初始化为其默认值或指定的初始值。 - 对象可以通过多种方式创建: - 使用`new`关键字。 - 通过反射机制。 - 调用对象的`clone()`方法。 - 运用反序列化方法。 2. **显式创建对象**...

    Java虚拟机和Java程序的生命周期?

    3. **准备(Preparation)**:为类变量分配内存,并设置类变量初始值(默认值)。 4. **解析(Resolution)**:将符号引用转换为直接引用的过程。主要是将类中的符号引用解析为实际的内存地址引用。 5. **初始化...

    黑马程序员 - Java基础教学 - 03 - 变量的作用域、for循环、break、continue、内存结构

    #### 一、变量的作用域与生命周期 变量的作用域定义了变量的可见性和生存周期。在Java中,变量根据其声明位置的不同,具有不同的作用域。例如,在给定的示例代码中: ```java for(int x = 1; x ; x++) { for(int ...

    Java实例变量、类变量、局部变量

    2. **生命周期**:成员变量的生命周期与对象相同,局部变量的生命周期与方法或代码块相同。 3. **默认值**:成员变量有默认值,而局部变量没有。 ##### 成员变量与静态变量的区别: 1. **生命周期**:成员变量随...

    Java 成员变量和局部变量

    1. **生命周期与作用域**: 局部变量在其声明的代码块内部有效,一旦离开该块,变量就不再存在。它们不会在方法调用之间保持值。 2. **必须初始化**: 与成员变量不同,局部变量在声明时必须立即初始化,否则编译器将...

    Java成员变量类变量局部变量的区别共5页.pdf.zip

    - **初始化**:成员变量和类变量有默认初始值,局部变量必须显式初始化。 - **访问方式**:成员变量和类变量可以通过对象或类名访问,局部变量只能在定义它的代码块内访问。 了解这三种变量类型及其特性对于理解和...

    Java基础精品课02-变量和运算符.zip

    了解变量的作用域、生命周期和初始化规则对于编写有效且无错的代码至关重要。 运算符则是用来执行特定操作的符号,它们可以对变量或常量进行算术、比较、逻辑、位或赋值操作。算术运算符包括加法(+)、减法(-)、...

    java 常量与变量

    在Java编程语言中,常量和变量是两个基础且重要的概念。它们是程序中存储数据的容器,理解它们的性质和用法对于编写高效的代码至关...在实际编程中,还需根据需求选择合适的数据类型,并注意变量的作用域和生命周期。

    详解java类的生命周期.doc

    ### 详解Java类的生命周期 #### 引言 在探讨Java类的生命周期之前,我们先简单回顾一下Java类从创建到销毁的过程。Java作为一种广泛使用的编程...希望本文能够帮助读者更深入地掌握Java类的生命周期及其背后的机制。

    Java中类的生命周期.doc

    初始化的目的在于给类的静态变量赋予正确的初始值。这一步骤通常会在类被首次主动使用时触发。 #### 四、类加载器 类加载器负责将类加载到JVM中,Java虚拟机自带几种类型的类加载器,包括启动类加载器、扩展类加载...

    Java类加载器:静态变量初始化.docx

    在本文中,我们讨论了 Java 类加载器中的静态变量初始化机制,了解了静态变量的初始化顺序和类加载器的生命周期。通过对静态变量初始化机制的理解,我们可以更好地掌握 Java 语言的基础知识,并更好地应用 Java 语言...

    Java中的成员变量

    这些变量的生命周期与对象相同,当对象被创建时初始化,当对象被垃圾回收时,它们也随之消失。可以通过对象名来访问实例变量,如`sd1.i`或`sd2.i`。此外,可以使用`this`关键字来引用当前对象的实例变量,虽然在...

    Java-objects-initial.rar_objects

    - **默认初始化**:当声明一个类的成员变量时,如果没有指定初始值,Java会为它们提供默认值。例如,`int`类型会被初始化为0,`boolean`为`false`,引用类型为`null`。 - **显式初始化**:如果在声明时提供了初始...

    Java变量(学习笔记).docx

    - 局部变量:在方法内部声明,只在该方法的生命周期内有效,且必须在使用前初始化。 6. Java的命名规范: - 包名:所有单词小写,如`com.example.myapp`。 - 类名/接口名:每个单词首字母大写,如`MyClassName`...

    深入java虚拟机(三)——类的生命周期(下)类的初始化1

    `,变量`a`在声明时就被赋予了初始值0。 2. **静态代码块初始化**:通过静态代码块可以更复杂地初始化静态变量,如`static { b = 2; }`,变量`b`在这里被初始化为2。 类的静态变量初始化是有序的,遵循类文件中的...

    Java程序基础成员变量和局部变量PPT优秀资料.pptx

    成员变量的生命周期与对象的生命周期相同,当对象被创建时,成员变量被初始化,当对象被销毁时,成员变量被销毁。 在Java中,成员变量可以是public、private、protected等访问修饰符,它们确定了成员变量的可访问性...

Global site tag (gtag.js) - Google Analytics