java程序是使用unicode字符集编写的.这句话到底该怎么理解.←-高人看过来

凡是讲java的书都必有这句。但是我死活没看明白。
java到底在那里使用了unicode?
是单指关于char类型的操作是遵循unicode?
还有那个诡异的serializable.
为什么网间传输和写对象流需要序列化?
难道是unicode太耗空间了
JRE通过判断serializable型别对unicode进行编码和解码吗?
概念混乱了 高手在那里阿
[257 byte] By [syoumei-良匠不择器] at [2008-1-9]
# 1
要熟悉字符操作,必须明白一个概念,就是字符集,其实字符在程序中是以数字的形式存在的,一个数字对应一个字符,例如'a'对应97,这种数字和字符的对应关系叫做字符集。常见的字符集有很多,例如ASCII、GB2312、ISO8859-1等。
Java语言为了更好的支持国际化,所以使用了Unicode字符集。
# 2
序列化是指把一个对象按照一定的格式转换为一个流,方便对象的存储和传输
# 3
首先我认为对机器来说,任何程序都是数据和方法。

方法只是一些跳转和运算命令感觉与编码无关。

数据的话,java的基本数据类型长度都定了,

其中有一个数据类型是char,书上描述说是一个usc-2的Unicode

整个java语言就一个数据类型是unicode,

其次
我前面查了好多本书,里面说

.java文件到再内存里执行一共有5步骤

--------------------------------------
编辑器
编译器(javac后变成字节码)
类装载
类验证
解释器
-------------------------------------

我认为编辑器不是unicode,文件保存encoding应该是系统的编码,

但是后面四部哪一个环节变成Unicode的呢

在gbk环境下的a.java
class a{
String a="中文"
}

它在从文件变到内存再从内存变到里文件过程中
变量a的编码是一直是gbk,?
还是中gbk变成unicode,再重unicode变成gbk?

我已经快崩溃了
syoumei-良匠不择器 at 2007-10-17 > top of Msdn China Tech,Java,J2SE,扩展类...
# 4
我的理解:
这里所说的unicode是指编译后的字节码类型
telankesjiang at 2007-10-17 > top of Msdn China Tech,Java,J2SE,扩展类...
# 5
楼上说的没错,变量a在编译之后就变成unicode了,class文件中的“中文”是unicode,而java文件中的“中文”是gbk
RobertHooke-HK at 2007-10-17 > top of Msdn China Tech,Java,J2SE,扩展类...
# 6
是的 我已经找到证据

javac 有个可选参数是encoding 默认的话是系统的编码

但是还有很多细节没想明白

大家一起讨论讨论
syoumei-良匠不择器 at 2007-10-17 > top of Msdn China Tech,Java,J2SE,扩展类...
# 7
不过在class文件中中文好像是utf-8格式的

因为用ultr打开看到的是E6xxxxE6xxxx的
syoumei-良匠不择器 at 2007-10-17 > top of Msdn China Tech,Java,J2SE,扩展类...