java 关于数组初始化的问题

问题描述

java 关于数组初始化的问题

为什么这里输出的是0 而不是 7

解决方案

一楼说的对,一般顺序为(这三者):变量,构造器,方法,当int n;系统默认n=0,所以初始化时b的长度等于0。我知道你想问的是:t.b.length,不是应该是通过t这个对象吗,但是数组一旦初始化长度就不能改了,所以导致打印输出时为0,懂了吧。

解决方案二:

因为一个对象初始化,他的成员变量要先于函数执行,构造函数也不例外,b是成员变量,初始化b的时候n还等于0

解决方案三:

你在成员变量和构造方法前都打个断点debug一下,你就看到执行顺序了

解决方案四:

C++数组初始化的问题
关于数组的初始化问题!
Java对象数组初始化与NullPointerException问题

解决方案五:

很好很强大谁打大是大是大的

解决方案六:

应该将数组的赋值放到构造方法里。否则,这个数组的赋值是在构造方法之前。

解决方案七:

你执行main方法时它不会执行boolean [] b= new boolean[n] 你可以在int n;这里打断点执行下就知道了。

解决方案八:

编译时,对象test进行了初始化,初始化成员变量n和b,此时n为0,则b的长度也就为0. 运行时,为成员变量n赋值,但b的长度依旧不变,所以会出现上面的错误。可以参考4楼的,重新试一下

解决方案九:

一般不会这样给动态数组赋值,这样就会出现你这个“错误”。

将动态数组的初始化放到构造方法中,而不是用作类变量使用,类变量比你的构造方法要先运行。可以看先下面的链接。
http://blog.csdn.net/tongyi55555/article/details/46627415

解决方案十:

虽然你在构造test的时候传入数值,但是程序执行main方法的时候不会执行到数组初始化代码片段,非要这样赋值可以将数据代码放入到构造函数里面来初始化;还有java 类命名规范是首字母应大写。

时间: 2024-09-14 18:03:18

java 关于数组初始化的问题的相关文章

java byte 数组初始化效率问题

问题描述 java byte 数组初始化效率问题 有一段代码,每个30ms从jni得到一个byte数组(存储YUV420数据). 现在的问题是,以下两种做法,哪种效率更高些.设备对内存较为敏感. 在启动这段代码前,先分配一个预估大小的byte[]数组 在每次数据到来时,再去根据大小分配byte[]数组的大小 当然如果每次得到的数据大小接近,应该还是第一种方法好些. 所以我的问题也可以简化为: new byte[] 这种语句对效率的影响有多大呢? 拜谢各位大牛指教~. 解决方案 已研究过,结论如下

java的数组初始化

在C中初始化数组极易出错,而且相当麻烦.C++通过"集合初始化"使其更安全(注释⑥).Java则没有象C++那样的"集合"概念,因为Java中的所有东西都是对象.但它确实有自己的数组,通过数组初始化来提供支持. 数组代表一系列对象或者基本数据类型,所有相同的类型都封装到一起--采用一个统一的标识符名称.数组的定义和使用是通过方括号索引运算符进行的([]).为定义一个数组,只需在类型名后简单地跟随一对空方括号即可: int[] al; 也可以将方括号置于标识符后面,获

java 二维字符串数组初始化及赋值问题

问题描述 java 二维字符串数组初始化及赋值问题 错误是"{ expected after token ; "请问为什么会出现这样的错误,该怎么解决? 解决方案 第一句话没错,第二句话,要放到具体的方法内,比如构造函数里,不要放到类一层的地方 解决方案二: 你确定有报错?我像这样写都没有报错! 解决方案三: java字符串数组初始化和赋值

C++对象数组初始化问题

问题描述 C++对象数组初始化问题 class A { public: A(const int a1):aa(a1) { } private: const int aa; }; class B { public: B(const int b1,const int b2,const int b1):aaa(a1) { } private: A aaa[3]; }; 请问A aaa[3];怎么初始化 解决方案 在构造函数中初始化,或者直接初始化 A aaa[3] = { A(1), A(2), A(

JAVA中数组问题

问题描述 我直接写内容:inta[]=newint[4];intb[]=newint[4];a.equals(b);false????第一个不懂为什么是FALSEinta[]=newint[]{1,2,3,4};intb[]=newint[]{1,2,3,4};a.equals(b);false????还是不懂为什么是FALSE帮帮的谢谢了 解决方案 解决方案二:equal不是只在String中才用到的吗?解决方案三:equals比较的值,a和b又不是一个值怎么比较啊?当然是false解决方案四

关于Java String数组的问题希望大神解惑

问题描述 关于Java String数组的问题希望大神解惑 在一个抽象类类中有这么一句话protected String[] msg = null;public AbstractService(String msg) { this.msg = msg.split(Param.SPACE);//以空格为分隔符进行分割成数组 }没有为msg这个String数组赋值,然后有一个子类继承这个抽象类其中有这么几句话/** 登陆账号密码核对 */ private static final String SQ

Java创建数组的几种方式总结_java

1.一维数组的声明方式: type[] arrayName; 或 type arrayName[]; 附:推荐使用第一种格式,因为第一种格式具有更好的可读性,表示type[]是一种引用类型(数组)而不是type类型.建议不要使用第二种方式 下面是典型的声明数组的方式: // 声明整型数组 int[] intArray0 ; int intArray1 []; // 声明浮点型数组 float floatArray0 []; float[] floatArray1 ; // 声明布尔型数组 boo

举例讲解Java中数组和字符串类型的使用方法_java

Java数组 数组是具有相同数据类型的一组数据的集合,Java支持多为数组,一维数组的每个基本单元都是基本数据类型的数据,二维数组就是每个基本单元是一维数组的一维数组,以此类推,n维数组的每个基本单元都是n-1为数组的n-1维数组.下面以一维数组为例说明Java数组的用法. 1.数组声明 数组声明有如下两种形式(方括号的位置不同): int arr[]; int[] arr2; 2.数组初始化 数组初始化也有两种形式,如下(使用new或不使用new): int arr[] = new int[]

java中数组的定义及使用方法(推荐)_java

数组:是一组相关变量的集合 数组是一组相关数据的集合,一个数组实际上就是一连串的变量,数组按照使用可以分为一维数组.二维数组.多维数组 数据的有点 不使用数组定义100个整形变量:int i1;int i2;int i3 使用数组定义 int i[100]; 数组定义:int i[100];只是一个伪代码,只是表示含义的 一维数组 一维数组可以存放上千万个数据,并且这些数据的类型是完全相同的, 使用java数组,必须经过两个步骤,声明数组和分配内存给该数组, 声明形式一 声明一维数组:数据类型