class number{
int i;
}
public class text {
public static void main(String args[])
{
number i =new number();
number j =new number();
i.i=1;
j.i=3;
System.out.println(i.i);
System.out.println(j.i);
}
};
Java中的变量分为局部变量和全局变量,局部变量就是在方法中声明的变量,而全局变量就是在类中声明的变量,在java中有这么一条规则,声明在方法中的变量在使用时必须要初始化(注意这里是使用时,如果不使用的话,你也可以不赋值,但是一般变量声明了之后都是要使用的,所以你最好初始化),否则不能通过编译。
就拿你的程序来举例吧:
class number {
int i;//声明全局变量,因为在类中,所以是全局变量,不用赋初值,默认的值是0.注意全局变量如果没有赋初值,都有默认值,例如String类型的默认值是null.
public int get(){//定义一个方法。
int num1;//声明局部变量,在方法内部所以是局部变量,没有使用,所以可以不用赋初值,如果使用的话必须赋初值。
int num2;
int num3=3;//声明局部变量,用来作为返回值,使用了,所以要初始化,否则不能通过编译。
//System.out.println(num2);错误因为num2没有初始化就使用。
return num3;
}
}
public class text{
public static void main(String args[]) {
number i = new number();
number j = new number();
System.out.println(i.i);//直接打印出默认值。
System.out.println(j.i);//直接打印出默认值。
i.i = 1;
j.i = 3;
System.out.println(i.i);
System.out.println(j.i);
}
}
输出结果:
Java 中变量不赋值使用就会出错,但是如果把一个变量封装到一个类中...
class number { int i;\/\/声明全局变量,因为在类中,所以是全局变量,不用赋初值,默认的值是0.注意全局变量如果没有赋初值,都有默认值,例如String类型的默认值是null.public int get(){\/\/定义一个方法。int num1;\/\/声明局部变量,在方法内部所以是局部变量,没有使用,所以可以不用赋初值,如...
java中如何将一个类的成员变量复制到另一个类中
创建类的实例,然后调用实例的值,缺点:如果长时间不用实例化的对象,会被自动回收 适用reflection反射机制,导入java.lang.reflect包,以此来调用类里面的变量,缺点:开发环境不可以有安全限制,可移植性差 用接口,把变量放到一个接口里面,然后共享数据的类实现这个接口,缺点:暂时没想到 ...
java中只声明变量不付值,系统会给分配内存吗
3、堆:用来存放动态产生的数据,比如new出来的对象。注意创建出来的对象只包含属于各自的成员变量,并不包括成员方法。因为同一个类的对象拥有各自的成员变量,存储在各自的堆中,但是他们共享该类的方法,并不是每创建一个对象就把成员方法复制一次。4、常量池:JVM为每个已加载的类型维护一个常量池,...
深入理解volatile关键字
具体而言就是说,volatile 关键字可以保证直接从主存中读取一个变量,如果这个变量被修改后,总是会被写回到主存中去。Java 内存模型是通过在变量修改后将新值同步回主内存,在变量读取前从主内存刷新变量值这种依赖主内存作为传递媒介的方式来实现可见性的。 普通变量与 volatile 变量的区别是:volatile 的特殊规则保证了...
java中声明不使用的变量会影响效率吗
Java中的变量是有其作用域的 ,如果你声明的是全局变量,则在该类中有效,如果你声明的是局部变量,则只是在该方法中有效。但是不管是成员变量还是局部变量都需要分配内存。而程序的运算速度则是和CPU相关,只要你的内存足够,多定义几个不用的变量,是不会对运算速度产生影响的。你可以自己多写两行...
求助java代码段:以下代码为什么会出错呢,我用OneaA类实例化的对象调用类...
public class OneaA{ OneaA a =new A();a.setAA();} 这个是在OneaA中实例化A对象,然后在OneaA中调用A的方法
七爪源码:Java 中的 NullPointerException 是什么? 让我们了解并学习如...
尝试运行这段代码会抛出错误,因为尝试调用一个不存在的对象的 length 方法。程序找不到给定引用的对象,所以该操作无效。为了避免这种情况,确保在使用变量前先进行初始化,如:这样,myString 引用就会指向一个实际存在的字符串对象,避免了 NullPointerException。我们还可以看到,即使在自定义类中,如 ...
请教一个java问题,同一个类被实例化成若干个线程,它们的静态成员变量...
静态成员变量地址:一样。因为静态成员变量在类装载入内存时,进行初始化+赋值。所以有且只有一份,所以地址是一样的。非静态成员变量地址:不一样。new一次,分配一次内存,所以不一样
java中string不赋值输出什么?
java中数组没有赋值会等于什么?怎么程序运行到这里会停止?1、错误的原因是:声明一个整数数组,如果没有赋值,数值元素都为0,不是null。当编辑并运行一个Java程序时,需要同时涉及到这四种方面。2、除了全局变量和静态变量以外,其它变量如果没有赋初值,则默认初始值为内存中的垃圾内容,对于垃圾内容不...
Java中new一个对象你应该知道的细节
如果类的大小允许,对象将首先在栈或TLAB中分配空间。如果类过大,会分配到堆上,以避免频繁的垃圾回收(GC)操作,提高程序执行效率。此时,对象处于半初始化状态,成员变量默认为零值或null。接着调用构造方法,完成成员变量的赋值。最后,将对象实例与引用变量建立关联。对象在JVM中的内存占用由多个部分...