zoukankan      html  css  js  c++  java
  • 数组在内存中的分配

    对于 Java 数组的初始化,有以下两种方式:
      静态初始化:初始化时由程序员显式指定每个数组元素的初始值,由系统决定数组长度,如:
      
    //只是指定初始值,并没有指定数组的长度,但是系统为自动决定该数组的长度为4 
    String[] computers = {"Dell", "Lenovo", "Apple", "Acer"}; //① 
    //只是指定初始值,并没有指定数组的长度,但是系统为自动决定该数组的长度为3 
    String[] names = new String[]{"多啦A梦", "大雄", "静香"}; //②
    

      动态初始化:初始化时由程序员显示的指定数组的长度,由系统为数据每个元素分配初始值,如:

    //只是指定了数组的长度,并没有显示的为数组指定初始值,但是系统会默认给数组数组元素分配初始值为null 
    String[] cars = new String[4]; //③

    因为 Java 数组变量是引用类型的变量,所以上述几行初始化语句执行后,三个数组在内存中的分配情况如下图所示:

      由上图可知,静态初始化方式,程序员虽然没有指定数组长度,但是系统已经自动帮我们给分配了,而动态初始化方式,程序员虽然没有显示的指定初始化值,但是因为 Java 数组是引用类型的变量,所以系统也为每个元素分配了初始化值 null ,当然不同类型的初始化值也是不一样的,假设是基本类型int类型,那么为系统分配的初始化值也是对应的默认值0。

  • 相关阅读:
    Centos7端口查看相关
    Redis线程安全问题
    利用redis 分布式锁 解决集群环境下多次定时任务执行
    分布式锁的几种实现方式~
    什么是 CI/CD? (持续集成/持续交付)
    Java JDBC 中获取 ResultSet 的大小
    BeetleX之XRPC使用详解
    事件驱动框架EventNext之线程容器
    BeetleX之快速构建Web多房间聊天室
    BeetleX之TCP服务应用详解
  • 原文地址:https://www.cnblogs.com/firecode7/p/13276227.html
Copyright © 2011-2022 走看看