Java 静态初始化数组:使用 new 和不使用 new 的区别在哪里?

技术百科 DDD 发布时间:2024-11-04 浏览:

java 静态初始化的蹊跷之处:有 new 和没 new 的区别解析

在 java 中,静态初始化数组可以通过两种方式实现,但令人费解的是,这两种方式竟有着截然不同的结果。

问题:使用 new 和不使用 new 静态初始化数组的区别

在下面的代码示例中,使用 new 的方式不会报错,而不用 new 的方式会报编译错误:

int[] arr = {3, 3, 5, 9, 11};          // 静态初始化,使用new
arr = new int[] {3, 3, 5, 9, 11};      // 静态初始化,使用new

int[] arr = {3, 3, 5, 9, 11};          // 静态初始化,不用new
arr = {3, 3, 5, 9, 11};               // 编译错误

一些资料声称这两种方式没有区别,编译器会自动为不用 new 的情况补充 new。然而,事实并非如此。

答案:语法糖与赋值的本质区别

int[] arr={3,3,5,9,11}; 并不是真正的语法糖,而是静态初始化的语法糖。当编译器遇到这种语法时,会自动将其转换为相应的 new 表达式。

int[] arr = new int[] {3, 3, 5, 9, 11};

因此,实际上这两种方式都是使用 new 来静态初始化数组的。

但是,arr={3,3,5,9,11}; 则完全不同,它相当于对 arr 变量进行赋值。java 不支持这种给数组直接赋值的语法。


# 的是  # 都是  # 将其  # 可以通过  # 两种  # 之处  # 这两种  # 不支持  # Java  # int  # 区别  # 会报  # 编译错误  # 并非如此 


相关栏目: <?muma $count = M('archives')->where(['typeid'=>$field['id']])->count(); ?> 【 AI推广<?muma echo $count; ?> 】 <?muma $count = M('archives')->where(['typeid'=>$field['id']])->count(); ?> 【 SEO优化<?muma echo $count; ?> 】 <?muma $count = M('archives')->where(['typeid'=>$field['id']])->count(); ?> 【 技术百科<?muma echo $count; ?> 】 <?muma $count = M('archives')->where(['typeid'=>$field['id']])->count(); ?> 【 谷歌推广<?muma echo $count; ?> 】 <?muma $count = M('archives')->where(['typeid'=>$field['id']])->count(); ?> 【 百度推广<?muma echo $count; ?> 】 <?muma $count = M('archives')->where(['typeid'=>$field['id']])->count(); ?> 【 网络营销<?muma echo $count; ?> 】 <?muma $count = M('archives')->where(['typeid'=>$field['id']])->count(); ?> 【 案例网站<?muma echo $count; ?> 】 <?muma $count = M('archives')->where(['typeid'=>$field['id']])->count(); ?> 【 精选文章<?muma echo $count; ?>

相关推荐

在线咨询

点击这里给我发消息QQ客服

在线咨询

免费通话

24h咨询:4006964355


如您有问题,可以咨询我们的24H咨询电话!

免费通话

微信扫一扫

微信联系
返回顶部