JAVA中的编码分析

在实际编程中可以不用关注JVM中使用的是什么编码,而只需要关注自己输出需要采用的编码,JVM会根据你设置的编码正确操作。

1、String采用的是什么编码?

  很多厂家根据规范实现了JVM,JVM只说明了String应该符合Unicode编码。Unicode编码只是一种编码模型,utf8,utf16,utf32都属于Unicode模型

,具体的信息参阅http://www.cnblogs.com/YDDMAX/p/5360709.html

2、为什么JAVA中Char是两个字节?

参阅http://stackoverflow.com/questions/3956734/why-does-the-java-char-primitive-take-up-2-bytes-of-memory

When Java was originally designed, it was anticipated that any Unicode character would fit in 2 bytes (16 bits), so char and Character were designed accordingly. In fact, a Unicode        character can now require up to 4 bytes. Thus, UTF-16, the internal Java encoding, requires supplementary characters use 2 code units. Characters in the Basic Multilingual Plane        (the most common ones) still use 1. A Java char is used for each code unit. This Sun article explains it well.

时间: 2024-10-06 01:25:09

JAVA中的编码分析的相关文章

关于java中的编码问题

GET方式提交的数据不会受页面编码的影响,应该都是以iso8859-1方式编码提交到后台程序,在后台java代码中可以通过 String str1=new String(name.getBytes("iso8859-1"),"UTF-8"); 的方式对字符串解码,解决乱码问题. 关于java中的编码问题,布布扣,bubuko.com

java中的编码问题

一直在试图搞清楚java中的编码问题,也看了网上的一些文章,但还是云里雾里.直到最近看了方立勋老师的web课程,才略略明白一点. 在此记录一下自己的理解,看看自己能不能说清楚. 第一个问题:我在java代码中定义了一个字符串,它是什么编码? 字符串实质是一个char数组.那么char的编码,其实就是字符串的编码.那么char什么编码呢?为什么'中'字转int类型后的值是20013呢? char c = '中'; System.out.println(c); // 中 System.out.pri

Java 中需要编码的场景

I/O 操作中存在的编码 我们知道涉及到编码的地方一般都在字符到字节或者字节到字符的转换上,而需要这种转换的场景主要是在 I/O 的时候,这个 I/O 包括磁盘 I/O 和网络 I/O,关于网络 I/O 部分在后面将主要以 Web 应用为例介绍.下图是 Java 中处理 I/O 问题的接口: Reader 类是 Java 的 I/O 中读字符的父类,而 InputStream 类是读字节的父类,InputStreamReader 类就是关联字节到字符的桥梁,它负责在 I/O 过程中处理读取字节到

Java中需要编码的场景

一.I/O 操作中存在的编码 涉及到编码的地方一般都在字符到字节或者字节到字符的转换上,而需要这种转换的场景主要是在 I/O 的时候,这个 I/O 包括磁盘 I/O 和网络 I/O,关于网络 I/O 部分在后面将主要以 Web 应用为例介绍. 下图是 Java 中处理 I/O 问题的接口:       Reader 类是 Java 的 I/O 中读字符的父类,而 InputStream 类是读字节的父类,InputStreamReader 类就是关联字节到字符的桥梁,它负责在 I/O 过程中处理

java中的编码

来源:https://www.ibm.com/developerworks/cn/java/j-lo-chinesecoding/#icomments 在计算机用使用0.1来保存数据,存储的单位是字节(8bit/8位),每字节保存的最大数字是256,只保存英文可以,但是加上汉字就需要扩展了. ASCII编码 总共有128位,用一个字节的低7位表示,0-31是控制字条换行回车删除等,32-126是可打印字符. ISO-8859-1 ISO组织在ASCII码基础上又制定了一些列标准用来扩展ASCII

Java中字符编码和字符串所占字节数 .

首 先,java中的一个char是2个字节.java采用unicode,2个字节来表示一个字符,这点与C语言中不同,C语言中采用ASCII,在大多数 系统中,一个char通常占1个字节,但是在0~127整数之间的字符映射,unicode向下兼容ASCII.而Java采用unicode来表示字符,一个中文或英文字符的unicode编码都占2个字节,但如果采用其他编码方式,一个字符占用的字节数则各不相同. 在 GB 2312 编码或 GBK 编码中,一个英文字母字符存储需要1个字节,一个汉字字符存储

java基础---->java中字符编码问题(一)

这里面对java中的字符编码做一个总结,毕竟在项目中会经常遇到这个问题. 文件的编码格式 一.关于中文的二进制字节问题 public static String CHARSET_TEXT = "我爱LL"; // 打印字节的16进制表示 private void printBinarys(byte[] buffer) { for (byte b : buffer) { System.out.print(Integer.toHexString(b & 0xff) + "

深入理解Java中的逃逸分析

在Java的编译体系中,一个Java的源代码文件变成计算机可执行的机器指令的过程中,需要经过两段编译,第一段是把.java文件转换成.class文件.第二段编译是把.class转换成机器指令的过程. 第一段编译就是javac命令. 在第二编译阶段,JVM 通过解释字节码将其翻译成对应的机器指令,逐条读入,逐条解释翻译.很显然,经过解释执行,其执行速度必然会比可执行的二进制字节码程序慢很多.这就是传统的JVM的解释器(Interpreter)的功能.为了解决这种效率问题,引入了 JIT(即时编译)

JAVA中hashmap的分析

从http://blog.csdn.net/luanlouis/article/details/41576373?utm_source=tuicool&utm_medium=referral学习到了java中hashmap的内部原理,非常不错的文章,非常感谢作者的奉献.以下为主要内容摘录. java/scala/c# 语言之中,class 都会含有hashcode,equals之类的方法,这是为什么?数组和链表的区别是什么?在编程开发中应该如何使用?在HashMap内部,采用了数组+链表的形式来