部分参考:https://blog.csdn.net/chen13579867831/article/details/78877666
顾名思义,匿名就是没有名字的对象,在创建对象时,只通过new的动作在堆内存开辟空间,却没有把堆内存空间的地址值赋值给栈内存的某个变量用以存储
//有名字的对象
Student s = new Student();
//匿名对象:
new Student()
在内存中的过程 上为匿名对象 下为正常
总结:
匿名对象其实就是对象,对象具有的功能匿名对象都具有,只不过有名字的对象可以重复使用,匿名对象只能用一次罢了。
匿名对象平时使用场景较少,日常项目开发中很少使用,一般框架层面才会用到
匿名对象特点:
1、由于我们没有记录堆内存对象的地址值,所以只能用一次,再次使用就找不到了
2、匿名对象的好处就是使用完毕就是垃圾,可以在垃圾回收器空闲时回收,节省内存空间
代码演示:
//定义一个学生类
public class Student{
//创建一个学习方法
public void study(){
System.out.println("好好学习,天天向上");
}
}
//测试类
public class Demo{
public static void main(String[] args){
//创建有名字的学生对象
Student s = new Student();
s.study();
//注意,匿名对象只能使用一次,以下方式即为创建了两个匿名对象
new Student();//创建匿名对象但是并未进行任何操作
new Student().study();//创建匿名对象并调用study()方法
}
}