全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。 当类首次被加载时static定义的变量被分配空间,程序结束后由系统释放.如果在一个程序里过多的使用static定义的成员,确实很占内存,因为他的生命周期是整个程序,程序运行时无法被gc所回收,直到程序结束,释放内存.
================================================================
首先,static的用法是:
1.static所修饰的方法和变量是属于类本身,而不是属于对象,无论创建多少个对象实例都是共用一个方法和变量.
2.静态的方法不可以调用非静态的方法,非静态的方法可以调用静态的方法.
其次,
在你的第一个程序中,main()是静态的方法,它要调用yes_no()方法的话,yes_no方法就必须是静态的,所以第一个要用static.
再次,
第二个方法是通过对象调用其内部的方法不算是main()方法直接调用printlnfo().所以不需要用static修饰.
不知道这样回答你是否明白了
有两段程序:
public class basic{
public static void main(String[] args){
yes_no(2008);
}
public ###### void yes_no(int year){
if(year%4==0&&year%100!=0||year%400==0)
System.out.print(year+"年是闰年。");
else
System.out.print(year+"年不是闰年。");
}
}
-----------------------------------------------------------------
public class basic{
String name;
int age;
public basic(String name,int age){
this.name=name;
this.age=age;
}
public static void printInfo(){
System.out.println(name+"已经有"+age+"岁了.");
}
public ###### void main(String[] args) {
String name="Jim";
int age=19;
basic temp = new basic(name,age);
temp.printInfo();
}
}