由结果来看应该是不共享内存块,也就是说同一静态方法的不同调用,方法内部的变量都是不同的,我真傻.
public class Test {
/**
* @param args
*/
public static void A(String mark)
{
int i=0;
for(;i<20;i++){
try{
Thread.sleep(1000);
System.out.println("looping in "+mark+",value:"+i);
}
catch(Exception e)
{
System.out.println("ff");
}
}
}
}
public class TestThread implements Runnable {
public String mark;
public void run() {
// TODO Auto-generated method stub
Test.A(mark);
}
public static void main(String args[]) throws Exception
{
TestThread ta = new TestThread();
ta.mark="A";
TestThread tb = new TestThread();
tb.mark="B";
Thread t1 = new Thread(ta);
Thread t2 = new Thread(tb);
t1.start();
Thread.sleep(2000);
t2.start();
}
}
分享到:
相关推荐
本文将深入探讨Java中的静态方法和静态变量,揭示它们的工作原理和实际应用。 #### 二、静态特性的概述 在Java中,静态(static)关键字被用来修饰类的成员变量和方法,表示这些成员属于类本身而非类的某个具体...
在Java编程语言中,静态变量、静态方法、静态代码块以及非静态变量和非静态方法是核心概念,它们对于理解和编写Java程序至关重要。下面将详细解释这些概念,并通过实例程序来阐述它们的使用和内存管理。 首先,静态...
因此,静态变量在内存中只有一份,无论创建了多少个对象,它都不会因实例化而复制。 要使用静态成员变量计算内存中的对象数目,我们通常会在类中定义一个静态整型变量,如`count`,初始化为0。每当创建类的新实例时...
以下是关于Java成员变量、局部变量、静态变量以及成员方法和全局方法的基本概念和区别的详细阐述。 1. 成员变量(Member Variables): 成员变量是类的一部分,它们定义了对象的状态。它们可以是实例变量(非静态...
总结起来,Java 中的静态变量与非静态变量之间的主要区别在于它们的生命周期、存储位置以及访问方式。静态变量是类级别的,与对象无关,而实例变量是对象级别的,每个对象都有自己的一份副本。理解这两种变量类型...
在上述代码中,`count`为静态变量,所有`Example`的实例都将共享同一个`count`值,而`instanceCount`则为实例变量,每次创建新实例时,其值独立且不相互影响。 #### 2. Static方法 静态方法是`static`关键字的另一...
在Java编程语言中,"静态"(static)关键字是一个非常重要的概念,它具有多种用途,包括定义静态变量、静态方法、静态初始化块以及静态类。理解这些概念对于编写高效的Java代码至关重要。 首先,我们来解释静态变量...
正确的做法是使用一个非静态的方法,并在这个方法中通过`@Value`注解来接收配置文件中的值,然后将这个值赋给静态变量。这样可以确保Spring能够在Bean的生命周期内正确处理`@Value`注解,同时还能保持静态变量的功能...
### Java之中的静态变量与静态方法的继承与覆盖问题 #### 静态变量与静态方法的基本概念 在Java编程语言中,静态变量(也称为类变量)和静态方法(也称为类方法)是由`static`关键字修饰的成员变量和成员方法。...
在Java编程语言中,`static`关键字扮演着重要的角色,它影响着类和对象的内存分配方式。理解`static`关键字对于深入理解Java程序的内存管理至关重要。在本文中,我们将详细探讨`static`关键字在Java程序内存分析中的...
在多线程环境中,变量共享是一个常见的需求,但也是引发问题的关键点。本篇文章将深入探讨Java多线程下变量共享的问题以及解决策略。 在Java中,线程共享变量可以通过两种方式实现:静态成员变量和实例成员变量。...
静态成员包括静态变量、静态方法和静态初始化块。 1、静态变量 静态变量是指属于类的变量,它们的值是共享的,所有实例都可以访问到同一个静态变量。在上面的代码中,`static int z;`就是一个静态变量。静态变量是...
在Java编程语言中,`static`关键字是用来声明静态变量和静态方法的,这些成员属于类本身,而不属于类的任何实例。静态变量,也被称为类变量,是存储在内存的类区域,而实例变量则是存储在堆内存中,每个对象实例都有...
Java中的`static`关键字是用来声明静态变量或静态方法的,它是面向对象编程中非常关键的一个概念。静态变量属于类,而不是类的实例,这意味着它们在内存中只有一份拷贝,所有的类实例共享这个相同的变量。当我们声明...
Java中的静态变量和静态方法是面向对象编程中的关键概念,它们与实例变量和实例方法有着显著的区别。在Java中,`static`关键字用于声明类级别的成员,而不是对象级别的成员。 **一、静态成员变量与实例成员变量的...
这意味着,不论创建多少个对象,静态变量只在内存中占用一个存储单元,所有的对象都共享这个单一的存储位置。因此,对静态变量的修改会影响到所有对象。静态变量可以通过类名直接访问,例如`Static_Demo.j`,而无需...
在Java中,可以通过`import static`语句来直接导入一个类中的静态成员(包括静态变量和静态方法)。这种方式可以避免重复输入类名,使得代码更加简洁易读。例如,在给定的代码片段中: ```java import static java....
这意味着所有类的实例共享同一份静态变量。非静态成员变量则是每个实例独有的。 4. **this关键字**: 在方法中,使用`this`关键字可以引用当前对象的成员变量,以区分方法参数或其他局部变量。 **局部变量** 局部...
本文通过详细分类说明了变量和方法的概念,并分析了变量和方法在Java程序设计应用过程中的内存分配问题、在继承时的覆盖问题以及静态变量和静态方法的应用问题。同时,本文也给出了部分典型案例,希望能为Java程序...