JAVA基本类型和引用类型

今天刷题,碰到一个题目

想不起来引用类型是什么意思了,搜了一下

基本类型

就是一个数字,字符什么的;

引用类型

引用类型代表着一个内存地址,这个地址里放着什么数据内容,它不关心,比如,MyBook a; a 就是一个应用类型,在内存中开辟了一个空间,放着地址,如果有 a = new MyBook(); 则给引用变量a 赋值,给MyBook的数据内容开辟空间,并将首地址赋给a。

引用类型可以相互赋值 MyBook a,b;a = new MyBook();b = a;是可以的,a和b都是一个MyBook()对象存放的首地址。

再回过头看这道题,AB没有疑问,C可以,但是不推荐,D final修饰引用变量,引用不能变,内容可以变;修饰基本数据类型的变量,内容不能变.

public class Test {
    public static void main(String[] args)  {
        final MyClass myClass = new MyClass();
        System.out.println(++myClass.i);
 
    }
}
 
class MyClass {
    public int i = 0;
}

  这段代码可以顺利编译通过并且有输出结果,输出结果为1。这说明引用变量被final修饰之后,虽然不能再指向其他对象,但是它指向的对象的内容是可变的。

原文地址:https://www.cnblogs.com/TaoChiangBlog/p/5956351.html