Java中的匿名对象
匿名对象就是没有明确给出名字的对象。一般匿名对象只使用一次,而且匿名对象只在堆内存中开辟空间,而不存在栈内存的引用。
一个普通的常量字符串就可以表示一个匿名String对象。
比如可以
int len = "hello".length();
只要一个类是抽象的或是一个接口,那么其子类中的方法都可以使用匿名内部类来实现。最常用的情况就是在多线程的实现上,因为要实现多线程必须继承Thread类或是继承Runnable接口
public class AnonymousDemo {
public static void main(String[] args) {
// TODO Auto-generated method stub
Thread t = new Thread(){
public void run(){
for(int i = 1; i<=4 ; i++){
System.out.print(i+" ");
}
}
};
t.start();
}
}
output: 1 2 3 4
public class AnonymousDemo {
public static void main(String[] args) {
// TODO Auto-generated method stub
Runnable r = new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
for(int i = 1; i <= 4; i++){
System.out.print(i+" ");
}
}
};
Thread t = new Thread(r);
t.start();
}
}
output: 1 2 3 4
除此之外,还经常用到的就是为控件添加监听器时。
匿名对象在实际开发中基本上都是作为其他类实例化对象的参数传递的, 匿名对象实际上就是一个堆内存空间,对象不管是不是匿名对象,都必须在开辟的堆内存空间之后才可以使用。
Java中的匿名对象的更多相关文章
- Java中的匿名对象代码实例
/* 匿名对象:就是没有名字的对象. 匿名对象的应用场景: A:调用场景,仅仅只调用一次的时候. 注意:调用多次的时候,不合适. 那么,这种匿名调用有什么好处吗? 有,匿名对象调用完毕就是垃圾.可以被 ...
- java中对集合对象list的几种循环访问
java中对集合对象list的几种循环访问的总结如下 1 经典的for循环 public static void main(String[] args) { List<String> li ...
- Java中的函数对象
初次听说java中的函数对象可能,比较的陌生.可以类比着来理解一下,人们常说java中没有了指针,殊不知,java中的对象引用就是指针,有时候我们说一个对象往往指的就是这个对象的引用,也就是说基本上把 ...
- (转)java中对集合对象list的几种循环访问总结
Java集合的Stack.Queue.Map的遍历 在集合操作中,常常离不开对集合的遍历,对集合遍历一般来说一个foreach就搞定了,但是,对于Stack.Queue.Map类型的遍历,还是有一 ...
- Java中创建实例化对象的几种方式
Java中创建实例化对象有哪些方式? ①最常见的创建对象方法,使用new语句创建一个对象.②通过工厂方法返回对象,例:String s =String.valueOf().(工厂方法涉及到框架)③动用 ...
- Java中字节与对象之间的转换
近期公司里面用到了消息队列,而正如我们知道的是消息队列之间的是通过二进制形式的.以下就分享一下java中字节与对象之间的转换. 主要是用到了ByteArrayOutputStream和ObjectOu ...
- java中的string对象深入了解
这里来对Java中的String对象做一个稍微深入的了解. Java对象实现的演进 String对象是Java中使用最频繁的对象之一,所以Java开发者们也在不断地对String对象的实现进行优化,以 ...
- Java中创建的对象多了,必然影响内存和性能
1, Java中创建的对象多了,必然影响内存和性能,所以对象的创建越少越好,最后还要记得销毁.
- Java——构造方法和匿名对象
前言 在编写程序时不安全的初始化会导致程序发生发生重大错误.为了使程序可以被安全地初始化,C++引入了构造器(也可以成为构造方法)的概念,这是一个在创建对象时被自动调用的特殊方法.Java中也采用了构 ...
随机推荐
- a个人经验总结
个人经验总结 js中事件有个 on前缀 比如 onclick onmousemove jq中事件省略 on 如 click mousemove html引入其他页面 <iframe src= ...
- java程序员必须会的技能
1.语法:必须比较熟悉,在写代码的时候IDE的编辑器对某一行报错应该能够根据报错信息知道是什么样的语法错误并且知道任何修正. 2.命令:必须熟悉JDK带的一些常用命令及其常用选项,命令至少需要熟悉:a ...
- 谈敏捷,谈开发 --《Agile Software Development》读后感
谈敏捷,谈开发 --<Agile Software Development>读后感 北航计算机学院 110616班 11061171 毛宇 联系方式:maoyu815930@sina.co ...
- SURF算法与源码分析、上
如果说SIFT算法中使用DOG对LOG进行了简化,提高了搜索特征点的速度,那么SURF算法则是对DoH的简化与近似.虽然SIFT算法已经被认为是最有效的,也是最常用的特征点提取的算法,但如果不借助于硬 ...
- Codeforces Round #Pi (Div. 2) C. Geometric Progression map
C. Geometric Progression Time Limit: 2 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/5 ...
- BestCoder 1st Anniversary B.Hidden String DFS
B. Hidden String Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://bestcoder.hdu.edu.cn/contests/co ...
- 【转】reduce端缓存数据过多出现FGC,导致reduce生成的数据无法写到hdfs
转自 http://blog.csdn.net/bigdatahappy/article/details/41726389 转这个目的,是因为该贴子中调优思路不错,值得学习 搜索推荐有一个job,1 ...
- MVC RenderSection
简要使用介绍 @RenderSection在母版页中占个位,然后让使用此母版页的子页自己去呈现他们的Section. 在母版页_Layout.cshtml中定义@RenderSection(" ...
- Ada语言基础
前天是程序员节,CodeForces上举办了一场比赛,要求必须使用ADA语言提交.顿时虐爆了我这个只知道pascal,C,BASIC这3种语系的菜.今天闲着看了看这种语言,一看才知道竟然是美国军方专用 ...
- TYVJ P1037 阶乘统计2 Label:坑
描述 n的阶乘定义为n!=1*2*3*……*n 如3!=6 n!通常最后会有很多0,如5!=120 最后有一个0,现在统计n!去除末尾的0后,最后k位是多少 输入格式 第一行包括两个数n,k 输 ...