数组初始化

package cn.test;

/**
 * @author: zhao
 * @createDate: 2020/10/14
 * @description: 这个类用于测试数组的创建方式。
 */

public class InitArray {
    public static void main(String[] args) {
        /**
         * 数组是一个容器,它可以同时存储多个数据值,但是这些数据值都是相同类型的,他们可以是基本数据类型,也可以是引用数据类型。
         * 注意: 数组的长度在运行期间不可变
         * 数组共有两种初始化方法:
         *   动态初始化:
         *     他的特点是在初始化的同时直接指定长度,示例如下:
         *     类型[] array = new 类型[length]
         *   静态初始化:
         *     他的特点是在初始化的同时指定数组的内容,实际上数组会根据指定的内容来指定数组的长度,所以都会有指定长度的步骤。
         *     类型[] array = new 类型[] {内容}
         *     他的省略格式如下:
         *     类型[] array = {内容}
         */
        // 动态创建基本数据类型数组:
        int[] array1 = new int[5];
        // 如果后面不进行赋值的化,数组会存放int对应的默认值0, 可以打印输出查看
        for (int i : array1) {
            System.out.print(i + " ");
        }
        /**
         * 输出:
         * 0 0 0 0 0
         */
        /** 对array1进行赋值 */
        for (int i = 0; i < array1.length; i++) {
            array1[i] = i + 5;
        }
        // 打印查看
        for (int i : array1) {
            System.out.print(i + " ");
        }
        // 5 6 7 8 9
        System.out.println();
        // 静态初始化基本数据类型
        byte[] array2 = new byte[] {97, 98, 99};
        // 也可以使用省略格式
        char[] array3 = {'a', 'b', 'c'};
        for (byte b : array2) {
            System.out.print(b + " ");
        }
        /**
         * 输出:
         * 97 98 99
         */
        System.out.println();
        for (char c : array3) {
            System.out.print(c + " ");
        }
        /**
         * 输出:
         * a b c
         */
        System.out.println();

        // 引用数据类型的数组创建
        // 已定义好了一个Person类, 创建Person类的数组
        Person[] person = new Person[]{new Person(), // 空参创建
                new Person("李白", 22),
                new Person("韩信", 23)
        };

        /**输出
         * Person{name='null', age=0}
         * Person{name='李白', age=22}
         * Person{name='韩信', age=23}
         */
        for (Person per : person) {
            System.out.println(per);
        }

        /**
         * 注意事项: 如果创建时候不指定具体数据值,会默认赋值该类型的默认值,默认值分别是:
         * int 0
         * float 0.0
         * double 0.0
         * char '\u0000'(不可见)
         * 引用类型(如类,String) null
         * boolean false
         */
        double[] a = new double[1];
        byte[] b = new byte[1];
        char[] c = new char[1];
        String[] d = new String[1];
        Person[] e = new Person[1];
        System.out.println("double 类型的a的默认值为:" + a[0]); // double 类型的a的默认值为:0.0
        System.out.println("byte 类型的b的默认值为:" + b[0]);   //byte 类型的b的默认值为:0
        System.out.println("char 类型的c的默认值为:" + c[0]);   //char 类型的c的默认值为:    !未显示:因为不可见
        System.out.println("String 类型的d的默认值为:" + d[0]); //String 类型的d的默认值为:null
        System.out.println("Person(类) 类型的的默认值为:" + e[0]); // Person(类) 类型的的默认值为:null
    }
}

 

 

package cn.test;

import java.lang.ref.SoftReference;

public class Person {
    private String name;
    private int age;

    public Person() {
    }

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值