java中如果我定义了一个值,char b(不赋值); 我知道这个b JVM是不自动给他赋值的,

2020-06-22 科技 83阅读
想知道这个,那你就得了解java中的内存机制了,
Java 把内存划分成两种:
一种是栈内存,另一种是堆内存。在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配,当在一段代码块定义一个
变量时,Java 就在栈中为这个变量分配内存空间,当超过变量的作用域后,Java
会自动释放掉为该变量分配的内存空间,该内存空间可以立即被另作它用。
堆内存用来存放由 new 创建的对象和数组,在堆中分配的内存,由 Java 虚拟机的自动垃圾回收器来管理。
只要你定义了变量,即使你不赋值给它,如果它是在类中定义,是成员变量时,它就会被默认初始化,而如果它是在局部变量中,编译就会报错。
总而言之,定义变量,就会占用内存。
声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com