字节码文件是经过编译器预处理过的一种文件,是JAVA的执行文件存在形式,
Java源程序(.java)要先编译成与平台无关的字节码文件(.class),然后字节码文件再解释成机器码运行。解释是通过Java虚拟机来执行的胡旅告。
它本身是二进制文件,但是不裤明可以被系统直接执行,而是需要虚拟机解释执行,由于被预处理过,所以比一般的解释代码要快,但是仍然会比系统直接执行的慢。
扩展资料:
在计算机中,数据只用0和1两种表现形式,(这里只表示一个数据点,不是数字),一个0或者1占一个“位”,而系统中规定8个位为一个字节,用来表示常用的256个字母、符号、控制标记,其中用一个位来进行数据校验,其他七个位用来记录数据。
按计算机中的规定,一个英文的字符占用一个字节,(如,."':avcAVC都占用一个字节),而一个汉字以及汉字的标点符号、字符都镇州占用两个字节,(如,。“”:;AVCavc他们就得占用两个字节)。
另外,他们是没有办法比较的,只能将一个字符占用一个字节,N个字符占用N个字节。
K是千 M是兆 G是吉咖 T是太拉 8bit(位)=1Byte(字节) 1024Byte(字节)=1KB 1024KB=1MB 1024MB=1GB 1024GB=1TB 1024TB=PB 1024PB=1EB 1024EB=1ZB 1024ZB=1YB 1024YB=1BB。
目前最大的计量单位是1BB (Brontobyte)= 1024 YB=10^27。
参考资料来源:百度百科-字节码
BOM——ByteOrderMark,就是字节序标记
在UCS编码中有一个叫做”ZEROWIDTHNO-BREAKSPACE“的字符,它的编码是FEFF。而FFFE在UCS中是不存在的字符,所以不应该出现在实际传输中。
UCS规范建议我们在传输字节流前,先传输字符”ZEROWIDTHNO-BREAKSPACE“。
如果接收者收到FEFF,就表明这个字节流是大字节序的;如果收到FFFE,就表明这个字节流是小字节序的。因此字符”ZEROWIDTHNO-BREAKSPACE“又被称作BOM。
UTF-8不需要BOM来表明字节顺序,但可以用BOM来表明编码方式。纳丛清字符”ZEROWIDTHNO-BREAKSPACE“的UTF-8编码是EFBBBF。所以如果接收者收到以EFBBBF开头的字节流,就知道这是UTF-8编码了。
在utf-8编码文件中BOM在文件头部,占用三个字节,用来标识该文件属于utf-8编码,现在已经有很多软件识别BOM头,但还是有些不能识别BOM头,比如PHP就不能识别BOM头,这也就是用记事本编辑utf-8编码的PHP文件后,就会报错的原因。
在windows环境下,用记事本打开任何一个文本文件,另存为utf-8格式后,这样文件就自动被加上了BOM头信息。可以很明显的看出,含BOM头的文件多出三个字节efbbbf。notepad++会自动添加为带Bom的utf8。
拓展资洞前料:UTF-8
UTF-8(8-bitUnicodeTransformationFormat)是一种针对Unicode的可变长度字符编码,又称万国码,由KenThompson于1992年创建。现在已经标准化为RFC3629。UTF-8用1到6个字节编码Unicode字符。用在网页上郑顷可以统一页面显示中文简体繁体及其它语言(如英文,日文,韩文)。
优缺点:优点
UTF-8编码可以通过屏蔽位和移位 *** 作快速读写。字符串比较时strcmp()和wcscmp()的返回结果相同,因此使排序变得更加容易。字节FF和FE在UTF-8编码中永远不会出现,因此他们可以用来表明UTF-16或UTF-32文本(见BOM)UTF-8是字节顺序无关的。它的字节顺序在所有系统中都是一样的,因此它实际上并不需要BOM。
缺点
你无法从UNICODE字符数判断出UTF-8文本的字节数,因为UTF-8是一种变长编码它需要用2个字节编码那些用扩展ASCII字符集只需1个字节的字符ISOLatin-1是UNICODE的子集,但不是UTF-8的子集8位字符的UTF-8编码会被email网关过滤,因为internet信息最初设计为7位ASCII码。因此产生了UTF-7编码。UTF-8在它的表示中使用值100xxxxx的几率超过50%,而现存的实现如ISO2022,4873,6429,和8859系统,会把它错认为是C1控制码。因此产生了UTF-7.5编码。
参考资料:UFT-8-百度百科
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)