zoukankan      html  css  js  c++  java
  • 基础语法-数组的内存分配

              基础语法-数组的内存分配

                               作者:尹正杰

    版权声明:原创作品,谢绝转载!否则将追究法律责任。

     

     

     

    一.JAVA的内存结构

      Java程序在运行时,需要在内存中分配空间。为了提高运算效率,有对空间进行了不同区域的花费,因为每一片区域都有特定数据处理方式和内存管理方式。

      栈内存:
        用于存储局部变量,当数据使用完,所占空间会自动释放。

      堆内存:
        存储数组和对象,凡是通过new建立的实例都存放在堆内存中;
        每一个实例都有内存地址值。实例中的变量都有默认初始化值;
        实例不再被使用时,会在不确定的时间内被垃圾回收器回收。

      方法区:

      本地方法区:

      寄存器:

    二.编写案例代码并查看运行结果

    /**
     *     数组定义
     * 
     *     @author 尹正杰
     *
     */
    public class ArrayDemo2 {
        public static void main(String[] args) {
            //创建数组
            int[] arr  = new int[3];
            //将arr2保存的是arr对应的引用地址
            int[] arr2 = arr;
            //给数组中的0索引存储数据
            arr[1] = 100;
            //查询数据中指定编号中存储的数据
            for (int index = 0; index < arr.length; index++) {
                System.out.println("arr的索引" + index + "对应的值为" + arr[index]);
            }
            //arr变量存储的是数组在堆内存中的引用地址
            System.out.println(arr);
            //将变量的引用地址指向为null
            arr = null;
            System.out.println(arr);
            
            System.out.println("=====我是分割线======");
            
            for (int index = 0; index < arr2.length; index++) {
                System.out.println("arr2的索引" + index + "对应的值为" + arr2[index]);
            }
            System.out.println(arr2);
        }
    }

    三.分析第二步中数组的内存分配

  • 相关阅读:
    SqlServer触发器的创建与使用
    SqlServer存储过程的创建与使用
    SqlServer视图的创建与使用
    U盘重装系统:手把手教你怎么使用U盘重装系统、清除登录密码
    附034.Kubernetes_v1.21.0高可用部署架构二
    附032.Kubernetes实现蓝绿发布
    CKS考试心得分享
    001.IT运维面试问题-Linux基础
    附031.Kubernetes_v1.20.4高可用部署架构二
    深入Netty逻辑架构,从Reactor线程模型开始
  • 原文地址:https://www.cnblogs.com/yinzhengjie2020/p/12219338.html
Copyright © 2011-2022 走看看