jay*_*100 7 java string byte char
嗨伙计们:我很惊讶地发现以下代码
System.out.println("Character size:"+Character.SIZE/8);
System.out.println("String size:"+"a".getBytes().length);
输出:
字符大小:2
字符串大小:1
我假设单个字符串应占用与单个字符相同(或更多)的字节.
特别是我想知道---
如果我有一个包含多个字段的java bean,它的大小将根据字段的性质(字符,字符串,布尔值,向量等等)增加,我假设所有java对象都有一些(可能)最小的足迹,这些足迹中最小的一个将是一个单一的角色.所以..为了测试我从上面的代码开始的基本假设 - 并且print语句的结果似乎违反直觉.
对默认情况下java存储/序列化字符与字符串的方式的任何见解都会非常有用...谢谢.
Tho*_* S. 10
getBytes()输出String带有默认编码(最有可能ISO-8859-1),而内部字符char总是2个字节.内部Java总是使用带有2字节字符的char数组,如果您想了解有关编码的更多信息,请在问题注释中阅读Oded链接.