Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java中的默认数字系统和字符集_Java_Utf 8_Binary - Fatal编程技术网

java中的默认数字系统和字符集

java中的默认数字系统和字符集,java,utf-8,binary,Java,Utf 8,Binary,这是一个关于java如何工作的基本问题,所以我没有任何代码支持它 我是java开发新手,想知道不同的数字系统、字符集(如UTF 8和unicode)在java中是如何结合在一起的 假设用户使用相同的值创建一个新字符串和int int i=100; String S="100"; 计算机的硬件能理解零和一。所以它必须转换成二进制(如果我错了,请纠正我)。这个转换应该由JVM完成(如果我错了,请纠正我)?将不同语言的字符表示成可以输入键盘(英语)UTF-8的字符,并使用这种转换(需要更正) 现在,

这是一个关于java如何工作的基本问题,所以我没有任何代码支持它

我是java开发新手,想知道不同的数字系统、字符集(如UTF 8和unicode)在java中是如何结合在一起的

假设用户使用相同的值创建一个新字符串和int

int i=100;
String S="100";
计算机的硬件能理解零和一。所以它必须转换成二进制(如果我错了,请纠正我)。这个转换应该由JVM完成(如果我错了,请纠正我)?将不同语言的字符表示成可以输入键盘(英语)UTF-8的字符,并使用这种转换(需要更正)

现在,整个流程如何适应运行JavaWeb应用程序的大局

如何将string/int转换为二进制,以便机器硬件理解? 如何将其转换为UTF-8以便浏览器理解?
java中默认的数字格式和字符集是什么?如果我正在读取文件的内容?它们将被读入二进制还是utf-8?

所有计算机都以二进制运行。转换由JVM和您拥有的计算机完成。您不必担心将代码转换为协调的1和0。浏览器有自己的转换硬代码,可以将通用1和0(所有程序和计算机软件都使用)更改为它决定显示给定信息的方式。所有语言都只是一个翻译指南,供用户与计算机“对话”。反之亦然。希望这能有所帮助,尽管我认为我没有回答任何问题。

java如何表示内存中的任何数据类型是实际JVM的选择。实际上,JVM将选择处理器的本机格式(例如,选择little/big endian表示int),这仅仅是因为它在该平台上提供了最佳性能

基本上,JLS提供了某些保证(比如一个字节有8位,值的范围从-128到127)——VM只是将其映射到它认为合适的平台上(JLS被指定为与通用计算技术紧密匹配,因此通常不需要猜测基元类型如何映射到平台)

您永远不应该关心VM如何表示内存中的数据,java不提供任何合法的方式来以您需要知道的方式访问数据(使用sun.misc.Unsafe绕过VM的大部分逻辑是不合法的)。 如果出于教育目的,请了解底层平台(如x86)使用的二进制表示形式,并查看VM。实际上,它与java几乎没有什么关系,java完全是VM和特定于平台的

对于java.lang.String,它是定义字符串如何在内部存储的类的实现—它在主要java版本中经历了相当多的更改—但该字符串公开的内容定义非常狭窄(参见JDK javadoc中的String.length()、String.charAt()

至于如何将用户输入转换为java标准类型,这实际上是特定于平台的。JVM选择默认编码(例如,String.toBytes()可以为相同的字符串返回完全不同的结果,这取决于平台-这就是为什么建议明确指定所需的编码)。许多其他事情(时区、数字格式等)也是如此


字符集和格式是程序连接起来的构建块,用于将外部世界的数据(文件、http或用户输入)转换为数据的Java表示(反之亦然)。例如,Web应用程序将使用HTTP头的编码来确定在解释内容时要使用的字符集(HTTP头编码由规范定义为US-ASCII)。

ur right。。你又问了一遍这个问题,听起来不像是一个问题。如果我在网页上输入我的用户名和密码,我会非常感激。。它最终转换为二进制并以字符串形式返回。这里有三个角色在执行翻译硬件,jvm,浏览器,谁在转换中做什么?啊,我现在理解了这个问题。因此,如果您愿意,浏览器只是一个数据“总线”。JVM要与之通信的主机。用户输入被直接发送到JVM中的计算机。Java将读取用户输入int i=0;它被编码成不同的标准-->>jvm将把它映射到32位/4字节的内存-->>平台/操作系统将以底层X86/X64处理器能够理解的方式将它转换成二进制文件??我说得对吗?