如何能够得到一个String 有多少个byte呢?也就是这个string的大小
如何能够得到一个String 有多少个byte呢?也就是这个string的大小?例如 string a="subject contains \"刘杨天才\""
那么这个a该有 33个byte。
我如何能得到这个大小呢?
恩。对地。哈哈。。String对象所占的内存要看你是采用了什么编码系统对UNICODE字符串进行了编码,采用不同的编码方案,所占的内存就不同,虽然JAVA把字符都当作UNICODE字符,但是编码要依赖操作系统的ANSI编码。比如中文操作系统是GBK编码,而英文是ISO8859-1,日文是JIS编码。所以当纯的占用多少内存是没有意义的。呵呵。
恩。对地。哈哈。。String对象所占的内存要看你是采用了什么编码系统对UNICODE字符串进行了编码,采用不同的编码方案,所占的内存就不同,虽然JAVA把字符都当作UNICODE字符,但是编码要依赖操作系统的ANSI编码。比如中文操作系统是GBK编码,而英文是ISO8859-1,日文是JIS编码。所以当纯的占用多少内存是没有意义的。呵呵。
我不是指这个意思.
JAVA String内部用的是UTF-16编码,用char[]保存
但是一个对象占多少内存还与很多因素有关,比如String对象的大小不仅仅指它表示字符串所占空间的大小.
在C/C++中可以使用sizeof()操作符来得到一个对象的大小,但在JAVA中没有直接的方法来得到它.
这儿有篇文章介绍了如何在JAVA中实现sizeof的功能:
http://www.javaworld.com/javaworld/javaqa/2003-12/02-qa-1226-sizeof.html?page=1