zoukankan      html  css  js  c++  java
  • java基本数据类型和引用数据类型

    基本数据类型

    基本数据类型是CPU可以直接进行运算的类型。Java定义了以下几种基本数据类型:

    • 整数类型:byte,short,int,long

    • 浮点数类型:float,double

    • 字符类型:char

    • 布尔类型:boolean

    引用类型

    除了上述基本类型的变量,剩下的都是引用类型。例如,引用类型最常用的就是String字符串:

    String s = "hello"

    引用类型的变量类似于C语言的指针,它内部存储一个“地址”,指向某个对象在内存的位置。

    Java的字符串除了是一个引用类型外,还有个重要特点,就是字符串不可变。考察以下代码:

    public class Main {
      public static void main(String[] args) {
        String s = "hello";
        System.out.println(s); // 显示 hello
        s = "world";
        System.out.println(s); // 显示 world
      }
    }

    观察执行结果,难道字符串s变了吗?其实变的不是字符串,而是变量s的“指向”。

    执行String s = "hello";时,JVM虚拟机先创建字符串"hello",然后,把字符串变量s指向它:

          s
          │
          ▼
    ┌───┬───────────┬───┐
    │   │  "hello"  │   │
    └───┴───────────┴───┘
    

    紧接着,执行s = "world";时,JVM虚拟机先创建字符串"world",然后,把字符串变量s指向它:

          s ──────────────┐
                          │
                          ▼
    ┌───┬───────────┬───┬───────────┬───┐
    │   │  "hello"  │   │  "world"  │   │
    └───┴───────────┴───┴───────────┴───┘
    

    原来的字符串"hello"还在,只是我们无法通过变量s访问它而已。因此,字符串的不可变是指字符串内容不可变。

  • 相关阅读:
    运算符重载
    LPCRITICAL_SECTION 函数
    让你弄明白高斯核是怎样进行滤波工作的
    sln文件
    内联函数
    C++对文本的操作
    数组形参
    内存区划分、内存分配、常量存储区、堆、栈、自由存储区、全局区[C++][内存管理]
    怎样对付win7黑屏
    C++ 模板
  • 原文地址:https://www.cnblogs.com/JercanYu/p/14723060.html
Copyright © 2011-2022 走看看