Java基础知识讲解(持续更新)

Java虚拟机以及跨平台原理

Java具有跨平台的特性,可以“一次编译,到处执行“,在windows下编写的程序可以无需任何修改,就可以在linux下运行。
那么,跨平台是怎么实现的呢,这就要说到java虚拟机(Java Virtual Machine,简称JVM)。
JVM也是一个软件,不同平台有不同的版本。我们编写的Java源码,编译后会生成一种.class文件,称为字节码文件。Java虚拟机就是将字节码文件翻译成特定平台下的机器码,然后运行。也就是说只要在不同平台上安装对应的JVM,就可以运行字节码文件,运行我们编写的Java程序。

注意:
    1、编译的结果不是生成机器码,而是生成字节码,字节码不能直接运行,需要通过JVM翻译成机器码才能运行。不同平台下编译生成的字节码是一样的,但是由JVM翻译生成的机器码是不一样的。
    2、跨平台的是Java程序,不是JVM。JVM是用C/C++开发的,是编译后的机器码,不能跨平台,不同平台需要安装不同版本的JVm。

下图是JVM跨平台实现的说明:

JVM实现跨平台

Java数据类型

Java是一种强类型的语言,声明变量时必须指明变量类型。Java共有8中数据类型:4种整型、2种浮点型、1种字符型,1种布尔型。

先了解下下面两个概念:

1bit 位:位是计算机中存储数据的最小单位,指二进制数中的一个位数,其值为“0”或“1”。
2、byte 字节:字节是计算机存储容量的基本单位,一个字节由8位二进制数组成。在计算机内部,一个字节可以表示一个数据,也可以表示一个英文字母,两个字节可以表示一个汉字。
1B=8bit 
数据类型 说明 所占内存 举例 备注
byte 字节型 1 byte 121
short 短整型 2 bytes 3, 32767
int 整型 4 bytes 3, 21474836
long 长整型 8 bytes 3L, 92233720368L long最后要有一个L字母(大小写无所谓)
float 单精度浮点型 4 bytes 1.2F, 223.56F float最后要有一个F字母(大小写无所谓)
double 双精度浮点型 8 bytes 1.2, 1.2D, 223.56, 223.56D double最后最好有一个D字母(大小写无所谓),浮点型默认数据类型即double
char 字符型 2 bytes ‘a’, ‘A’ 字符型数据只能是一个字符,由单引号包围。
boolean 布尔型 1 bit true, false

在Java中,整型数据的长度与平台无关,这就解决了软件从一个平台移植到另一个平台时给程序员带来的诸多问题。与此相反,C/C++ 整型数据的长度是与平台相关的,程序员需要针对不同平台选择合适的整型,这就可能导致在64位系统上稳定运行的程序在32位系统上发生整型溢出。
参考

猜你喜欢

转载自blog.csdn.net/LYmahang123/article/details/71083552