首页 / JAVA / java 字符和字节的关系
java 字符和字节的关系
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java 字符和字节的关系,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1329字,纯文字阅读大概需要2分钟。
内容图文
问题:
Java中中英文分别占几个字节?如果数据量很大,或者存储空间不足的时候,可能需要考虑字节的占用大小,用于估计使用机器的数量。
方案:
很简单的:
1个字符=2个字节
1个字节=8位
1个英文字符占一个字节,也就是0.5个字符
1个中文字符占2-4个字节,这个需要区分编码情况,具体如下:
UTF8编码下: 1个中文字符占3个字节(少数占4个字节)
GBK编码下: 1个中文字符占2个字节
UTF16编码下:1个中文字符占2个字节,Unicode扩展区的一些汉字存储需要4个字节
上面其实不好记,最好的方法是放到程序里面去实际运行一下看看。
例子:
01
|
/**
|
02
|
*
|
03
|
*
描述:Java字符和字节测试例子
|
04
|
*
类名:BytesDemo.java
|
05
|
*
@author dutycode
|
06
|
*
@weibo ideaduty
|
07
|
*
@email dutycode@gmail.com
|
08
|
*
@website http://www.dutycode.com
|
09
|
*
2014-11-2
|
10
|
*
@version 1.0.1
|
11
|
*/
|
12
|
public class BytesDemo
{ |
13
|
14
|
public static void main(String[]
args) { |
15
|
String
e1 =
"english"
;
|
16
|
String
c1 =
"中文"
;
|
17
|
|
18
|
byte
[]
eb1 = e1.getBytes();
|
19
|
byte
[]
cb1 = c1.getBytes();
|
20
|
|
21
|
byte
[]
ebUTF8 = e1.getBytes(Charset.forName(
"utf8"
));
|
22
|
byte
[]
cbUTF8 = c1.getBytes(Charset.forName(
"utf8"
));
|
23
|
|
24
|
byte
[]
ebGbk = e1.getBytes(Charset.forName(
"gbk"
));
|
25
|
byte
[]
cbGbk = c1.getBytes(Charset.forName(
"gbk"
));
|
26
|
|
27
|
System.out.println(
"英文字符:" +
eb1.length); |
28
|
System.out.println(
"中文字符,默认(UTF8):" +
cb1.length); |
29
|
System.out.println(
"英文字符,(UTF8):" +
ebUTF8.length); |
30
|
System.out.println(
"中文字符,(UTF8):" +
cbUTF8.length); |
31
|
System.out.println(
"英文字符,(GBK):" +
ebGbk.length); |
32
|
System.out.println(
"中文字符,(GBK):" +
cbGbk.length); |
33
|
}
|
34
|
}
|
原文:http://blog.csdn.net/losetowin/article/details/40717009
内容总结
以上是互联网集市为您收集整理的java 字符和字节的关系全部内容,希望文章能够帮你解决java 字符和字节的关系所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。