JAVA中int[ ] a={10,9}和int[ ] a=new int[ ]{10,9} 两种写法的区别

刚学,好纠结
int[ ] a={10,9};
int[ ] a=new int[ ]{10,9} ;
两种写法的区别

这是java的悖论,java建立的时候,想做成一切皆对象的(这点c#做到了),但是又继承了很多面向过程的语法,比如int类型什么,所以后来sun孜孜不倦地推广Integer等类 就是int等基本类型的封装实现。
好了,说你这个问题,第二种写法左边说明定义立刻一个int类型的数组的引用,引用名为a,右边new了一个int类型的数组对象,并且分配初值为10,9,其实你不用new,java也会给你new一个数组对象,并且把值给i,所以两种写法一样,只是java在最初设计的时候没弄好,所以现在只好两种语法都用,所以,结论就是 java当初没设计好,这两种方法就是写法不一样,前者有点面向过程,后者面向对象。

不过如果在C语言里面类似这样写的话那就是有区别的。
比如int a[]={10,9};
int a[] = new int[]{10,9};
前者系统会栈分配空间系统会自动实现内存分配和回收
后者系统会堆分配空间系统般会自动实现内存回收程序没有delete能会造成内存泄露
后者比前者灵活,动态分配内存会根据程序需要分配需要多少,自己决定分配多少浪费空间少追问

最后问一下,你常用前一种还是后一种??

追答

不管是在Java中还是C语言中我都习惯用第二种。还有什么可以帮到你吗?

温馨提示:内容为网友见解,仅供参考
无其他回答

JAVA中int[ ] a={10,9}和int[ ] a=new int[ ]{10,9} 两种写法的区别
结论就是 java当初没设计好,这两种方法就是写法不一样,前者有点面向过程,后者面向对象。不过如果在C语言里面类似这样写的话那就是有区别的。比如int a[]={10,9};int a[] = new int[]{10,9};前者系统会栈分配空间系统会自动实现内存分配和回收 后者系统会堆分配空间系统般会自动实现内存回收...

Java中 int [ ] a 与int a [ ] 啥区别,,求详解带例子
没有什么区别,就是写法不一样而已,编译的结果是一样的。可以这样理解:int[] a是一个对象,这个对象是个int型的数组,int a[]是一个数组对象,它的类型是int型的。

java参数列表 int...A 与 int[]A 的区别
int...A是java1.5之后出现的机制,从作用上来说,两者一样,但是使用int...A要注意,必须放在参数列表的最后一个位置上,相对来说int[]A则没有限制!

Java编程中的[ ]和{ }是表示什么意思?
【1】[]有两个用途,一是声明数组时使用,表示数组的长度,例如int a = new int[5],声明了长度为5的数组。二是在正则表达式中,表示一个范围,例如:[a-z]表示取值在小写a到小写z之间 【2】{}是一个语句体,他是一段程序的边界,例如:(1)class A{} 这里的{}表示类实体,凡是在{}中...

java中数组定义a[]和[]a有什么区别?
你的写法不准确 int[] a 和 int a[]前者[]是跟着类型的,别拆散了,两种写法是一样的,可以互换,但是建议使用前者 int[] a;因为java是强类型语言,声明变量的时候要指定变量的类型,使用前者更能清楚表达 数组类型,而使用后者,光看类型是不知道是数组还是int的 前者也更为通用。

在java中,int a[] = new int[] ; 把 int[] 写成 int [ ] 行吗? int...
可以 int []\/\/像这样 空上几百行 a = new \/\/都木有问题 int [\/\/中括号 10 \/\/也可以 ]\/\/分家 ;\/\/这么简单的事 自己写个小程序 试一下不行么 2分钟就可以了吧 干嘛非要等别人来回答

Java中 int[ ] n 和 int n[ ]区别
创建数组,这样是没有什么区别的,只是书写习惯的问题而已 例如:int [] a=new int[3];与int a[]=new int[3];这样是没有区别的,不过习惯了c语言的话可能觉得 int a[]的这种方式容易接受吧.慢慢来,学习java就是一个思想的转变.入乡随俗嘛 ...

int [] a [] = new int [10] [10]可以声明一个整型二维数组?
是的,数组符号在变量前后都可以,java 实际上没有二维数组的概念,是一个一维数组的数组。

在java中“int[]a;a=new int[n];”为什么不行呢?接着我用输入流输入,谢...
\/ import java.util.Scanner;public class ArrayTest { public static void main(String[]args){ int[]a;\/\/定义变量 int n = 5;\/\/需要先声明n在使用.a=new int[n];\/\/初始化变量。\/\/定义输入流.Scanner scanner = new Scanner(System.in);\/\/循环接收输入 for(int i=0;i<n;i++){ Sy...

java中int [] arr = {1}和int [] arr = new int[]{1}区别
我亲自给你打在Eclipse里面测试了,报错:数组常量只能在初始化操作中使用。这就是你所想要的答案。也就是说,你没有初始化。

相似回答