# byte 到底是什么?

字节(Byte)是计算机信息技术用于计量存储容量的一种计量单位,也表示一些计算机编程语言中的数据类型和语言字符。

中文名 字节
外国名 Byte
定义 相当于一个字符,8 位 = 1 字节
类型 数字信息的单位。

# 相关单位:

B 与 bit:

数据存储是以 “字节”(Byte)为单位,数据传输大多是以 “位”(bit,又名 “比特”)为单位,一个位就代表一个 0 或 1(即二进制),每 8 个位(bit,简写为 b)组成一个字节(Byte,简写为 B),是最小一级的信息单位 。

字(Word)

在计算机中,一串数码作为一个整体来处理或运算的,称为一个计算机字,简称字。字通常分为若干个字节(每个字节一般是 8 位)。在存储器中,通常每个单元存储一个字。因此每个字都是可以寻址的。字的长度用位数来表示  。

字长

计算机的每个字所包含的位数称为字长,计算的字长是指它一次可处理的二进制数字的数目。一般地,大型计算机的字长为 32-64 位,小型计算机为 12-32 位,而微型计算机为 4-16 位。字长是衡量计算机性能的一个重要因素  。

# java 中每种数据类型对于的字节数:

数据类型 内存占用字节数
byte 1
short 2
int 4
long 8
float 4
double 8
boolean 1
char 2

1、计算机访问内存的方式都是一次一个字节。

2、 java 中一个应用(机器地址)需要 8 个字节表示。**

	例如:Date date = new Date(),则data这个变量需要8个字节表示。

3、 创建一个对象,比如 new Date, 除了对象内部存储的数据(例如年月日等信息之外)占用的内存,该对象本身也有内存开销,每个对象的自身开销是 16 个字节,用来保存对象的头部信息。

4、 一般内存的使用,如果不够 8 个字节,会被自动填充为 8 个字节。

5、java 中数组被限定为对象,他们一般都会因为记录长度需要额为的内存,一个原始数据类型的数组一般需要 24 字节的头信息(16 个自己的对象开销,4 字节用于保存长度以及 4 个填充字节)再加上保存值所需的内存。