【面向对象】匿名对象的应用
2015-02-15 23:13
246 查看
“匿名对象”的概念:
从字面上来看,就是没有明确的声明的对象。我们也可以简单的理解
为只使用一次的对象,即没有任何一个具体的对象名称引用它。
注:JAVA匿名对象会被分配到堆内存,分配到内存后运行一次就变成垃圾了,
不过内存处理机制会对一定时间内无指针指向的对象进行 destrory()。
一个字符串就是String的匿名对象。例如:
"hello".equals(str) 一个字符串能够调用一个函数,可以看出,一个字符串是String的匿名对象。
所谓的匿名对象就是指没有栈空间的对象。
从内存关系之中可以发现,实际上所有的内容都是在堆中保存的,也就是说堆才是真正所需要的内容。
所以所谓的匿名对象,就是使用的堆空间,对空间通过关键字new进行开辟。
请看下面的范例:
class Person
{
String name="张三";
int age=25;
String talk()
{
return "我是: "+name+",今年: "+age+"岁";
}
}
public class TestPerson
{
public static void main(String[] args)
{
System.out.println(new Person().talk());//声明了一 Person 匿名对象,调用 Person 类中的 talk()方法。
}
}匿名对象的特点:
1.匿名对象是没有别其它对象所引用
2.使用一次就变成垃圾了,被垃圾回收器收回了
从字面上来看,就是没有明确的声明的对象。我们也可以简单的理解
为只使用一次的对象,即没有任何一个具体的对象名称引用它。
注:JAVA匿名对象会被分配到堆内存,分配到内存后运行一次就变成垃圾了,
不过内存处理机制会对一定时间内无指针指向的对象进行 destrory()。
一个字符串就是String的匿名对象。例如:
"hello".equals(str) 一个字符串能够调用一个函数,可以看出,一个字符串是String的匿名对象。
所谓的匿名对象就是指没有栈空间的对象。
从内存关系之中可以发现,实际上所有的内容都是在堆中保存的,也就是说堆才是真正所需要的内容。
所以所谓的匿名对象,就是使用的堆空间,对空间通过关键字new进行开辟。
请看下面的范例:
class Person
{
String name="张三";
int age=25;
String talk()
{
return "我是: "+name+",今年: "+age+"岁";
}
}
public class TestPerson
{
public static void main(String[] args)
{
System.out.println(new Person().talk());//声明了一 Person 匿名对象,调用 Person 类中的 talk()方法。
}
}匿名对象的特点:
1.匿名对象是没有别其它对象所引用
2.使用一次就变成垃圾了,被垃圾回收器收回了
相关文章推荐
- 面向对象-匿名对象的应用
- 黑马程序员 Java基础<一>---> 面向对象与类之概述(匿名对象、封装、构造函数、this、静态等)
- 黑马程序员——>第五天<面向对象(匿名对象-封装-构造代码块-this关键字)>
- oc- 2面向对象 常用术语 类 方法声明 匿名对象
- 黑马程序员——Java面向对象(一)之匿名对象、代码块、static关键字等
- Java基础——面向对象+(匿名)对象+封装(修饰符权限)+变量+构造函数+This关键字
- 黑马程序员_day05 面向对象(匿名对象,构造函数,this关键字)
- 第一天:Java源码级实战速成(通过动手实战类、对象等,通过Spark和Hadoop案例代码和源码解析具体指知识的应用、深度详解匿名接口在Spark开发中的运用)
- java面向对象(四) 匿名对象
- 面向对象、匿名对象、成员、封装、主函数、成员变量、局部变量、构造函数、this、静态、主函数
- java笔记-匿名对象的应用
- Java笔记2 面向对象<1>面向对象概述、构造代码块、匿名对象、this关键字等
- 黑马程序员--面向对象(一)封装、成员变量与局部变量、匿名对象、构造函数、this关键字
- java匿名对象的应用
- 黑马程序员——JAVA基础之简述面向对象,类,变量,匿名对象
- 黑马程序员--匿名对象的应用
- 面向对象( 5 )上(匿名对象 封装 构造函数 this)
- 黑马程序员------面向对象(No.1)(面向对象的理解、成员变量、局部变量、匿名对象)
- 黑马程序员 JAVA初级-面向对象 匿名对象、封装、构造函数、构造代码块、this
- 黑马程序员——Java基础---面向对象(面向对象,类,对象,匿名对象,封装,构造函数,构造代码块,this,static,main,帮助文档,静态代码块,单例)