A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© linweiwen 中级黑马   /  2014-4-5 13:24  /  1713 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 linweiwen 于 2014-4-6 21:30 编辑

我查了一下资料,其他语言是由编译器决定的,
但Java好像没有编译器这样的东西,只是JVM用编译命令将java源文件转为.class这样的二进制字节码文件,
那是不是说在Java中一个字节占8位是由JVM决定的呢?固定不变的呢?

评分

参与人数 1技术分 +1 收起 理由
杨志 + 1 很给力!

查看全部评分

8 个回复

倒序浏览
一个字节占8位是由系统决定的!规定就是这样,就好像1M=1024KB一样!
回复 使用道具 举报
Peach2014 发表于 2014-4-5 13:36
一个字节占8位是由系统决定的!规定就是这样,就好像1M=1024KB一样!

你这个说法太笼统了,
我就是想知道这个系统是什么系统,
既然Java有跨平台性,这个决定的是否就是JVM呢?
回复 使用道具 举报
linweiwen 发表于 2014-4-5 13:50
你这个说法太笼统了,
我就是想知道这个系统是什么系统,
既然Java有跨平台性,这个决定的是否就是JVM呢 ...

所有的系统,无论是linux、windows、ios等等,他们统一规定一个字节就是8位。所以java不需要对这一点进行处理。
回复 使用道具 举报

计算机底层决定的。设计出厂都是按照这个规定, 就好像所有的计算机底层都只认0和1一样。由若干个位组成一个"字节"(byte).字节由多少个位组成,取决于计算机的自身结构.通常,微型计算机的CPU多用8位组成一个字节,用以表示一个字符的代码.构成一个字节的8个位被看作一个整体.字节(Byte)是存储信息的基本单位.

1B(Byte)=8b(bit)
1KB=1024B
1MB=1024KB
1GB=1024MB
自己百度一下就知道了。 还有,这个是规定出来的东西,没有必要深究。就好像我们约定一个常量的值是那么多就是那么多。完全没有必要深究。难道你还要去问,为什么计算机底层只认0和1???因为工程师这么设计的
回复 使用道具 举报
linweiwen 发表于 2014-4-5 13:50
你这个说法太笼统了,
我就是想知道这个系统是什么系统,
既然Java有跨平台性,这个决定的是否就是JVM呢 ...

不是JVM决定的,把一个字节占8位比喻成吃饭付钱,把JVM比喻成吃货,饭店是系统,那么不管吃货到哪里吃饭都要吃饭付钱的吧,这个和吃货本身没关系,就好比1大于0一个道理
回复 使用道具 举报
xyqjay 发表于 2014-4-6 15:24
计算机底层决定的。设计出厂都是按照这个规定, 就好像所有的计算机底层都只认0和1一样。由若干个位组成一 ...

谢谢你的解答,
那这个跟我们平时说的32位系统,
64位系统有什么关系?
还是两者不是一回事?
回复 使用道具 举报
linweiwen 发表于 2014-4-6 18:40
谢谢你的解答,
那这个跟我们平时说的32位系统,
64位系统有什么关系?

不是一回事。 这个系统的32位和64位,也没有必要深究,除非你要学汇编和反汇编。最早的是8位CPU,也就是一次处理8位的数据,后来是16位,再后来32 ,64位。所以64位的系统要对应64位的CPU和64位的应用,满足三个条件才可以达到64位的效果。,这个你也是没有必要知道的。
回复 使用道具 举报
xyqjay 发表于 2014-4-6 21:04
不是一回事。 这个系统的32位和64位,也没有必要深究,除非你要学汇编和反汇编。最早的是8位CPU,也就是 ...

哎,就是傻傻分不清楚。
虽然是知道什么一个字节占8位这些,
但每次想起都有点混,还是谢谢你。:)
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马