数组初始化使用(写)new与不使用(不写)new

简介: 数组初始化使用(写)new与不使用(不写)new

首先,数组初始化时,写不写new没有区别的。int arr[] = new int[]{ 3, 9, 8};或者int[] arr = {3,9,8};编译器遇到 int a[] = {3, 8, 9}; 会编译成和 int a[] = new int[] {3, 8, 9}; 完全一样的中间代码。


①不同于String类。String由于实现了常量池,new 和不new 有区别:若new,则引用变量指向堆区;若不new的话,则引用变量指向常量池。


②对于数组的定义,初始化时用new与不用new没区别,只是两种方式(写法)罢了,因为数组是引用数据类型,建立对象时,无论用不用new,数组实体都是放在堆内存中,引用变量放在栈内存。


内存简析:


a070ffa936754c30beaf3fced6cb3116.png


相关文章
|
3天前
|
算法 程序员 C++
【C++运算符重载】探究C++中的下标运算符[]重载
【C++运算符重载】探究C++中的下标运算符[]重载
17 0
|
9月前
|
存储 C语言
【C语言】 条件操作符 -- 逗号表达式 -- []下标访问操作符,()函数调用操作符 -- 常见关键字 -- 指针 -- 结构体
【C语言】 条件操作符 -- 逗号表达式 -- []下标访问操作符,()函数调用操作符 -- 常见关键字 -- 指针 -- 结构体
|
10月前
|
C语言
C语言:使用函数完成整型数组的打印、元素逆置、初始化
思路: 总体思路: (一). 实现 函数init() -- 初始化数组为全0 (二). 实现 函数print() -- 打印数组的每个元素 (三). 实现 函数reverse() -- 函数完成数组元素的逆置 (四). 完成 主函数 的编写 -- 测试这三个函数
170 0
|
3天前
|
存储 Java 索引
【Java数组】数组定义 | 初始化赋值 | 数组练习题
【Java数组】数组定义 | 初始化赋值 | 数组练习题
数组作为函数参数传参&数组名到底代表什么意义?
数组作为函数参数传参&数组名到底代表什么意义?
|
12月前
二维数组赋初值你会几种方法?
二维数组赋初值你会几种方法?
70 0
C中常量数组不能修改
C中常量数组不能修改
60 0
|
C++
冒号初始化与构造函数内赋值
冒号初始化与构造函数内赋值
235 0
冒号初始化与构造函数内赋值
|
C++
C++ 返回字符数组的写法
C++ 返回字符数组的写法
634 0