JAVA中的类不要使用$符的原因解析

下面是在Java中标识符的定义

在大多数人的理解中,Java标识符的定义规则如下。
1.标识符由字母、数字、货币符号(¥、$等)、连接符号(_等)组成。(这里的字母为Unicode字符集, 而不再局限于传统的26个英文字母。)
2.标识符的首字符可以是字母、货币符号与连接符号,但不能是数字。
3.标识符不能与Java中的关键字相同。
4.标识符不能和Java中预定义的字面常量名称相同(true、false、 null)。

但是有时候轻易使用$时,会出现你意想不到的惊喜哦。比如下面的代码:

在Ly的类中创建了一个内部类xy
然后呢?在运行这个类的时候经过编译惊奇的事情出现了,生成了一个Ly x y . c l a s s 与 L y . c l a s s 两 个 c l a s s 文 件 如 果 我 么 在 写 一 个 L y xy.class 与Ly.class两个class文件如果我么在写一个Ly xy.classLy.classclassLyxy那么是不是会出现类重复呢?

在这里插入图片描述

在这里插入图片描述

如果按照下面的方法写的话会出现类重复的现象
究竟是哪个类重复了呢?可以参考上面的运行结果进行分析
从上面运行产生的class文件可得Ly$xy.class会出现重复的现象,所以会报错

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值