在java中定义局部变量与在C语言的区别2021-06-30
定义局部变量,其实就是在栈中通过移动栈指针来给程序提供一个内存空间和这个局部变量名绑定。因为这段内存空间在栈上,而栈内存是反复使用的(脏的,上次用完没清零的),所以说使用栈来实现的局部变量定义时如果不显式初始化,值就是脏的。
C语言里面定义变量,没有初始化,这个值是脏值,随机的,java里面是主函数里必须变量初始化,在堆空间里面变量确实是默认初始化,int类型默认是0,string默认是null,Boolean默认false
在类中定义的成员变量如果你没有初始化java会自动帮你初始化,如果是数字会自动初始化成0,字符会初始化成’o’,对象引用会初始化成null.
当然如果你定义的是局部变量就必须初始化了,否则编译会报错
这正是java的特点,极大的提高了代码安全性