美文网首页
数据存储之java内存空间堆栈

数据存储之java内存空间堆栈

作者: 测试探索 | 来源:发表于2024-08-21 10:33 被阅读0次

一:数据类型

  • 基本数据类型 byte,short, int,long, float,doble,boolean,char
  • 引用数据类型,即除了基本的变量类型之外的所有类型

二:java在内存中堆、栈两块存储空间

image.png

2.1 基本数据类型只有一块存储空间(分配在stack中)

  • 传递的时候直接是值传递
  • 对数据进行操作,不影响原先的值
    代码示例:
package chapter3;

public class MemoryDemo {
    public static void main(String[] args) {
        int i = 1;
        System.out.println("第一个i:" + i);
        int a = i;
        System.out.println("第二个i:" + i);
        System.out.println("第二个a:" + a);

        i = 2;
        System.out.println("第三个a:" + a);
        System.out.println("第三个i:" + i);

    }
}
输出结果:
第一个i:1
第二个i:1
第二个a:1
第三个a:1
第三个i:2

2.2 引用类型有两块存储空间(一块在stack中,一块在heap中)

  • 一个对象在内存中会请求一块空间来保存数据,访问对象的时候不会直接是访问对象在内存中的数据,而是通过引用去访问
  • 引用:也是一种数据类型,保存的是内存的地址,引用是存储在 stack栈空间里面
  • 不同的引用可以指向同一个对象,一个对象可以有多个引用
    代码示例:
package chapter3;

public class MemoryDemo {
    public static void main(String[] args) {
        String aa = "这是aa";
        String bb = "这是bb";
        System.out.println("第一个aa:" + aa);
        System.out.println("第一个bb:" + bb);

        bb = aa;
        System.out.println("第二个aa:" + aa);
        System.out.println("第二个bb:" + bb);

        aa = "重新赋值,查看结果";
        System.out.println("第三个aa:" + aa);
        System.out.println("第三个bb:" + bb);

    }
}

运行结果:
第一个aa:这是aa
第一个bb:这是bb
第二个aa:这是aa
第二个bb:这是aa
第三个aa:重新赋值,查看结果
第三个bb:这是aa

三:数组拷贝

代码示例

package chapter3;

import java.util.Arrays;

public class MemoryDemo {
    public static void main(String[] args) {
        int [] a = {1,2,3};
        int [] b = a;
        System.out.println("a的地址是:"+a);
        System.out.println("b的地址是:"+b);
        
        System.out.println(Arrays.toString(a));
        System.out.println(Arrays.toString(b));
        b[0] = 0;
        System.out.println(Arrays.toString(a));
        System.out.println(Arrays.toString(b));

    }
}
输出结果:
a的地址是:[I@a09ee92
b的地址是:[I@a09ee92
[1, 2, 3]
[1, 2, 3]
[0, 2, 3]
[0, 2, 3]

相关文章

  • Java基础常识(应该知道)

    Java基础常识 Java中有5个不同的地方可以存储数据 寄存器:在Java中无法直接控制。 堆栈:Java必须知...

  • 《数据结构与算法之美》-链表

    数组和链表 数据是使用连续的内存空间存储数据。 链表是使用不连续的内存空间存储数据。 常见链表链表结构 单链表 循...

  • 堆栈

    堆栈设计图 堆栈优点 临时存储大量的数据,便于查找 push内存指令 POP指令

  • Swift-基本类型

    一 变量和常量的作用 变量和常量的作用是用来存储数据的,去内存空间中开辟内存空间存储数据 let a=10 var...

  • 内存中的堆栈和数据结构堆栈区别

    内存中的堆栈和数据结构堆栈不是一个概念,可以说内存中的堆栈是真实存在的物理区,数据结构中的堆栈是抽象的数据存储结构...

  • Java内存中的数据存储结构

    内存中的堆栈和数据结构堆栈不是一个概念,可以说内存中的堆栈是真实存在的物理区,数据结构中的堆栈是抽象的数据存储结构...

  • java基础之变量与内存(1)

    该章节讨论java变量,主要分为基本(数据)类型和引用类型,以及变量在内存堆栈中的存储。 基本类型: 布尔型:bo...

  • 杂碎集(更新中)

    Java整理 版本差别 java8 并发 Java之美 大数据 目前大数据存储查询方案大概可以分为:HBase系、...

  • 以后再命名

    1.字符串可以用带引号的文本初始化。 2.虽然某些Java的数据存储于堆栈中----特别是对象引用,但是Java对...

  • Java基础篇

    堆栈 栈 存储局部变量 存储方法调用 堆 存储Java对象(成员变量 局部变量 类变量 ->指向的对象都存储在堆内...

网友评论

      本文标题:数据存储之java内存空间堆栈

      本文链接:https://www.haomeiwen.com/subject/wzmbkjtx.html