java—jvm如何将内容打印到屏幕上?

3duebb1j  于 2021-06-27  发布在  Java
关注(0)|答案(1)|浏览(456)

所以我一直在研究java字节码,到目前为止,看到jvm是如何工作的非常有趣。但有件事让我困惑。
例如,如果jvm想做任何类型的计算,它就使用寄存器来推/弹出内部堆栈(我知道,过于简单化了)。
但是假设jvm想要计算这行的字节码版本: System.out.println("Hello"); 在字节码的助记符版本中,我可以看到它在java.lang包中搜索系统类并调用该方法,但这对jvm实际意味着什么?
一旦jvm读取指令并知道必须打印某些内容,它是否会生成一个控制台窗口?或者jvm只能从控制台执行这种类型的指令吗(所以像这样,你需要使用 java 工具)
谢谢您!

6ljaweal

6ljaweal1#

任何文字 System.out 发送到运行jvm的操作系统进程的标准输出流。
然后操作系统决定这意味着什么,这通常意味着将文本打印到控制台(如果有)。
如果标准输出被重定向到文件(例如使用 > shell中的语法。或者,如果标准输出是通过管道传输的,也可能意味着将文本发送到另一个进程,例如使用 | shell中的语法。
jvm从不“知道”它必须打印一些东西。方法名为 print 作为一种方便,程序员出于历史原因,但真的没有什么不同 write .

相关问题