package com.test;
public class FanweiTest {
int a;
int b=0;
static int c;
public static void main(String[] args) {
int d;
int e=0;
//a++ no
//b++ no
//c++ yes
//d++ no
//e++ yes
}
}
解释:
类成员变量因为你在new一个对象时,分配了内存空间后会给所有的成员变量一次初始化,没有赋值的会给成员变量对应类型的“0”值,然后才构造对象初始化。每一个对象都有一个成员变量的副本,一直存在于对象的堆空间直到这个对象空间被回收。
局部变量在用的时候是直接入栈的,如果没有赋值,这个变量就没有初始值,也就无法操作,所以局部变量要初始化。并且局部变量在方法结束后会出栈,就像它没有来过一样