繁体   English   中英

在Java中,空格和换行符是否视为字节?

[英]Are spaces and newlines considered a byte in Java?

我想编写一种方法来提取Java文件的字节数。

那么,编译器将文件的每个字符存储在一个字节的内存中,但是它是否还在一个字节的内存中存储空格\\n\\r 我应该在计算中包括它们吗?

我在任何地方都找不到具体的解释。

我在任何地方都找不到具体的解释。

请参阅Java规范

Java编程语言使用UTF-16编码以16位代码单元的顺序表示文本。

这意味着,每个单个字符(包括换行和换行符)在内存中占用16位-2个字节。

空格始终是一个字符,从\\ n和\\ r到''。 因此,它们的存储方式与字符相同。 由于它们的ASCII码都在255以下,因此我假设它们只是一个字节(据我的理解,即使是Unicode,标准的基于ASCII的字符也被表示为单个字节,因为它们的表示值很低,无法保留一个字节;但是,大于255的结果最终将是两个字节-或对于UTF-32而言更大)。

话虽如此,如果您要谈论的新行或回车是从对System.out.println()的调用中获得的,则它们根本不会被存储(或一次?),因为您正在通过以下方式调用预定义方法Java。 新行字符只需存储一次(在方法中)即可一次又一次地调用。 Java不需要存储该换行符的多个副本即可多次调用System.out.println()。

是的,它们应该包含在您的计算中-特殊字符也是字符。 此外,Java使用2个字节存储一个char :)希望这有所帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM