Java数组中常见的⾯试题
在java中,声明⼀个数组过程中,是如何分配内存的?
1. 当声明数组类型变量时,为其分配了(32位)引⽤空间,由于未赋值,因此并不指向任何对象;
2. 当创建了⼀个数组对象(也就是new出来的)并将其地址赋值给了变量,其中创建出来的那⼏个数组元素相当于引⽤类型变量,因此各⾃占⽤(32位的)引⽤空间并按其默 认初始化规则被赋值为null
3. 程序继续运⾏,当创建新的对象并(将其地址)赋值给各数组元素,此时堆内存就会有值了
Java变量⼀定要初始化吗?
不⼀定。Java数组变量是引⽤数据类型变量,它并不是数组对象本⾝,只要让数组变量指向有效的数组对象,即可使⽤该数组变量。对数组执⾏初始化,并不是对数组变量进⾏初始化,⽽是对数组对象进⾏初始化——也就是为该数组对象分配⼀块连续的内存空间,这块连续的内存空间就是数组的长度。
基本类型变量都放在栈内存中?
错。应该这样说:所有局部变量都放在栈内存⾥保存的,不管其是基本类型的变量,还是引⽤类型变量,都是存储在各⾃的⽅法栈区中;但是引⽤类型变量所引⽤的对象(包括数组、普通java对象)则总是存储在堆内存中。
java定义一维数组并赋值引⽤变量何时只是栈内存中的变量本⾝,何时⼜变为引⽤实例的java对象?
引⽤变量本质上只是⼀个指针,只要程序通过引⽤变量访问属性,或者通过引⽤变量来调⽤⽅法,该引⽤变量将会由他所引⽤的对象代替。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论