我想编写一个提取Java文件字节数的方法。
因此,编译器将文件的每个字符存储在一个字节的内存中,但它是否也在一个字节的内存中存储空格\n
和\r
?我应该在计算中加入它们吗?
我无法在任何地方找到具体的解释。
答案 0 :(得分:3)
我无法在任何地方找到具体的解释。
Java编程语言以16位序列表示文本 代码单元,使用UTF-16编码。
这意味着每个单个字符(包括一个新行和换行符)在内存中占用16位 - 2个字节。
答案 1 :(得分:1)
空格始终是一个字符,从\ n和\ r到''。因此它们的存储方式与字符相同。由于它们在ASCII中都低于255,我认为它们只是一个字节(我的理解是基于标准ASCII的字符表示为单个字节,即使在Unicode中也是如此,因为它们的表示值足够低以保留仅仅是一个字节;但是,任何大于255的东西最终都是两个字节 - 或者更大,对于UTF-32而言。
所有这一切,如果您正在谈论的新行或回车来自对System.out.println()的调用,那么当您调用时,它们将不会被存储(或者一次?) Java预定义的方法。新行字符只需要存储一次(在方法中)以便一次又一次地调用。 Java不需要存储该换行符的多个副本来多次调用System.out.println()。
答案 2 :(得分:1)
是的,它们应该包含在您的计算中 - 特殊字符也是字符。此外,Java使用2个字节存储char
:)希望这有帮助!