问题
Java中的magic number指什么,为什么有时候它会返回bad(这里指得是"bad magic number"错误,当装载applet的时候会发生)?
Java中的magic number指什么,为什么有时候它会返回bad(这里指得是"bad magic number"错误,当装载applet的时候会发生)?
回答
Java applet编译后的class二进制文件(以class结尾)可以通过网络传输。有时候在传输文件的过程中,连接可能会被中断或受干扰,使得class文件装载失败;有时候当拷贝文
Java applet编译后的class二进制文件(以class结尾)可以通过网络传输。有时候在传输文件的过程中,连接可能会被中断或受干扰,使得class文件装载失败;有时候当拷贝文
件到web服务器时,文件会被混淆或者发生磁盘错误。因此,JVM和class loader提供了特别的手段去验证类文件是否完整。一个预防就是每个类定义的开始包含了magic number,
这是一串四位的字节数组用来标记该文件之所以为类定义文件。
对于那些很想知道magic number是什么的人来说,它就是一个16进制数CAFEBABE,class loader用它来确定一个文件是否真得是类文件。
本文转自 cuiyingfeng 51CTO博客,原文链接:
http://blog.51cto.com/cuiyingfeng/50333
,如需转载请自行联系原作者