java中类变量和实例变量的实质区别?

createh53个月前 (02-18)技术教程58

类变量和实例变量的区别

相对于static(静态的)或说类的, 本章开始提到的都是instance(实例的)或说对象的。 每个对象都有自己的一份儿对象域或实例域,相互之间没关系, 不共享。 我们可以从对象中访问实例变量。

类变量或说静态变量跟实例变量是不一样的,不管创建了多少个对象,系统只为每个类变量分配一次存储空间。系统为类变量分配的内存是在执行main方法时马克-to-win, 就是在程序最最开始的时候(见下面StaticDemo的例子)。所有的对象共享了类变量。可以通过对象或者通过类本身来访问类变量。

java静态方法和实例方法的区别

静态方法(方法前冠以static)和实例方法(前面未冠以static)的区别

调用静态方法或说类方法时,可以使用类名做前缀,也可以使用某一个具体的对象名;通常使用类名。

static方法只能处理static域或静态方法。实例方法可以访问实例域, 静态域或静态方法, 记住都行。
本章源码

class StaticTest {
static int a = 4;
static int b = 9;
static void call() {
/*下一句是错误的,因为静态的不能调用实例的方法。*/
//callins();
System.out.println("a = " + a+"马克-to-win"+Test.c);//静态方法可以访问静态属性
}
void callins() {
call();
System.out.println("a = " + a+"实例马克-to-win"+Test.c);//静态方法可以访问静态属性

篇幅有限更多请见扩展链接:
http://www.mark-to-win.com/tutorial/java_2_StaticInstanceMethodDifference.html

相关文章

Java变量、常量、运算符、数组_java常量与变量例子

变量(Variables)在 Java 中,变量用于存储程序运行时所需的数据(The data required during the runtime)。变量的声明(The declaration o...

初识Java—(二十四)Java类成员_java 类

static关键字修饰的成员就是类成员,其中有类变量Field、类方法、静态初始化块。static修饰的类成员属于整个类,不属于单个实例。6.3.1 理解类成员在Java类里只能包含Field、方法、...

Java代码保护方法之一:ProGuard_java如何保护源码

ProGuard是一个开源的Java程序代码压缩、优化和混淆工具,是目前Java代码保护最常用的工具。“瘦身高手”+“优化小能手”+“混乱大师”。1、压缩(瘦身高手):检查并删除没有被使用的类、字段、...

Java反射机制最全详解(图文全面总结)

Java反射是各种框架以及中间件实现的基石,也是大厂面试重点考察内容,下面全面来详解Java反射机制@mikechen本篇已收于mikechen原创超30万字《阿里架构师进阶专题合集》里面。Java反...

Java基本语法_java基本语法浮点数的精确计算

Java 的 “特殊密码”(一)关键字:被赋予特殊含义的字符串在 Java 的世界里,关键字是被 Java 语言赋予了特殊含义,用作专门用途的字符串。这些关键字就像是 Java 程序的特殊密码,有着独...