从头认识java-14.2 进一步了解数组
来源:互联网 发布:php node.js共存 编辑:程序博客网 时间:2024/06/09 01:13
这一章节我们来全面了解一下数组。
1.数组在初始化之前,我们不能使用他的引用来做任何事情。
package com.ray.ch14;public class Test {public static void main(String[] args) {int[] a;// System.out.println(a);//error,The local variable a may not have been// initialized// a[0]=0;//error,The local variable a may not have been initialized}}
上面的错误信息已经说明了观点。
2.数组在初始化的时候,如果是基础类型里面的数值型类型,那么初始化每个元素为0,如果是char,则是‘空’,如果是boolean,则是false,如果是其他类型(包括不是数值型类型的基础类型),则初始化每个元素为null
package com.ray.ch14;import java.util.Arrays;public class Test {public static void main(String[] args) {int[] a = new int[3];String[] b = new String[3];char[] c = new char[3];boolean[] d = new boolean[3];MyClass[] myClasses = new MyClass[3];System.out.println(Arrays.toString(a));System.out.println(Arrays.toString(b));System.out.println(Arrays.toString(c));System.out.println(Arrays.toString(d));System.out.println(Arrays.toString(myClasses));}}class MyClass {}
输出:
[0, 0, 0]
[null, null, null]
[ , ,]
[false, false, false]
[null, null, null]
3.创建数组的两种方式,显式new与隐式new
package com.ray.ch14;public class Test {public static void main(String[] args) {MyClass[] a = new MyClass[3];MyClass[] b = { new MyClass(), new MyClass(), new MyClass() };}}class MyClass {}
上面两种创建方式是对等的。
4.上面的隐式new其实就是聚集初始化,但是,他本身有一定的局限性,就是必须在当前位置初始化,我们下面再看看另一种动态聚集初始化
package com.ray.ch14;public class Test {public static void main(String[] args) {MyClass[] a = new MyClass[] { new MyClass(), new MyClass(),new MyClass() };MyClass[] b = { new MyClass(), new MyClass(), new MyClass() };}}class MyClass {}
观察上面的代码,数组a更加的灵活。
5.数组标识符是一个引用,指向堆里面的对象。
package com.ray.ch14;public class Test {public static void main(String[] args) {int[] ints = new int[] { 1, 2, 3 };System.out.println(ints);}}
输出:
[I@1bab50a
上面的输出其实就是一个内存地址。
6.基础类型数组存储的是基础类型的值,对象数组存储的是对象的引用(内存地址)
package com.ray.ch14;public class Test {public static void main(String[] args) {int[] ints = new int[] { 1, 2, 3 };for (int i = 0; i < ints.length; i++) {System.out.println(ints[i]);}MyClass[] myClasses = new MyClass[] { new MyClass(), new MyClass(),new MyClass() };for (int i = 0; i < myClasses.length; i++) {System.out.println(myClasses[i]);}}}class MyClass {}
输出:
1
2
3
com.ray.ch14.MyClass@c3c749
com.ray.ch14.MyClass@150bd4d
com.ray.ch14.MyClass@1bc4459
总结:上面总结了数组的多个方面,以及各个方面都做出来举例。
这一章节就到这里,谢谢。
-----------------------------------
目录
2 0
- 从头认识java-14.2 进一步了解数组
- 从头认识java-14.3 多维数组
- 从头认识java-目录
- 从头认识java-4.8 数组的初始化(1)
- 从头认识java-14.1 再次对比数组与容器
- 对Java数组的了解及认识
- Scala学习之数组的进一步认识
- 从头认识java-1.6 多态
- 从头认识java-4.4 this
- 从头认识java-7.2 接口
- 从头认识java-9.7 LinkedList
- 从头认识java-9.9 set
- 从头认识java-9.10 Map
- 从头认识java-9.11 Queue
- 从头认识java-17.1 多线程
- 从头认识C—关于数组名
- 从头认识java-14.4 Java提供的数组的实用功能(1)
- 从头认识java-14.4 Java提供的数组的实用功能(2)
- weblogic安装与eclipse集成
- iOS开发 带xib的自定义View自适应屏幕问题
- Android简单计时器的实现
- c#之语音功能的实现
- 【leetcode题解】【E】【19】299. Bulls and Cows
- 从头认识java-14.2 进一步了解数组
- 蓝桥杯练习--高精度加法
- 使用RangeValidator进行输入的类型及范围验证
- mysql 数据库 局域网电脑访问其他电脑的数据库
- Hadoop完全分布式集群安装
- 网络请求456
- C语言开发总结(二十四)
- 岁月划过生命线——大一下
- 伪随机性