Java入门之理解Java语言

什么是Java

  • Java是一门面向对象的编程语言,吸收了c++语言中大量的优点,抛弃了c++中的垃圾回收和指针。Java也是一门平台无关的语言,一次编译,处处运行。

Java和C语言的区别

  • Java是一种跨平台的编程语言,在不同操作系统上安装对应版本的JVM就能实现一次编译,处处运行。

  • Java实现了内存自动管理,而C语言需要使用malloc和free来手动管理内存。

Java语言的特点

  • 面向对象:封装、继承、多态。

  • 平台无关性、具有很好的可移植性。

  • 支持多线程、C++要实现多线程必须调用操作系统的api来完成多线程,Java则已经封装好了多线程。

  • 支持JIT编译,也就是即时编译器(在程序运行时将字节码转换为机器码提高程序运行速度)。

JVM、JDK 和 JRE的区别

  • JVM (Java Virtual Machine - Java虚拟机):

    • JVM 是 Java 程序的运行环境。它是一个抽象的计算机,负责将 Java 字节码(.class 文件)解释成特定平台的机器码并执行。

  • JRE (Java Runtime Environment - Java运行时环境):

    • JRE 是运行 Java 应用程序所需的最小环境。它包含了 JVM 和 Java 核心类库(如 java.langjava.util 等)。

  • JDK (Java Development Kit - Java开发工具包):

    • JDK 是 Java 应用程序开发所需的工具包。它包含了 JRE,以及编译器(javac)、调试器(jdb)、文档生成工具(javadoc)等开发工具。

  • 总结 :JDK 包含了 JRE,JRE 包含了 JVM。

什么是跨平台?原理是什么

  • 跨平台就是程序在一次编译后,可以在多个操作系统上运行。

  • 原理 :JVM将Java字节码转换为特定平台的机器码并执行。

什么是字节码?采⽤字节码的好处是什么?

  • 字节码就Java程序编译后产生的.class文件。

  • Java程序从源代码到运行经过以下三步

    • 编译:将.Java编译为JVM可识别的.class字节码文件。

    • 解释:JVM执行字节码文件,将字节码翻译成操作系统可识别的机器码。

    • 执行:操作系统执行二进制的机器码。

  • 采用字节码的好处:

    • 平台无关性 / 可移植性

      • 字节码不依赖于任何特定的硬件或操作系统。只要某个平台上有对应的Java虚拟机,同一个.class文件就可以在该平台上运行,无需重新编译源代码。

    • 安全性

      • 字节码在JVM这个“沙箱”环境中执行,JVM可以在执行前对字节码进行验证,确保代码没有破坏性指令(如直接操作内存),从而提供了比直接执行本地代码更高的安全性。

    • 性能优化

      • 现代的JVM都采用了即时编译技术,JVM会监控程序的运行,将频繁执行的“热点”字节码动态编译成本地机器码,并缓存起来供后续使用。

      • JVM可以根据程序的实际运行情况(性能分析)进行更深层次的优化,这甚至比提前编译的C/C++程序在某些场景下更高效。

    • 生态与语言无关性

      • JVM是一个运行时环境,它并不关心字节码最初是由哪种语言编译而来的。因此,只要其他编程语言的编译器能生成符合规范的字节码,它们就可以在JVM上运行。

为什么Java是编译与解释并存的语言?

  • 因为 Java 程序需要先将 Java 源代码文件编译字节码文件,再解释执行字节码文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值