您的位置:

java中能否定义共享全局变量(java变量一旦被定义全局可以访问)

本文目录一览:

Java中静态变量有没有生命周期,java中能否定义共享全局变量?

任何东西都有声明周期,简单点说一段代码所有线程运行结束,程序退出,jvm中所有对象都销毁,内存被回收.具体说你的问题.类静态变量和类元信息是保存在永久代(PermGen),在类被第一次加载时在内存中分配空间,通过类名引用指向静态变量的值.形如 A.name;这个变量跟具体的类A的对象没关系.通过类对象访问的只是类变量,数据具体的类,每个类各自分配独立的空间存储自己的类变量.或者说静态变量属于jvm级别的变量.至于静态变量的声明周期,何时被销毁内存被回收,要看具体GC的实现.sun的HotSpot好像是类的字节码类元信息和类对象都无引用时生命周期结束GC回收.jvm的这块东西我也是最近刚开始看,以上的解释仅供参考,有异议大家可以一起研究下.

Java里如何做到一个变量成为共享数据

可以通过这个类的全局变量和定义一个减法的方法来实现呀.

按你说的例子我们可以这么写

首先,定义一个要被共享变量的类:

public class Share {

static int a = 100;// 定义一个值为100的静态全局变量

public static void minus(int value){//定义一个静态方法

a = a -value;

}

}

创建一个测试类

public class Test {

public static void main (String[] args){

        Share.minus(10); //比如我们要给上面的a变量减10

        System.out.println(Share.a);//输出之前定义的变量的结果为:90

    }

}

java中能不能定义一个全局变量,使两个类共享这个变量

首先要注意的是 java 是面向对像,只要实例化对像了,那对像的属性就这么个样,

想什么调用从在哪调用都可以

所以想要一个什么全局变量,就该想到要让这个全局变量在哪里容身。

1、容身于实例,在类里面用public 来定义这个变量,则要用到这个变量时,必须得有这个类的实例。

2、容身于虚拟机,在类里面用static来定义,这样子只要加载过这个类,这个变量就一直存在,在哪都方便调用 类名.变量