我们知道java的基本数为short 2bytes,int 4bytes,long 8bytes,float 4bytes,double 8bytes,char 2bytes。但是我们在一个txt中写一个char查看属性显示的是1byte,不是两字节。在中文的操作系统下,java文件输入输出采用的是GBK编码。然后又有什么ASCII GB2312 GBK ISO-8859-1 Unicode(a 0x00,0x61 英文两字节)UTF-8(不等长,高效这些编码)。
       比如String str = "welcome to xian!";这个str是几字节啊?
       这里有点混淆了,不知道java基本数据类型的字节数目是有什么决定的。
        
       另外附上今天看到的给Char[]赋值的一种方法:
       class Char {
 public static void main(String[] args) {
String temp = "welcome!";
char[] ch = new char[temp.length()];
temp.getChars(0,temp.length(),ch,0);
System.out.println(ch);
System.out.println(temp.length());
 }
        }
     希望理解问题的人能给我一点解答,,,,,,

解决方案 »

  1.   

    我们知道java的基本数为short 2bytes,int 4bytes,long 8bytes,float 4bytes,double 8bytes,char 2bytes。但是我们在一个txt中写一个char查看属性显示的是1byte,不是两字节。
    java里的数据类型,是指它在运行时在内存中的大小,而你保存为.txt的话,是存在电脑硬盘上,这个就和操作系统以及硬盘所采取的格式有关。
    举例而说,你通过记事本,编了一段.java的代码。这段代码的char是1byte。但是,你运行前会把它转换为.class。最后,你运行java程序,是在JVM中运行.class字节码,此时一个char在内存中占2bytes。