Java基础数组静态和动态初始化时机

简介: Java基础数组静态和动态初始化时机

什么时候采用静态初始化方式,什么时候采用动态初始化方式?


当你创建数组的时候,确定数组中存储哪些具体元素时,采用静态初始化方式。

当你创建数组的时候,不确定将来数组中存储哪些元素,你可以采用动态初始化的方式,预先分配内存空间。


内存分析图:


0a2653c851af460fa595bd959398a8f1.png


示例代码:


public class ArrayTest02 {
    public static void main(String[] args) {
        //声明,定义一个数组,并动态初始化它
        int[] a  = new int[4];
        for (int i = 0;i < a.length;i++) {
            System.out.println("数组的第" + i + "个值是" + a[i]);
        }
        //定义一个Object引用类型的数组并动态初始化它
        Object[] objs = new Object[3];
        for(int i = 0;i<objs.length;i++){
            System.out.println(objs[i]);
        }
        System.out.println("==============================");
        //定义一个String引用类型的数组并动态初始化它
        String[] strs = new String[3];
        for (int i = 0;i< strs.length;i++){
            System.out.println(strs[i]);
        }
        System.out.println("==============================");
        //定义一个String引用类型的数组并静态初始化它
        String[] strs1 = {"str1","str2","str3"};
        for(int i = 0;i< strs1.length;i++){
            System.out.println(strs1[i]);
        }
        //定义一个Object引用类型的数组并静态初始化它
        /*Object o1 = new Object();
        Object o2 = new Object();
        Object o3 = new Object();*/
        /*Object[] objs1 = {o1,o2,o3};
        for(int i = 0;i< objs1.length;i++) {
            System.out.println(objs1[i]);
        }*/
        Object[] obj = {new Object(),new Object(),new Object()};
        for(int i = 0;i< obj.length;i++){
            System.out.println(obj[i]);
        }
        }
}


运行结果;


0a2653c851af460fa595bd959398a8f1.png

相关文章
|
18小时前
|
存储 算法 搜索推荐
Java中的数组函数库及其使用技巧
Java中的数组函数库及其使用技巧
|
5天前
|
安全 Java
|
5天前
|
存储 Java
心得经验总结:浅谈Java类中的变量初始化顺序
心得经验总结:浅谈Java类中的变量初始化顺序
10 1
|
5天前
|
存储 监控 Java
深入理解Java虚拟机-类加载连接和初始化解析
深入理解Java虚拟机-类加载连接和初始化解析
|
1天前
|
存储 算法 Java
Java中常用的数组函数及其应用场景
Java中常用的数组函数及其应用场景
|
2天前
|
安全 Java 数据库连接
Java中的反射机制详解:动态类加载与调用
Java中的反射机制详解:动态类加载与调用
|
3天前
|
SQL 缓存 Java
Java框架之MyBatis 07-动态SQL-缓存机制-逆向工程-分页插件
Java框架之MyBatis 07-动态SQL-缓存机制-逆向工程-分页插件
|
3天前
|
设计模式 安全 Java
Java设计模式:代理模式的静态和动态之分(八)
Java设计模式:代理模式的静态和动态之分(八)
|
4天前
|
Java 程序员 容器
五分钟学Java:打印Java数组最优雅的方式是什么?
五分钟学Java:打印Java数组最优雅的方式是什么?
|
5天前
|
机器学习/深度学习 算法 搜索推荐
Java数组(3)
Java数组(3)
23 0