java数组的数组,java基本数据类型与数组笔记总结

  java数组的数组,java基本数据类型与数组笔记总结

  这篇文章给大家带来了一些关于java的知识,主要介绍了一些关于数组的相关问题,包括命名规则、自动类型推断、静态和动态初始化、多维数组的其他写法、常见的错误写法等。下面我们就来看看,希望对你有所帮助。

  如何解决写爬虫IP受阻的问题?立即使用。

  索引:命名规则、自动类型推断、静态和动态初始化、多维数组的其他写法、常见的错误写法、数组下标越界、默认值问题、数组长度问题、数组内存解析。

  

正确写法:

  1.步骤分类:(下面的int可以用char String double等替换。)一步写作:

  int [] ids=new int []{1001,1002,1003 };//声明初始化

  int ids []=new int []{1001,1002,1003 };//[]有两种摆放位置的方法

  int ids []={1001,1002,1003 };//自动类型推断,新的int []可以保存

  /* * * * * * * * *错误演示* * *错误演示* * *错误演示* * * * * * * * * * * * *

  int ids []=new [] int{1001,1002,1003 };//只有定义时的[]可以篡改自动类型推断:只适用于一步编写,可以省略=右边的new int []。

  两步写作法:

  int ids[];//声明

  ids=new int [ ] {1001,1002,1003 };//初始化

  /* * * * * * * * *错误演示* * *错误演示* * *错误演示* * * * * * * * * * * * *

  int ids[];

  ids []=new int {1001,1002,1003 };//分两步,左边不要加[]。

  int ids[];

  ids={1001,1002,1003 };//分两步,没有类型推断2.状态分类:静态动态必须二选一,给长度不加{},给{}不加长度

  010-5900静态初始化:

  两个[]都是空的。

  String [] name=new String [] { 张三,李四 };

  //也可以写成String [] name={ 张三,李四 };动态初始化:

  以下[]必须具有带数字的指定长度,并且不能赋值{}。

  String [ ]名称;

  name=新字符串[2];

  //String name []=new String [2]可以一步写完;

  /* * * * * * * * *错误演示* * * *错误演示* * * * * * * * * *

  int ids[3][4]=XXXXXXXXX;

  int ids[3][]=XXXXXXXXX;

  int ids[][4]=XXXXXXXXX;

多维数组

   int arr 1[][]=XXXXXXXXXXX;

  int[]arr 2[]=XXXXXXXXXXX;

  int[][]arr 3=XXXXXXXXXXX;

  //都写对了。

  Java崇尚int[]arr=new int[]{ };写作方法

  //多维数组是一样的

  int[]arr[][]=XXXXXXXX;

  int[][]arr[]=XXXXXXXX;

  放出来就好了。

  声称Java int[][]arr=new int[][]{ };写作方法

  但是我不习惯。int arr0 [][]={{1,2},{3,4},{5,6 } };//正确:静态和自动类型推断

  int arr 1[][]=new int[3][2];

  int arr 2[][]=new int[3][];//正确:动态,可以保存的列数[]

  int arr 3[][][]=new int[3][][];//正确:动态,保存最后两位[]

  int arr 0[][]=new int[2][2];//动态初始化和分配内存。

  //数组中四个成员默认都是0,编译运行时不会报错。

  int arr0 [][]=new int [][]{ {1,2},{ 3 } };

  //静态初始化,编译可以通过,arr0[1][1]没有默认值(未分配空间)

  //编译可以通过,运行到arr[1][1]时会报错

  int arr 0[][]=new int[3][];

  //输出arr 0[3][0]arr 0[3][1]arr 0[3][2]arr 0[3][3].

  //将报告错误和错误案例:

   默认值问题:动态[i][j]有默认值,静态{}没有默认值(末尾详解)ARR [1] [1]在静态初始化期间没有给定值,因此没有分配内存空间。编译可以通过,但访问时会报告错误。此静态初始化的数组范围限于arr[0][0] arr[0][1]到arr[1][0]

  

深入内存理解:(末尾详解)

  字符串cod [][]=新字符串[3][];//只定义了行,列数未知

  system . out . println(cod[1][1]);//没有定义列,也没有给出默认值。运行错误

  正确写法:添加一步COD [1]=新字符串[2 \ 3 \ 4.];给定默认值null,分配列内存

  

常见错误写法

  数组下标越界: int [ ] arr1 = new int [ ] ;

   //静态忘带{}

   int [3] arr2 = new int [3] ; //前面[ ]必须空

  

数组一旦确定(声明+初始化),长度就固定了,不能更改

  数组的内存分配是连续的,系统要为数组分配一个固定的空间。如果将来有100个空格被其他内容占用,数组只能使用前99个空格。如果长度可以改变,那么arr[100]会改变其他内容造成bug。

  

一个例子说明数组长度问题:

   2D数组遍历,两层for循环:

  公共类Test2 {

  公共静态void main(String args[]) {

  int arr[][]={ {1,2,3},{4,5,6,7},{8,9},{ 10 } };

  for(int I=0;长度;I){//数组长度

  for(int j=0;贾尔[我]。长度;j ){//arr[i]。长度

  system . out . println(arr[I][j] );

  }

  system . out . println();

  }

  //system . out . println(arr[2][2]);错误的下标越界

  }

  }运行结果:

  Arr.length是第一维的长度。

  Arr[i]。长度是第I行中第二维的长度。

  Arr[i][j]。长度是第I行第j列第三维的长度。

  

数组内存解析:

  以二维数组为例。它分为内层和外层。比如arr[0] arr[1]的形状是外层,arr[1][2]的完整表达式是内层。

  1.对于外部arr[1]来说,是一维数组,分为“初始化”和“未初始化”两种情况:

  示例1:

  int arr 1[][]=new int[3][];

  system . out . println(arr 1[1]);

  //运行结果:null此时只知道外层的行数,内层没有初始化,也没有分配地址,所以结果为null。

  int arr 1[][]=new int[3][5];//任意给定数量的列

  system . out . println(arr 1[1]);

  //运行结果:[I@15db9742此时内层长度确定,初始化完成,arr1[1]指向第一个地址[I@15db9742

  a [arr[1]的内层是一维数组,I是int的第一个字母,@后面是地址。

  示例2:

  String arr1[][]=新字符串[3][5];

  system . out . println(arr 1);

  //运行结果:[[ljava . lang . string;@15db9742因为字符串数组是完全定义的,所以空间是分配的。arr1指向arr1[0][0]的地址(整个数组的第一个地址)

  two[[表示有一个二维数组,Java . lang . string;这是一个包名。

  示例3:

  float arr1[][]=新的float[3][5];

  system . out . println(arr 1[0]);

  //结果:[F@15db9742 int [ ] arr3 = new int [5] {1,2,3,4,5} ; //动态不能带{ }

  外层元素初始化值为:地址值

  内层元素初始化值为:与一维数组初始化情况相同

  1.数组元素是一维数组初始化:

  2.数组元素是整形int long short : 0

  3.数组元素是浮点型float double : 0.0

  4.数组元素是boolean型:false

  5.数组元素是引用类型 : nullchar型 :

  0,而不是字符0,对应于不同的ASCII码。

  “u0000”是Unicode代码的第0000位。是空格字符,但不是键盘上的空格。

  验证如下:

  经典例子:

  解决方案:b e可以,acdf不行。

  推荐:《java视频教程》以上是Java归纳总结的数组讲解的详细内容。更多请关注我们的其他相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: