字符编码
1.ANSII(127个字符,包括英文字符、阿拉伯数字、西文字符以及32个控制字符。)
0 | 7位 |
2.UCS(收录世界上所有字符,4B)
3.Unicode(UCS的约减集,收录世界上常用的字符,定长2B)
4.utf-8(变长,英文字母1B,中文汉字3B),utf-16,utf-32,utf-16be(都是2B)是2、3的是实现形式。
5.国内关于汉字编码
Gb2312(6千多)-gbk(1万多)-gb18030(4万多),中文2B,英文1B。
ANSI标准编码,采取平台编码格式,中文机器上即gbk。
Eclipse项目右击属性,可以看到项目的默认编码格式,中文机器默认GBK。
什么样的编码项目就认识什么样编码的文件,对于粘贴过去的文字会自动转换。
项目编码格式限制的是哪些方面呢?写出来及粘贴过去的文字保存下来是项目编码格式。项目可以允许有不同编码格式的其他文件存在。因为最后都会变成Unicode形式。??比如:项目是gbk,Java文件都是jbk的,但是会有utf-8的TXT文档存在,这是因为编码的兼容性还是??与上一句话冲突。??
关于JAVA默认unicode编码:(主要指class文件是Unicode,其他(JAVA文件、数据资源等)使用什么编码格式都可以)
编码问题存在两个方面:JVM之内和JVM之外。
1、Java文件编译后形成class
这里Java文件的编码可能有多种多样,但Java编译器会自动将这些编码按照Java文件的编码格式正确读取后产生class文件,这里的class文件编码是Unicode编码(具体说是UTF-16be编码)。
因此,在Java代码中定义一个字符串:
String s="汉字";
不管在编译前java文件使用何种编码,在编译后成class后,他们都是一样的----Unicode编码表示。JVM里面的任何字符串资源都是Unicode,就是说,任何String类型的数据都是Unicode编码。
2、JVM中的编码
JVM加载class文件读取时候使用Unicode编码方式正确读取class文件,那么原来定义的String s="汉字";在内存中的表现形式是Unicode编码。
便于理解可见 http://lavasoft.blog.51cto.com/62575/273608/
基本数据类型占用空间
boolean 1B
char 2B
float 4B
double 8B
long 8B
int 4B
short 2B
byte 1B
引用以及对象占用空间:
见 http://blog.csdn.net/u013841764/article/details/51307547
ASCII码表:http://tool.oschina.net/commons?type=4
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?