`

java 数组

阅读更多

1 数组是引用类型

 

2 java虚拟机在装入数组时,会根据数组元素的类型以及数组维度创建对应的Class对象,数组元素的类型和维度唯一确认了数组类的Class对象,比如下面的代码:

    public static void main (String[] args) {
        int[] a = new int[5];
        System.out.println(a);
        String[] b = new String[5];
        System.out.println(b);
        ForkJoinDemo[] c = new ForkJoinDemo[5];
        System.out.println(c);
        String[][] aa = new String[3][];
        aa[0] = new String[3];
        System.out.println(aa[0]);
        ForkJoinDemo[][] cc = new ForkJoinDemo[3][];
        cc[0] = new ForkJoinDemo[3];
        System.out.println(cc);
        System.out.println(cc[0]);
    }

 打印结果:

 

[I@136a43c
[Ljava.lang.String;@589e56
[Lcom.malone.threadCurr.ForkJoinDemo;@3411a
[Ljava.lang.String;@edf3f6
[[Lcom.malone.threadCurr.ForkJoinDemo;@2bc3f5
[Lcom.malone.threadCurr.ForkJoinDemo;@14e3f41

 打印结果前半段为class的名称;由此可以知道虚拟机会为根据数组元素的类型和数组的维度创建Class对象,类命名规则为:

1 根据维度决定[的个数,维度为1则以一个[开头,为2以两个[[开头,以此类推

2 如果数组元素的类型为基础数据类型,比如int, long 则以首字母大写跟在[后面

3 如果数组元素类型为引用类型,则在[后面加一个大写的L然后再引用类的名称

 

虚拟机根据数组元素类型和维度来唯一创建类:

public class ForkJoinDemo {
    public static void main (String[] args) {
        int[] a = new int[5];
        System.out.println(a.getClass());
        int[] b = new int[100];
        System.out.println(b.getClass());
        System.out.println(a.getClass() == b.getClass());

        ForkJoinDemo[] c = new ForkJoinDemo[5];
        System.out.println(c.getClass());
        ForkJoinDemo[] d = new ForkJoinDemo[100];
        System.out.println(d.getClass());
        System.out.println(c.getClass() == d.getClass());

    }
}

 打印结果:

class [I
class [I
true
class [Lcom.malone.threadCurr.ForkJoinDemo;
class [Lcom.malone.threadCurr.ForkJoinDemo;
true

 

分享到:
评论

相关推荐

    Java数组练习题(带答案).doc

    Java数组阶段的选择题、填空题、编程题、判断题都有,适合想自己测试下的学生以及准备出题的老师

    Java数组与内存控制

    Java数组在内存分配方面的知识;Java数组的静态特征;对于数组变量而言,一定要区分它何时是数组变量,何时代表数组对象本身。

    java数组初始化详解

    java 数组初始化 详解 doc

    java 数组求和计算

    java 数组求和计算 java 数组求和计算 java 数组求和计算

    第03讲 JAVA数组.ppt

    第03讲 JAVA数组.ppt第03讲 JAVA数组.ppt第03讲 JAVA数组.ppt第03讲 JAVA数组.ppt第03讲 JAVA数组.ppt第03讲 JAVA数组.ppt

    Java数组详细讲解

    Java数组的详细资料纤细介绍了Java数组的使用从零开始学习Java数组解决你学习过程中遇到的问题........

    java 数组下标越界异常(ArrayIndexOutOfBoundsException)

    java 数组下标越界异常(ArrayIndexOutOfBoundsException) java 数组下标越界异常(ArrayIndexOutOfBoundsException)

    java数组排序

    java数组排序的思想,过程和代码实现。多种数组排序的方法,主要有冒泡排序,堆排序,插入排序, 归并操作(merge), 归并操作(merge),选择排序,希尔排序。

    Java数组越界问题实例解析

    主要介绍了Java数组越界问题实例解析,具有一定参考价值,需要的朋友可以了解下。

    java数组扩容2

    Java数组扩容的原理  1)Java数组对象的大小是固定不变的,数组对象是不可扩容的。  2)利用数组复制方法可以变通的实现数组扩容。  3)System.arraycopy()可以复制数组。  4)Arrays.copyOf()可以简便的...

    java 数组和字符串

    java 数组和字符串

    46.java数组遍历1.zip

    46.java数组遍历1.zip46.java数组遍历1.zip46.java数组遍历1.zip46.java数组遍历1.zip46.java数组遍历1.zip46.java数组遍历1.zip46.java数组遍历1.zip46.java数组遍历1.zip46.java数组遍历1.zip46.java数组遍历1.zip...

    43.java数组定义1.zip

    43.java数组定义1.zip43.java数组定义1.zip43.java数组定义1.zip43.java数组定义1.zip43.java数组定义1.zip43.java数组定义1.zip43.java数组定义1.zip43.java数组定义1.zip43.java数组定义1.zip43.java数组定义1.zip...

    22.java数组的复制.zip

    22.java数组的复制.zip22.java数组的复制.zip22.java数组的复制.zip22.java数组的复制.zip22.java数组的复制.zip22.java数组的复制.zip22.java数组的复制.zip22.java数组的复制.zip22.java数组的复制.zip22.java数组...

    20.java数组空间分配.zip

    20.java数组空间分配.zip20.java数组空间分配.zip20.java数组空间分配.zip20.java数组空间分配.zip20.java数组空间分配.zip20.java数组空间分配.zip20.java数组空间分配.zip20.java数组空间分配.zip20.java数组空间...

    45.java数组动态初始化.zip

    45.java数组动态初始化.zip45.java数组动态初始化.zip45.java数组动态初始化.zip45.java数组动态初始化.zip45.java数组动态初始化.zip45.java数组动态初始化.zip45.java数组动态初始化.zip45.java数组动态初始化.zip...

    44.java数组静态初始化.zip

    44.java数组静态初始化.zip44.java数组静态初始化.zip44.java数组静态初始化.zip44.java数组静态初始化.zip44.java数组静态初始化.zip44.java数组静态初始化.zip44.java数组静态初始化.zip44.java数组静态初始化.zip...

    java数组结构图

    对数组的总结和分析,通过这个结构记住它,在开发的过程中使用

    Java数组工具类

    Java数组工具类

    JAVA 数组中方法(笔记)

    有关JAVA数组中方法的讲解,此教程为文档教程,此文档为JAVA中数组的上半部分。

Global site tag (gtag.js) - Google Analytics