奇思妙想

2024年 3月 28日

什么是HotSpot编译器?

Java语言最早设计初衷是将源代码编译成字节码,解释执行。这一定比编译型语言要慢,后来一些聪明人发现解释器执行的很多字节码其实是重复的,可以试图找到最经常解释执行的并暂时保存成机器码,多次的执行就很高...

进一步了解
2024年 3月 28日

什么是中间代码?

通俗的解释,为了让所有编程语言统一,可以让任何编程语言先编译成一样格式的中间代码,用解释器执行中间代码就可以达到让所有编程语言都可以用解释器执行。甚至可以让C/C++/Python/Java都用一套J...

进一步了解
2024年 3月 28日

JVM是用什么语言编写的?

JVM是Java虚拟机,当然不能用Java语言编写,如果这样,写好的字节码又得需要JVM运行,这就不行了。编译型语言是做解释器很好的选择。目前主流的JVM是采用C++编写。 OpenJDK JDK8

进一步了解
2024年 3月 28日

JVM不是跨平台的?

Java语言是跨平台的语言,因为同一份代码,可由不同平台javac编译通过并运行。但JVM不是跨平台的,不同平台都有一份JVM,包括javac也不是跨平台的,毕竟Windows下运行的JVM一定是ex...

进一步了解
2024年 3月 28日

J#和J++傻傻分不清?

J#是微软意识到J++无法继续发展的产物,目的可以将Java代码编译成微软中间语言MSIL,并不能编译成Java字节码。J#的目的为了将之前J++代码能很好地切换到Windows .NET平台。不过,...

进一步了解
2024年 3月 28日

J++语言的由来?

为了对抗Java, 微软公司开发了Visual J++, 和Java是基本完全一样的语法,而且性能还好,厉不厉害? 在Visual Studio 6.0中有包含。它是用的微软自己开发的Java虚拟机,...

进一步了解
2024年 3月 27日

C#的起源

C#读音是C Sharp, 它是微软为了对抗Java而生,最早是J++,效率比Java还好,后来被Sun公司起诉J++破坏了平台无关性,微软重新开发C#. C#和Java一样都定位为中间件语言,用虚拟...

进一步了解
2024年 3月 27日

浮点数的精确性差?

浮点数的表达方式利用整数位和小数位计算的2n数值(n可正可负)计算,必然出现不准确。1.5可精确表示,0.3却无法精确表示。有的书籍上提到,浮点数不要用==或!=判断,其实是考虑有不精确表达的可能。在...

进一步了解