java 中常用的内存区域
(1)栈内存空间:保存所有的对象名称(就是保存了引用的堆内存空间的地址)
(2)堆内存空间:保存每个对象的具体属性内容
(3)全局数据区:保存static类型的属性
(4)全局代码区:保存所有的方法定义
每个实例化对象产生,则一定会调用其构造方法。
Static 的相关应用
①统计一个类产生了多少个实例化对象
package Mycode;
public class StaticCount {
public static void main(String[] args) {
// TODO Auto-generated method stub
new H();
new H();
new H();
}
}
class H {
private static int c = 0;// 靜態變量全局數據區
public H() {
c++;
System.out.println("產生了" + c + "個對象");
}
}
②为对象自动进行编名//小实验,自己打了一下还是有点差错,例如那个name我把它误写成static,使设置name的时候把它也改变了
public class StaticName {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(new K().getName());
System.out.println(new K("aaa").getName());
System.out.println(new K().getName());
System.out.println(new K("bbb").getName());
System.out.println(new K().getName());
}
- }
class K {
private String name = "kfc";
private static int c = 0;
public K() {
c++;
this.name = name + c;
}
public K(String name) {
this.name = name;
}
public String getName() {
return this.name;
}
}