• 微信公众号:美女很有趣。 工作之余,放松一下,关注即送10G+美女照片!

java基本数据类型和引用数据类型

开发技术 开发技术 2周前 (04-30) 9次浏览

基本数据类型

基本数据类型是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访问它而已。因此,字符串的不可变是指字符串内容不可变。


程序员灯塔
转载请注明原文链接:java基本数据类型和引用数据类型
喜欢 (0)