Java 内部是如何处理判断一个对象是否被实例化的?

Python014

Java 内部是如何处理判断一个对象是否被实例化的?,第1张

没有搞过C语言,但是在Java里实例化是指内存创建了一个类型的实例(给它开一个内存空间),这个过程被叫做实例化,也就是说内存创建了这个类的实例,那就是被实例化了,没有创建就没有被实例化

1. 所以按照这个逻辑来讲,若你这个user == null,那也就是说这个对象没有被实例化

2. 而user其实只是一个引用,也可以叫指针吧,他指向了一个内存中真实的User实例,但是若um.showUserById(JSONObject.getNames(uid)[0])返回的是一个null,那这个user指针只是一个空指针而已,你可以把这个表达式分开写

User user

um.showUserById(JSONObject.getNames(uid)[0])

第一行可以叫创建了一个User类实例的指针,名字叫user

第二行创建了一个User的实例,但是由于实例没有被任何一个已经申明的指针引用到,所以第二行代码执行后,虽然在内存中已经创建了一个User的实例,但是由于没有被任何指针引用到,所以这个新建的实例没有用,最后被在这个代码块结束后被GC回收掉内存

这样分开写后,应该可以看到其实User user =um.showUserById(JSONObject.getNames(uid)[0])内存只会生成一个实例,而这个实例有指针user指向它而已

以下实例演示了使用 File 类的 file.isHidden() 方法来判断文件是否隐藏:

Main.java 文件

import java.io.File

public class Main {

public static void main(String[] args) {

File file = new File("C:/Demo.txt")

System.out.println(file.isHidden())

}

}

以上代码运行输出结果为(Demo.txt为隐藏文件):

True