关于char与byte类型的一些问题

首先说一下我的理解,不知道对不对,
byte 字节 8个二进制位(bit)
char类型 占用2个字节 也就是16个二进制位

那么问题来了,一个英文字母是几个字节,是根据类型来的吗???
那String str = “hello” 这是几个字节???有人能帮着解释解释吗

char类型 占用2个字节 也就是16个二进制位
什么语言,C语言是一个字节。有的语言是2个。

一个英文字母是几个字节,根据编码来。比如根据ascii编码,就是一个字节,根据unicode编码就是4个字节。

默认情况Java有一个默认编码,但是你也可以指定,比如
new String("str","编码")
那么占用的字节就不同了。

这句是不对的:char 类型 占用2个字节 也就是16个二进制位!
至少对于 C 语言来说, char 是一个字节。

对于 Unicode 版本,就不是 char,一般是 wchar_t 或者 TCHAR。这样,就是2个字节!

字符串,分为 Unicode 版本 / ASCII / UTF-8 等编码方式,各种编码方式占用的字节数是不相同的。定长编码,一般是 2 个字节;但有不定长的,需要根据实现字符而定。

数值类型byte占8个位
char字符类型根据字符集来判断一个字符占多少字节

一个字节有八个位,这是确定了的事,但是不同数据类型具体占多少位,需要是没有明确规定的,根据系统而定

由于在内存中,byte是占一个字节,char是占两个字节,在一些情况下使用的时候会造成内存溢出的问题,所以会统一使用指定的编码格式进行转换,就算这个字段的存量不足,也会按照这个字段的类型匹配的字节储存运算