java程序员面试宝典1

1.在java中字符串只以Unicode一种形式存在(不选择任何特定的编码,直接使用他们在字符集中的编号,这是统一的唯一的方法)

2.在java中,是指在JVM中,在内存中,在你的代码里声明的每个char,String类型的变量中。

public class Test2 {
    public static void main(String[] args){
        char han='';
        System.out.format("%x",(short)han);
     //这里输出6c38
        char han1=0x6c38;
        System.out.println(han);
     //这里输出永 } }
//这里是说只要你正确的读入了永字,那么它在内存找那个的表示形式一定是0x6c38,没有其他任何值能够表示这个字了

JVM的这种约定是的一个字符分为两个部分:JVM内部和OS文件系统,编码的转换一般发生在JVM和OS的交界处。

3.基本IO可以分为两大阵营:面向字节的输入/输出流;面向字符的输入输出流。

  (1)面向字节:保证文件系统中的二进制内容和读入JVM内部的二进制内容一致,不能变换任何0和1的顺序。适合读入音视频文件或者不需要做交换的文件。

  (2)面向字符的I/O:读入文件系统中的字符和读入内存中的“字符”要保持一致。

   在输出时,内存中的Unicode字符使用了系统默认的编码方式进行了编码,而在输出的时候,讲文件系统中已经编码过的字符使用默认的编码方案进行还原。

  一个字符和字节之间的转换需要用到编码的转换,在java中能够制定转换编码的地方有两个:InputStreamReader和OutputStreamWriter

原文地址:https://www.cnblogs.com/bigdata-stone/p/10451362.html