Java编译后生成带$符号的class

java编译器会将每一个类编译成一个class文件,那问题来了,内部类和匿名类怎么办,答案就是"$"标识。

package red.sea.daelly.pojo;

import red.sea.daelly.inf.TestInterface;

/**
 * @author liqingyang
 * @date 2016-4-14 下午1:24:50
 */
public class Outer {
	public Outer(){
		AnotherOuter anotherOuter = new AnotherOuter();
		System.out.println(anotherOuter);
		Inner inner  = new Inner();
		System.out.println(inner);
		doSth(new TestInterface() {
			
			@Override
			public void hello() {
				System.out.println("I am in Outer's Construtor");
			}
		});
	}
	
	public void doSth(TestInterface inf){
		inf.hello();
		System.out.println(inf);
	}

	public static class Inner {
		
	}
	
	public static void main(String[] args){
		Outer outer = new Outer();
		System.out.println(outer);
	}
}

class AnotherOuter{
	
}
得到输出

red.sea.daelly.pojo.AnotherOuter@1690726
red.sea.daelly.pojo.Outer$Inner@9931f5
I am in Outer's Construtor
red.sea.daelly.pojo.Outer$1@1f1fba0
red.sea.daelly.pojo.Outer@1befab0

可见,内部类会在$后面加上内部类的类名,匿名类会以数字表示,从1开始

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值