Java 中,数字,汉字,英文字母,...占多少字节

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java 中,数字,汉字,英文字母,...占多少字节相关的知识,希望对你有一定的参考价值。

半角的数字和英文字母以及标点符号占用1字节,全角数字,英文字母和汉字占用2字节 参考技术A 数字,英文字母,标点符号各占1个字节
汉字,标点符号各站2个字节
参考技术B Java是静态语言,每一个对象必须属于一个类型,Java中,类型则是分布内存空间的依据。
Java语言中,变量分为两种类型:基本类型和引用类型。基本类型存储的是字面量的值,引用类型存储的是引用着的对象在堆中地址值的拷贝。
该问题就是Java基本类型的存储分配:
int类型占用4个字节,char类型占用2个字节;
Java语言中,字符类型的编码方式是UCS2,也就是UTF-16(不变长编码方式),每一个字符占用两个字节,不管该字符是汉字还是英文字母!追问

我以前 也听说过
数字,英文字母,标点符号各占1个字节
汉字,标点符号各站2个字节

这些都是错的,吗?

追答

如果在Java语言中,字符类型就占用2个字节,字符(包括你的汉字,英文字母,标点符号等等)在Java语言中是以UTF-16编码方式来存放的。

-------------------------------------------------------------------------------------------------------------------------

你可以看一下java字符16进制的表示,你就全然明了了:

另外,可以参看一下JavaDoc对char类型的说明,你会理解的更加深入:

-------------------------------------------------------------------------------------------------------------------------

所以说,如果以上是相对与java语言而言,明显是错误的!

输入框输入限制为1-64个字符,这个输入框能输入多少个汉字?

参考技术A 最多输入16-32个汉字追问

我也是这么理解的
为啥别人说可以输入64个汉字呢

追答

64个字符不等于64个汉字,一个汉字占用2-4个字符,所以不可能是64个字符

追问

一个框最大为64个字符 一个汉字占两个字符 能输入多少个汉字 我感觉小学生都会算
为啥那些人还是强调是64呢
说的理由还狗屁不通

追答

你记住64个字符占用的空间不等于64个汉字占用的空间

参考技术B UTF-8编码中,一个汉字占用3个字节,一个英文字母或数字占用1个字节。因此,如果输入框限制为1-64个字符,最多能输入64个英文字母或数字,或者21个汉字。具体计算公式为:
- 最多输入64个字节,一个汉字占用3个字节,因此最多可以输入64/3=21.33(向下取整为21)个汉字。
- 最少输入1个字节,一个汉字占用3个字节,因此最少可以输入1/3=0.33(向上取整为1)个汉字。
需要注意的是,这里的汉字指的是中文简体汉字。如果包括繁体汉字、符号、标点等其他字符,实际输入的字符数可能会有所不同。

以上是关于Java 中,数字,汉字,英文字母,...占多少字节的主要内容,如果未能解决你的问题,请参考以下文章

一个汉字等于多少个字节?

求各语言对于字母,数字,中文等的占位情况。如:在java中一个字母,一个数字,一个中文分别占多少位

char和varchar的区别

java一个汉字占几个字节?

java字节流对汉字输出为乱码的问题

用SQL计算同一个字符(汉字、字母、数字、表情、符号)连续重复出现的次数