都说Java是使用unicode作为默认编码的,那么这个unicode是指UCS-2还是UTF-16
我查了资料:

UCS有两种格式:UCS-2和UCS-4。顾名思义,UCS-2就是用两个字节编码,UCS-4就是用4个字节(实际上只用了31位,最高位必须为0)编码。UTF-16以16位为单元对UCS进行编码。对于小于0x10000的UCS码,UTF-16编码就等于UCS码对应的16位无符号整数。对于不小于0x10000的UCS码,定义了一个算法。不过由于实际使用的UCS2,或者UCS4的BMP必然小于0x10000,所以就目前而言,可以认为UTF-16和UCS-2基本相同。但UCS-2只是一个编码方案,UTF-16却要用于实际的传输,所以就不得不考虑字节序的问题。

另外我用记事本做了试验:
在记事本里写个字母a,然后debug观察,如果用Unicode big endian看的话就是 00 61(这个好理解,在ASCII前补0)而保存为Unicode就是61 00,为什么Unicode是反过来的呢,这里的Unicode就是UCS-2吗?