java中静态变量和实例变量的区别详细介绍
运行效果:
控制台效果:
==================================================
代码部分
==================================================
/hello_test/src/com/b510/test/StaticTest.java
代码如下:
/**
*
*/
package com.b510.test;
/**
* 在程序运行时的区别:实例变量属于某个对象的属性,必须创建了实例对象,<br>
* 其中的实例变量才会被分配空间,才能使用这个实例变量。静态变量不属于某<br>
* 个实例对象,而是属于类,所以也称为类变量,只要程序加载了类的字节码,<br>
* 不用创建任何实例对象,静态变量就会被分配空间,静态变量就可以被使用了。<br>
* 总之,实例变量必须创建对象后才可以通过这个对象来使用,静态变量则可以<br>
* 直接使用类名来引用。例如,对于下面的程序,无论创建多少个实例对象,<br>
* 永远都只分配了一个<code>staticInt</code>变量,并且每创建一个实例对象,<br>
* 这个<code>staticInt</code>就会加1;但是,每创建一个实例对象,就会分配一个<code>random</code>,<br>
* 即可能分配多个<code>random</code>,并且每个<code>random</code>的值都只自加了1次。<br>
*
* @author <a href="mailto:hongtenzone@foxmail.com">hongten</a>
* @date 2013-3-2
*/
public class StaticTest {
private static int staticInt = 2;
private int random = 2;
public StaticTest() {
staticInt++;
random++;
System.out.println("staticInt = "+staticInt+" random = "+random);
}
public static void main(String[] args) {
StaticTest test = new StaticTest();
StaticTest test2 = new StaticTest();
}
}
相关推荐
-
浅谈静态变量、成员变量、局部变量三者的区别
静态变量和成员变量的区别: A:所属不同 静态变量:属于类,类变量 成员变量:属于对象,对象变量,实例变量 B:内存位置不同 静态变量:方法区的静态区 成员变量:堆内存 C:生命周期不同 静态变量:静态变量是随着类的加载而加载,随着类的消失而消失 成员变量:成员变量是随着对象的创建而存在,随着对象的消失而消失 D:调用不同 静态变量:可以通过对象名调用,也可以通过类名调用 成员变量:只能通过对象名调用 成员变量和局部变量的区别: A:在类中的位置不同 成员变量:在类中方法
-
Java中static静态变量的初始化完全解析
静态变量初始化顺序 1.简单规则 首先先看一段最普遍的JAVA代码: public class Test { public static Test1 t = new Test1(); public static int a = 0; public static int b; public static void main(String[] arg) { System.out.println(Test.a); System.out.println(Test.b); } } class Test1
-
基于Java class对象说明、Java 静态变量声明和赋值说明(详解)
先看下JDK中的说明: java.lang.Object java.lang.Class<T> Instances of the class Class represent classes and interfaces in a running Java application. An enum is a kind of class and an annotation is a kind of interface. Every array also belongs to a class tha
-
Java 变量类型及其实例
在Java语言中,所有的变量在使用前必须声明.声明变量的基本格式如下: type identifier [ = value][, identifier [= value] ...] ; 格式说明:type为Java数据类型.identifier是变量名.可以使用逗号隔开来声明多个同类型变量. 以下列出了一些变量的声明实例.注意有些包含了初始化过程. int a, b, c; // 声明三个int型整数:a. b.c. int d = 3, e, f = 5; // d声明三个整数并赋予初值. b
-
java 线程中start方法与run方法的区别详细介绍
线程中start方法与run方法的区别 在线程中,如果start方法依次调用run方法,为什么我们会选择去调用start方法?或者在java线程中调用start方法与run方法的区别在哪里? 这两个问题是两个非常流行的初学者级别的多线程面试问题.当一个Java程序员开始学习线程的时候,他们首先会学着去继承Thread类,重载run方法或者实现Runnable接口,实现run方法,然后调用Thread实例的start方法.但是当他拥有一些经验之后,他通过查看API文档或者其他途径会发现start
-
java中调用super的实例讲解
在java中类之间也是有着继承关系的,就我们之前有提到不少父类与子类的一些问题. 讲的以子类的调用为主,那么有小伙伴知道父类的调用方法吗?这里我们需要借助关键字super来实现.下面我们就来讲讲super的概念.调用方法.应用范围,帮助大家找到使用supei调用父类的方法. 1.概念 super关键字用于引用使用该关键字的类的超类. 作为独立语句出现的 super 表示调用超类的构造方法. 2.调用超类方法 super.<methodName>() 只有在如下情况中才需要采用这种用法:要调用在
-
java中Base64编码原理实例讲解
什么是 Base64 编码 Base64 编码是最常见的编码方式,基于 64 个可打印字符来表示任意二进制数据的方法,是从二进制转换到可见字符的过程. 使用场景 数据加密或签名通过 Base64 转换为字符串存储或传输. 不能传输文件的网络环境可以转换 Base64 进行网络传输. 在文本资源(如 HTML 和 CSS文件)中嵌入图片文件或其他二进制资源. 在 URL.网页中传输少量二进制数据等等. Base64 编码原理 原理是把每 3 个字节(每个字节为 8 位, 3 个字节为 24 位)重
-
python“静态”变量、实例变量与本地变量的声明示例
前言 虽然各种编程语言之间大部分语法存在共通的地方,但是在一些细节的处理上还是千差万别 才接触Python不久(之前是学Java的),实在想吐槽一下语言之间编码格式上的不统一问题,比如Java用分号分隔代码块,Python用空格,这无形之中增加了编码人员的学习成本 作为初学人员,还是老老实实记录一下学习过程中的坑:) 1. "静态"变量的声明 这里的静态变量是借用Java中静态变量的概念(不知道Python中的具体概念是什么),指既可以通过类名直接进行访问,也可以通过类的实例进行访问的
-
Java中不用第三个变量来互换两个变量的值
我们先看看使用第三变量的方法.(开胃菜) class Swap{ public static void main(String[] args){ int a = 3; int b = 5; int c; c = a; //把a的值先存到c a = b; //把b存给a b = c; //把存在c的值倒赋给b System.out.println("a="+a); //a==5 System.out.println("b="+b); //b==3 } } 下面是运行结
-
Java中静态类型检查是如何进行的实例思路详解
以下内容来自维基百科,关于静态类型检查和动态类型检查的解释: •静态类型检查:基于程序的源代码来验证类型安全的过程: •动态类型检查:在程序运行期间验证类型安全的过程: Java使用静态类型检查在编译期间分析程序,确保没有类型错误.基本的思想是不要让类型错误在运行期间发生. 以下代码是一个例子,理解了他,你会更好的理解Java静态类型检查是如何工作的. 代码示例 假定我们有如下类,A和B,B继承A. class A { A me() { return this; } public void do
-
C#静态变量与实例变量实例分析
本文实例讲述了C#静态变量与实例变量的具体用法,分享给大家供大家参考.具体分析如下: 1)在语法定义上的区别: 类变量也叫静态变量,静态变量前要加static关键字,而实例变量前则不加: 实例变量也叫对象变量,即没加static 的变量: 2)在程序运行时的区别: 实例变量属于某个对象的属性,必须创建了实例对象,其中的实例变量才会被分配空间,才能使用这个实例变量.静态变量不属于某个实例对象,而是属于类,所以也称为类变量,只要程序加载了类的字节码,不用创建任何实例对象,静态变量就会被分配空间,静态
-
java中静态导入机制用法实例详解
java中静态导入机制用法实例详解 这里主要讲解了如何使用Java中静态机制的用法,这里提供了简单实例大家可以参考下. 静态常量类 在java开发中,我们会经常用到一些静态常量用于状态判断等操作.为了能够在多个地方复用这些常量,通常每个模块都会加一个常量类,举个简单的列子: import com.sky.OrderMouleConsstants; /** * Created by gantianxing on 2017/4/21. */ public class Test { public vo
-
Java中的动态和静态编译实例详解
Java中的动态和静态编译实例详解 首先,我们来说说动态和静态编译的问题. Q: java和javascript有什么区别? 总结了一下:有以下几点吧: 1.首先从运行环境来说java代码是在JVM上编译成class文件,而javascript则直接在浏览器上加载运行. 2.由第一点可看出,java代码需要编译,而javascript不需要编译. 3.从语言性质来说,java是一种高级编程语言,对变量检查要求严格,javascript只是一个简单的解释性的脚本语言,对变量检查及要求很弱.
-
Java 中synchronize函数的实例详解
Java 中synchronize函数的实例详解 java中的一个类的成员函数若用synchronized来修饰,则对应同一个对象,多个线程像调用这个对象的这个同步函数时必须等到上一个线程调用完才能由下一个线程调用. 那么如果一个类同时有两个成员函数是由synchronized修饰如代码所示,对与同一个对象,是否可以在两个线程运行时,一个调用funcA,同时另一个调用funcB? Mysyn是这样一个类,如果我有两个线程,一个在run方法中先运行funcA再运行funcB,另一个线程在run方法
随机推荐
- 详谈AngularJs 控制器、数据绑定、作用域
- Powershell实现捕获系统内置EXE程序的异常
- jQuery通过ajax方法获取json数据不执行success的原因及解决方法
- ExtJs使用IFrame的实现代码
- 如何让批处理程序启动的时候最小化
- 命令行使用支持断点续传的java多线程下载器
- Oracle数据库的字段约束创建和维护示例
- 详解JavaScript基于面向对象之创建对象(1)
- 理解JavaScript的prototype属性
- Asp.net 后台添加CSS、JS、Meta标签的方法
- Ubuntu 11.10 安装Node.js的方法
- jQuery中ajax的4种常用请求方式介绍
- jQuery 获取和设置select下拉框的值实现代码
- jquery清空表单数据示例分享
- Java中ArrayList的使用方法简单介绍
- java多线程编程之为什么要进行数据同步
- Android 隐式Intent的实例详解
- 解析Python中的eval()、exec()及其相关函数
- Tomcat实现多域名访问详解
- js中document.write和document.writeln的区别