java基础之java跨平台的原理
JDK、JRE、JVM之间的区别

- 1.JDK(JavaSE Development Kit),java标准开发包,它提供了编译、运行java程序所需要的各种工具和资源,包括JAVA编译器、java运行时环境、以及常用的java类库等。
- 2.JRE(Java Runtime Environment),java运行环境,用于运行java的字节码文件。JRE中包含了JVM以及JVM工作时需要的类库,普通的用户只需要安装JRE来运行java程序,而程序开发者必须安装JDK来编译、调试程序。
- 3.JVM(Java Virtual Mechinal),java虚拟机,是JRE的一部分,它是整个java实现跨平台的最核心的部分,负责运行字节码文件。
什么是字节码?
编译器将java源文件编译为字节码文件,可以做到一次编译到处运行,windows上编译好的class文件,可以直接在linux上执行,通过这种方式做到了跨平台,不过java的跨平台有一个前提条件,就是不同的操作系统上安装的JDK或者JRE不一样,虽然字节码是通用的,但是需要把字节码解释成各个操作系统的机器码是需要不同的解释器的,所以针对各个操作系统需要有各自的JDK或者JRE
采用字节码的好处是什么?
一方面可以实现跨平台,另一方面也提高了代码的可执行性,编译器在编译源代码的时候可以做一些编译期的优化,比如锁消除、标量替换、方法内联等。
demo代码
/*
注意事项:
1.class后面的类名要和我们的文件名一致
2.编写程序的所有标点符号都要是英文的
3.不要将main方法写成mian方法
4.main方法小括号中的String首字母大写
*/
//就是一个类名
public class Demo01HelloWorld{
/*
main方法是程序的入口,程序运行从main方法开始进入
*/
public static void main(String[] args){
//就是一个输出语句(打印语句),小括号中的写什么内容就会输出什么内容
System.out.println("哥是世界上第一帅的人~~~");
}
}
将上面的代码编译成可执行的字节码文件。需要经过以下几个步骤:

1.修改文件名称为.java结尾。
2.在当前文件的路径下通过cmd打开黑窗口
3. Javac helloworld.java ----》在当前路径下生成.class文件
4.运行.class文件 java helloworld
详细请参考使用黑窗口运行java程序
开发代码时,代码运行流程
1.使用txt写代码
2.使用jdk中的编译器javac编译为字节码
3.使用java.exe动态调用jvm将字节码解释为机器指令,进而使用jvm进行运行字节码文件一行行的解释称为当前操作系统认识的可执行文件的格式。所以java也是一种解释性语言。
4.不同的操作系统,机器指令不一样,所以不同的操作系统上的jvm也是不一样的。jvm类似于翻译官。
这也就解释了java可以做到‘一次编译,处处运行’。
java跨平台的原理

C语言的跨平台原理

c和java跨平台的区别?
- 1.java的字节码文件是跟平台无关的。拿着这个字节码文件在不同的平台上运行。
- 2.c语言不同的平台由不通的编译器,编译器与平台相关,编译后的可执行文件也跟平台有关。
c语言是不是跨平台的?
实际上我们所说的跨平台是,编译后的文件是否可以跨平台执行,从这个角度来说,c语言不是跨平台的。
c语言效率高还是java语言的效率高?
c语言的效率高,因为它产生的可执行文件可以直接在平台上执行。
本文来自博客园,作者:King-DA,转载请注明原文链接:https://www.cnblogs.com/qingmuchuanqi48/articles/16496392.html

浙公网安备 33010602011771号