`
chenchuangfeng
  • 浏览: 80327 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

实例变量和类变量区别的总结

    博客分类:
  • Java
阅读更多

最近在复习一些Java知识..顺便给自己做一下总结,哪里写得不好,多情大家指教!!

 

实例变量和类变量平时我们好像多少叫做非静态变量和静态变量,两者的区别就是前者没static修饰,后者有static修饰。实例变量和类变量,这样的叫法,可以很直接得说明它们一个是属于实例的,另一个是属于类的,那什么叫属于实例和属于类呢?

 

属于实例:在new出类的实例的时候进行初始化的变量。

属于类: 在JVM加载这个类的时候进行初始化。

 

在同一个虚拟机上,类的加载只有一次,也就是类变量在虚拟机中只有分配一块内存,而实例变量在内存中可能有多块内存,要看你new出几个对象。

 

这里说一下java中的前向引用,看一下一段代码

 

int  a = b + 1;
int  b = 2;

 

  对两个整形初始化的时候会报错 ,因为在初始化a时,需要更具b的值进行计算,所以是非法前向引用了b,但是看下下一段代码

 

int  a = b + 1;
static int  b = 2;

  这段代码就不会报错,因为 b 是类变量,类变量的初始化是在类加载的时候进行的,所以b的初始化实在a之前,所以啊可以根据b的值进行计算。

 

类变量可以通过类进行访问,也可以通过实例进行访问,两种访问都是一样的,因为实例进行访问是间接通过类进行访问。

5
4
分享到:
评论
5 楼 chenchuangfeng 2013-01-07  
mabp 写道

呵呵..刚刚开始写博客 望多多指教
4 楼 mabp 2013-01-07  
3 楼 chenchuangfeng 2013-01-07  
henghengdh 写道
博主能不能说下两个变量的回收机制是怎样的?

回收机制还没怎么深究...呵呵   现在学习到的还比较有限,这个可以等以后互相探讨。   谢谢你回复我的博客
2 楼 361010911 2013-01-07  
henghengdh 写道
博主能不能说下两个变量的回收机制是怎样的?

GC吧
1 楼 henghengdh 2013-01-07  
博主能不能说下两个变量的回收机制是怎样的?

相关推荐

    类变量和实例变量.txt

    在面向对象编程中,尤其是在Java这样的语言里,类变量(也称为静态变量)和实例变量是两个重要的概念。它们都存储了对象的状态信息,但有着本质的区别。 - **实例变量**:实例变量是在每个对象创建时为其分配内存...

    类变量、全局变量、实例变量, 多态、为什么ruby、ruby编码规范

    在编程语言中,变量是存储...总结,理解并熟练运用Ruby中的类变量、全局变量、实例变量以及多态概念,对于编写高效、可维护的代码至关重要。同时,遵循Ruby编码规范,可以进一步提升代码的可读性,促进团队间的合作。

    Runtime_实例变量遍历

    总结来说,`Runtime`类提供了与Java运行时环境交互的接口,而实例变量遍历则涉及到对对象内部状态的全面了解和操作。归档和反归档是数据持久化的重要手段,通过重写`writeObject()`和`readObject()`方法,我们可以...

    java变量命名心得

    下面我们将通过一个实例来展示局部变量和实例变量的区别,并总结 java 变量命名的几个典型问题。 首先,让我们来看一下局部变量和实例变量的区别。局部变量是指在方法内部定义的变量,它的作用域仅限于该方法内部。...

    Ruby中类变量和实例变量的比较

    ### Ruby中类变量和实例变量的比较 ...总结来说,类变量和实例变量各有特点,理解它们的区别对于编写高效、可维护的Ruby代码至关重要。希望以上内容能够帮助读者更好地掌握这两种变量类型及其用法。

    java入门教程:数据类型_实例变量.pdf

    总结来说,Java中的实例变量是对象状态的关键组成部分,它们在对象生命周期中创建和销毁,可以通过访问修饰符控制访问权限,并且拥有默认值。理解和熟练使用实例变量对于Java程序员来说至关重要,因为它们构成了类的...

    JS中类的静态方法,静态变量,实例方法,实例变量区别与用法实例分析

    总结起来,类的静态方法和静态变量是属于类本身的,与类的实例无关,而实例方法和实例变量是每个类实例所特有的。理解这些概念对于编写可维护和高效的JavaScript代码至关重要,特别是在涉及类和对象的复杂逻辑时。在...

    C#静态变量与实例变量实例分析

    总结来说,C#中的静态变量和实例变量有以下关键区别: 1. 语法定义:静态变量使用`static`修饰,实例变量不使用。 2. 内存分配:静态变量在类加载时分配,实例变量在创建实例时分配。 3. 访问方式:静态变量通过类名...

    IOS开发学习总结objectivec面向对象之——成员变量,模拟类变量,单例模式电脑资料.doc

    Objective-C 中的变量可以分为成员变量、局部变量和全局变量,成员变量是实例变量,可以通过内部局部变量来模拟类变量。单例模式是一种常用的设计模式,可以确保在应用程序中只有一个实例的存在。

    python中类变量与成员变量的使用注意点总结

    - 为了清晰地区分类变量和实例变量,可以在类定义中使用注释或文档字符串来明确指出变量的作用范围。 - 在类定义中,可以使用 `@classmethod` 或 `@staticmethod` 来更好地控制类方法和静态方法的行为,从而避免...

    简单分析python的类变量、实例变量

    Python中的类变量和实例变量是面向对象编程中的两个基本概念,它们在定义和使用上有显著的区别。 1. **类变量**: 类变量是在类定义中声明,但不在任何方法内部定义的变量。它们通常不使用`self`关键字进行赋值。...

    Python面向对象程序设计之类和对象、实例变量、类变量用法分析

    本文详细介绍了Python面向对象程序设计中类和对象的基本概念,以及实例变量和类变量的区别与用法。了解这些基本概念对于编写高效的面向对象程序至关重要。希望本文能帮助读者更好地理解和掌握Python面向对象编程的...

    Java 变量类型总结.docx

    Java编程语言中有三种类型的变量:类变量(静态变量)、实例变量和局部变量,每种都有其特定的用途和生命周期。 1、类变量(静态变量) 类变量,也被称为静态变量,使用`static`关键字声明,存在于类的静态存储区。...

    Java 变量类型总结.pdf

    Java 变量是编程语言中存储数据的基本单元,它分为三种主要类型:类变量(静态变量)、实例变量和局部变量。每种类型的变量在内存中存储的位置、生命周期和访问方式都有所不同,以下是对这三种变量类型的详细说明。 ...

    全局 局部变量以及static 变量区别

    ### 全局变量、局部变量及Static变量的区别详解 #### 一、基本概念与作用域 **全局变量(Global Variables)**: - **定义**: 在函数外部定义的变量。 - **作用域**: 全局变量在整个程序中都可被访问,只要在程序的...

    Ruby中的变量学习总结

    Ruby中的变量有几种形式,分别是局部变量、实例变量、类变量、全局变量,对于初学者来说,常常容易搞混,尤其像本人这种做java的,理解起来还是头痛,经过仔细辨别学习,将这几种变量的差异及使用场景总结如下: ...

    C++ 包含类两个类互相调用彼此的类成员变量和方法

    这样,类A和类B就可以访问彼此的私有和保护成员,但需要注意的是,这可能破坏封装性,增加代码的耦合度。 ```cpp class A { friend class B; private: int a_private; }; class B { friend class A; private: ...

    Java变量初始化

    Java 变量初始化的时机可以分为两类:实例变量初始化和类变量初始化。 实例变量初始化 实例变量初始化可以在三个地方进行: 1. 定义实例变量的时候指定初始值; 2. 非静态初始化代码块中对实例变量指定初值; 3. ...

    java中静态与非静态的变量定义与使用

    在 `Cupboard` 类中,`b3` 就是一个实例变量,它在创建 `Cupboard` 对象时被初始化,并且每个 `Cupboard` 实例都有自己的 `b3` 副本。 在代码的 `main` 方法中,我们看到了静态变量 `t2` 和 `c1` 的初始化。由于...

Global site tag (gtag.js) - Google Analytics