java数组为什么要java 声明一个数组?直接new 不行吗?

Java 数组声明与初始化 - Tutotu - 博客园
  学习了好久的java,每次要写数组的声明和初始化代码,总是理不清。最近又碰到了一次这种情况。这次拿出《Thinking In Java》好好总结一翻。
  对于数组的声明其实都没多大问题,推荐的写法是使用 数据类型 + [] + 数组名称的方式,因为这种方式可以很清楚的表明这是某一种类型的数组。例如,声明一整数类型的数组。
<span style="color: # int[]
数组初始化
  其实出现问题最多的就是数组的初始化。数组的初始化分为三种方式,再遇到初始话的时候,总是会搞不清楚。根据我个人的理解,数组的初始化操作分为三种方式。
  第一种:特殊初始化,不用new关键字完成,在数组声明的同时完成初始化操作,也被称其为静态初始化。主要原因是因为采用这种初始化的方式,数组的存储空间的分配是由编译器完成的。
     下面以整数数组初始化为例,完成一个静态数组初始化:
<span style="color: #
int[] a = {1,2,3};
<span style="color: # Integer[] b = {
<span style="color: #
new Integer(1),
<span style="color: #
new Integer(2),
<span style="color: #
//Autoboxing
<span style="color: #
  第二种:先使用new关键字创建数组,然后再分别为数组中的元素赋值,完成初始化操作。(注:如果数组元素类型为基本数据类型,在完成new 操作之后,数组中的元素会自动初始化为空值,可以直接使用,但是数组元素为引用类型,在完成new操作之后,没有给引用类型赋值,就直接使用数组中的元素,会产生运行时异常。)
    下面还是以整数数组初始化为例2,完成数组初始化:
<span style="color: #
int[] a = new int[2];
//需要指定数组的长度
<span style="color: #
<span style="color: #
  第三种:使用new关键字创建数组,同时为数组中的元素赋值,完成出事化操作。
<span style="color: #
int[] a = new int[]{1,2,3}; //与第二种方法不同,这里new不需要指定数组的长度,数组长度由其后的初始化操作确定
<span style="color: #
<span style="color: #
int[] b = new int[]{
<span style="color: #
new Integer(1),
<span style="color: #
new Integer(2),
<span style="color: #
<span style="color: #
  第一篇学习笔记小随笔,语言还稍显青涩,之后继续努力。
      
      java 数组直接在类里声明 并且new 出现的异常 求解惑_百度知道
java 数组直接在类里声明 并且new 出现的异常 求解惑
新学的java问题幼稚请您细心解答问题有3问题1分号与}那错误的缘由。问题2数组b我设定为int类型为什么后面的new String类型不报错问题3为什么不能这样写
我有更好的答案
你要么在定义的时候初始化,要么在方法里面初始化。别这样在类里面做初始化的操作。
采纳率:76%
来自团队:
为您推荐:
其他类似问题
java的相关知识
&#xe675;换一换
回答问题,赢新手礼包&#xe6b9;
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。java里创建数组时用new后面要不要用delete删除_百度知道
java里创建数组时用new后面要不要用delete删除
我有更好的答案
这个说法是正确的。解释:java中new的含义就是对某个对象进行初始化操作。说直白一点,就是“创建”操作。但是其实此时并没有进行对象赋值,之后必须赋值给一个对象才是有实际意义的。如:new
A();这个对象没有被引用,实际上是没有被引用,只不过是初始化,没有被实例化。A
A();这个是初始化对象并进行实例化为a对象,这样就可以对a进行操作了。
【0元入学,两周免费试听】
主营:培训【Python+人工智能,Java大数据,HTML5】
不需要,java有gc自动回收垃圾对象
为您推荐:
其他类似问题
&#xe675;换一换
回答问题,赢新手礼包&#xe6b9;
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。Java 中为什么一定要用new来定义数组长度而不可以直接定义呢?
面向对象需要嘛,没有对象面向谁呢,new是用来创建对象的
你还没有登录,请先登录或注册慕课网帐号
77821人关注
Copyright (C) 2018 imooc.com All Rights Reserved | 京ICP备 号-11怎么理解java中不允许在声明时指定数组的大小,int a[] = new int[7];这样没错啊???_百度知道
怎么理解java中不允许在声明时指定数组的大小,int a[] = new int[7];这样没错啊???
我有更好的答案
我的理解是不允许在声明时指定数组的大小,是指不能int a[10] = ... 这样去声明数组,&声明&指的是等号左边的部分。举个例子:class
TestArray{
main(String
System.out.println(a.length);
System.out.println(a.length);
} } 如果你一开始就声明了 int a[10] = new int[10],后面的一句a = new int[20]就不行了。这是因为在Java中要&一切都是对象&。不知道我说清楚了没。
采纳率:36%
可以啊。。。。这样没错啊
不允许在声明时指定数组的大小,是指你不能这样写: int a[7]....而int a[] = new int[7];这条语句包含了声明与初始化两步操作。
这是在声明是初始化该数组,可以的啊,你看的什么书啊
int a[];为申明,而不能指定大小,如int a[7]为错,int a[] = new int[7];应该分包含了申明和赋值,a = new int[7];
你可以这样:int a[]=new
int[0,0,0,0,0,0,0];这样就可以了。
其他3条回答
为您推荐:
其他类似问题
&#xe675;换一换
回答问题,赢新手礼包&#xe6b9;
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。

我要回帖

更多关于 java声明string数组 的文章

 

随机推荐