从头认识java-14.2 进一步了解数组
2015-12-23 22:39
447 查看
这一章节我们来全面了解一下数组。
1.数组在初始化之前,我们不能使用他的引用来做任何事情。
上面的错误信息已经说明了观点。
2.数组在初始化的时候,如果是基础类型里面的数值型类型,那么初始化每个元素为0,如果是char,则是‘空’,如果是boolean,则是false,如果是其他类型(包括不是数值型类型的基础类型),则初始化每个元素为null
输出:
[0, 0, 0]
[null, null, null]
[ , ,]
[false, false, false]
[null, null, null]
3.创建数组的两种方式,显式new与隐式new
上面两种创建方式是对等的。
4.上面的隐式new其实就是聚集初始化,但是,他本身有一定的局限性,就是必须在当前位置初始化,我们下面再看看另一种动态聚集初始化
观察上面的代码,数组a更加的灵活。
5.数组标识符是一个引用,指向堆里面的对象。
输出:
[I@1bab50a
上面的输出其实就是一个内存地址。
6.基础类型数组存储的是基础类型的值,对象数组存储的是对象的引用(内存地址)
输出:
1
2
3
com.ray.ch14.MyClass@c3c749
com.ray.ch14.MyClass@150bd4d
com.ray.ch14.MyClass@1bc4459
总结:上面总结了数组的多个方面,以及各个方面都做出来举例。
这一章节就到这里,谢谢。-----------------------------------目录
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
总结:上面总结了数组的多个方面,以及各个方面都做出来举例。
这一章节就到这里,谢谢。-----------------------------------目录
相关文章推荐
- [支付宝服务窗]序言
- Struts2框架学习之七:避免表单重复提交
- 工厂模式(java)
- SpringMVC @RequestParam 中文乱码问题解决
- 在struts2项目中集成Activiti-Modeler5.19
- java抽象类的作用
- 权限管理系统 Spring-authority
- Java方法参数是引用调用还是值调用?
- Eclipse、SDK、ADT资源下载
- java虚拟机垃圾回收机制
- weblogic安装与eclipse集成
- JAVA面向对象之静态属性和方法
- Java数组学习--数组与ArrayList转换
- 深入分析JavaWeb Item33 -- 开发自己简易的JDBC框架
- 关于MyEclipse2015Stable2.0破解补丁使用出错的实践
- 工厂模式
- JDK下载和环境变量配置
- 任务调度quartz(一)quartz在spring中的集成
- 使用for循环经典案例输出空心的菱形 in Java
- 关于回调函数理解(Java语言)