查看: 2645| 回复: 24
跳转到指定楼层
上一主题 下一主题
收起左侧

[学Java/C#] Java 字节的意义

全局:

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
比如,我编程从来没有用过字节东西。
为何当时Java定义语言要用到字节,这东西对哪层的技术有影响?

欢迎讨论

上一篇:test Leetcode 388
下一篇:再来一个Java reference的问题
推荐
putout 2020-4-8 16:26:32 | 只看该作者
全局:
andrew.denver 发表于 2020-4-8 02:12
可以节约空间。比如你一个变量只可能是1-10 [*这是什么意思? 1-10个bit?] ,用byte只占用8bit,你用in ...

Byte的存在比Java久多了。历史上byte是最小可以存储一个显示字符的单位。一个ASCII或UTF-8字符是1个byte就是从此而来。在内存规划中byte也是最小可寻址的数据单位。
回复

使用道具 举报

全局:
既然世界上里有1,10的存在有什么意义呢?100呢?1k呢?1m呢?1b呢?为啥呢?
回复

使用道具 举报

🔗
rdou 2020-4-8 14:19:21 来自APP | 只看该作者
全局:
可以节约空间。比如你一个变量只可能是1-10,用byte只占用8bit,你用int占32bit(32bit系统),然后你要存1亿个这种东西,你是不是就节约了24bit * 1亿的空间?
回复

使用道具 举报

🔗
 楼主| andrew.denver 2020-4-8 15:12:07 | 只看该作者
全局:
rdou 发表于 2020-4-8 14:19
可以节约空间。比如你一个变量只可能是1-10,用byte只占用8bit,你用int占32bit(32bit系统),然后你要存1 ...


可以节约空间。比如你一个变量只可能是1-10 [*这是什么意思? 1-10个bit?] ,用byte只占用8bit,你用int占32bit(32bit系统) [这跟我的问题有啥联系?  ] ,然后你要存1亿个这种东西,你是不是就节约了24bit * 1亿的空间?

谢谢你,但我觉得你没回答到我。我的意思是说,为啥要有Byte这个东西的存在,bit是最小单位已经足够了。比如int占用32个bit,为啥非要来个byte,说int占用4个byte,这个不是多此一举吗?
回复

使用道具 举报

🔗
yanjinbin 2020-4-8 15:25:09 | 只看该作者
全局:
这就属于考古了 2333  
回复

使用道具 举报

🔗
cutehuazai 2020-4-8 16:21:30 | 只看该作者
全局:
比如byte array啊。一般都跟data encoding有关。serialization或者deserialization
回复

使用道具 举报

🔗
spilt-over 2020-4-8 16:53:21 | 只看该作者
全局:
putout 发表于 2020-4-8 16:26
Byte的存在比Java久多了。历史上byte是最小可以存储一个显示字符的单位。一个ASCII或UTF-8字符是1个byte ...

你不说我都忘记了。。。
至少在盛行多年的x86指令集上寻址逻辑是以byte为最小单位的,按bit寻址不好用、占code segment的空间,按word太浪费data segment。而且在某种意义上关系到实现一个基本功能需要的门数和晶片面积。
至于x86之前是怎么搞的,谁第一个想出来的,正如楼上说是考古。。。
回复

使用道具 举报

🔗
rdou 2020-4-8 23:54:18 来自APP | 只看该作者
全局:
andrew.denver 发表于 2020/04/08 15:12:07

可以节约空间。比如你一个变量只可能是1-10 [*这是什么意思? 1-10个bit?] ,用byte只占用8bit,...
你可以考虑下为什么c要用char,应该是一个道理,不管java还是c,都没有1bit的变量可以用,bit只能进行位操作。比如一个结构体我需要35bit做35个标志位,用int的话要用两个int存,但我可以用1个int和1个char存。这样一个结构体就是40bit(不考虑编译器让它们对齐),如果我有很多这种结构体,就会节约不少空间。
回复

使用道具 举报

🔗
 楼主| andrew.denver 2020-4-9 05:30:11 | 只看该作者
全局:
putout 发表于 2020-4-8 16:26
Byte的存在比Java久多了。历史上byte是最小可以存储一个显示字符的单位。一个ASCII或UTF-8字符是1个byte ...

一个ASCII或UTF-8字符是1个byte就是从此而来。- 原来是这样,为何byte不设置成8个bit呢?  为何要4个bit? 有没有特殊的原因呢?

在内存规划中byte也是最小可寻址的数据单位。- 可以进一步解释一下吗? “最小可寻址的数据单位”
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表