一.java的平台无关性

1.关于平台
平台=操作系统+cpu
用不同的语言编写好的程序经过编译链接后生成了可执行文件,平台来识别可执行文件完成运行
!!不同的平台可识别的机器指令不同!!
2.为什么说是与平台无关
①c++:针对不同的平台!!针对平台编译链接生成不同的机器指令(源代码—针对平台—>机器码)
②java:编译器不针对平台进行编译!!是针对虚拟机编译生成字节码,然后虚拟机(解释器起作用)再根据不同的平台生成不同的机器代码(源代码—针对虚拟机—>字节码—虚拟机—>机器代码)

所以说,java是与平台无关的他的虚拟机会依附平台生成不一样的机器指令大家就都可以用了

二.JDK,JRE,JVM,Eclipse

jdk:开发环境
jre:运行环境;
jvm:虚拟机(含有解释器,与解释器相互作用)

1.三者作用:
①jvm:将字节码根据不同的平台转化为不同机器码
jvm中有解释器,jvm操作着java解释器解释.class文件。
运行程序:通知操作系统运行程序,解释器解释一句,立刻执行一句。

②jre:运行java程序(以编译生成了.class文件)

③jdk:包含jre,含有javac.exe(编译器),用来生成.class文件,再用jre运行程序。

2.三者关系:
jre包含在jdk中,jdk=jre+编译器+调试器
jvm包含在jre中
jvm->jre->jdk
如果只是运行程序,只需要下载jre即可;还要编写程序就要下载jdk.

3.Elipse
我们可以在记事本上直接编写源代码,然后用javac.exe编译生成.class文件
Elipse相当于一个超级记事本,有很多附加功能,可以检查你写的代码是否正确。如果在记事本上写java源代码,需要自己手动调用编译器,而这个超级记事本可以自动调用编译器生成.class文件。

如果下载的Elipse不自带jdk,需要下载jdk才能使用,毕竟Elipse说白了只是用来编写代码,再检查一下写的代码是否有错误,编译运行还是要靠jdk的。