Java的字符表示格式
来源:互联网 发布:kbar软件下载 编辑:程序博客网 时间:2024/05/01 21:19
Java的字符表示格式是什么?
JVM的设计者当初决定JVM中所有字符的表示形式时,是不允许使用各种编码方式的字符并存的。
原因:如果内存中的Java字符可以以GB2312、UTF-16、BIG5等各种编码存在,那么对于开发者来说,连最基本的字符串打印,连接等操作都寸步难行。例如:一个GB2312的字符串后面连接一个UTF-8的字符串,那么连接之后的结果是混乱的,无法选择。
Java开发者牢记:在Java中字符只以一种方式存在——Unicode(不选择任何特定的编码,直接使用它们在字符集中的编号,这就是统一的唯一方法)。
但是Unicode在Java中到底指在哪里呢?是指在JVM中,在内存中,在代码声明的每一个char,String类型的变量中。例如:
char han = '永';
在内存的相应区域中,这个字符就表示0x6c38。
在java中,只要正确读入了这个“永”字,那么它在内存中的表示方式一定是0x6c38,没有其他的值能代表这个字。JVM的这种约定是的一个字符分为两部分:JVM内部和os的文件系统。在JVM内部,统一使用Unicode表示,当这个字符被从JVM内部移到外部(即保存为内部系统中的一个文件的内容时),就进行了编码转换,使用了具体的编码方案。因此可以说,所有的编码转换至发生在边界的地方,JVM和os的交界处,也就是各种输入输出流起作用的地方。
JVM的设计者当初决定JVM中所有字符的表示形式时,是不允许使用各种编码方式的字符并存的。
原因:如果内存中的Java字符可以以GB2312、UTF-16、BIG5等各种编码存在,那么对于开发者来说,连最基本的字符串打印,连接等操作都寸步难行。例如:一个GB2312的字符串后面连接一个UTF-8的字符串,那么连接之后的结果是混乱的,无法选择。
Java开发者牢记:在Java中字符只以一种方式存在——Unicode(不选择任何特定的编码,直接使用它们在字符集中的编号,这就是统一的唯一方法)。
但是Unicode在Java中到底指在哪里呢?是指在JVM中,在内存中,在代码声明的每一个char,String类型的变量中。例如:
char han = '永';
在内存的相应区域中,这个字符就表示0x6c38。
在java中,只要正确读入了这个“永”字,那么它在内存中的表示方式一定是0x6c38,没有其他的值能代表这个字。JVM的这种约定是的一个字符分为两部分:JVM内部和os的文件系统。在JVM内部,统一使用Unicode表示,当这个字符被从JVM内部移到外部(即保存为内部系统中的一个文件的内容时),就进行了编码转换,使用了具体的编码方案。因此可以说,所有的编码转换至发生在边界的地方,JVM和os的交界处,也就是各种输入输出流起作用的地方。
1 0
- Java的字符表示格式
- 常用的格式字符表示
- fourcc全格式(解码器的四字符表示)
- Java中字符表示
- JVM的字符表示
- 表示数值的字符
- Java的字符日期格式转换
- 16进制字符窜表示的颜色转化为RGB格式
- 正则表达式的字符表示
- xml 特殊字符的表示
- 剑-表示数值的字符
- java中一个char类型字符能表示世界上所有语言的所有字符吗?
- java和数据库日期格式表示
- 字符的编码格式
- printf( )的格式字符
- printf( )的格式字符
- MySQL的字符格式
- 正确配置Eclipse的java代码的字符格式
- 生成appcompat_v7(兼容包)并报错的解决方法
- redis
- 多源最短路:floyd
- 三大算法--二分选择冒泡
- Spark-神奇的共享变量
- Java的字符表示格式
- 单源最短路
- 使用restTeamplate来发送restfull请求
- “Human-level concept learning through probabilistic program induction”阅读笔记
- 矩阵分解大全matlab
- 图片的三级缓存和异步加载
- Oracle-SQL05
- 适不适合做技术
- LeetCode 77. Combinations