菜鸟笔记 -- Chapter 6.2.2 标识符
6.2.2 标识符
Java中使用标识符来作为类、方法、字段的名称,在Java基础中我们已经简单了解过标识符的定义方法和驼峰命名。本节我们来研究一下标识符的长度问题,难道类名、方法名都可以无限长吗?我看未必。根据Java虚拟机的规定,Class文件中方法、字段等都需要引用CONSTANT_Utf8_info型常量来描述名称,所以CONSTANT_Utf8_info型常量的最大长度也就是Java中方法\字段名的最大长度.而这里的最大长度就是length的最大值,即u2类型能表达的最大值65535。所以Java程序中如果定义了超过64KB英文字符的变量或方法名,将会无法编译。Java中并没有对类名做出什么限制,但是系统本身却对文件名称做出了限制Linux文件名的长度限制是255个字符 ,windows下完全限定文件名必须少于260个字符,目录名必须小于248个字符。而我们知道类经过编译生成一个类名为名称后缀为class的文件,所以类名我们可以推测理论上Linux下类名最多只能是249,Window下最多是254【有人试过说最多250,个人没有试验,只做理论解读,因为见名知意,把类名写成文章没人干这种事!】。