数据类型

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

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

    image.png

    数据类型在内存中使用介绍

  • 基本的变量类型只有一块存储空间(分配在stack中),

    • 传递的时候直接是值传递
    • 对数据进⾏操作,不影响原先的值

image.png

  • 引⽤类型有两块存储空间(⼀块在stack中,⼀块在heap中)
    • ⼀个对象在内存中会请求⼀块空间来保存数据,访问对象的时候不会直接访问对象在内存中的数据,⽽是通过引用去访问
    • 引⽤也是一种数据类型,保存的是内存的地址,引用是存储在 stack栈空间⾥⾯。
  • 不同的引用可以指向同⼀个对象,⼀个对象可以有多个引⽤。

举例:下⾯代码在堆栈⾥面怎么分配的

  1. int a=1;
  2. boolean flag=false;
  3. Student s = new Student();
  4. Person p = new Person();

image.png

引⽤后修改结果

因为字符串、数组或者对象是引⽤类型,所以修改后的数据都会发生变化
下⾯代码分别输出什什么内容

  1. String a = "⼩小D课堂学习java架构课程";
  2. String b = "l love java";
  3. System.out.println(a);
  4. System.out.println(b);
  5. b = a ;
  6. System.out.println(a);
  7. System.out.println(b);
  8. a = "⼩小D课堂学习java架构课程,现在在学java基础";
  9. System.out.println(a);
  10. System.out.println(b);

image.png
数组拷⻉,下⾯代码输出的是什么

  1. int [] a = {1,2,3};
  2. int [] b = a;
  3. System.out.println(Arrays.toString(a));
  4. System.out.println(Arrays.toString(b));
  5. b[0] = 0;
  6. System.out.println(Arrays.toString(a));
  7. System.out.println(Arrays.toString(b));

image.png
image.png