Java基础概念知识(一)

文摘   2024-11-15 16:33   山东  

Java是一种广泛使用的编程语言,以其“一次编写,到处运行”的特性而闻名。下图是TIOBE 11 月编程语言榜TOP20,Java仍稳居前3。

本文将介绍Java的一些基本概念与常识,帮助你建立起对Java的初步认知。让我们开始这段精彩的Java学习之旅吧!

Java的诞生


01
Java的历史
Java的名称来源于印度尼西亚的爪哇岛,据说是因为开发团队喜欢喝咖啡,于是选择了这个名字。Java是由Sun Microsystems公司(现已被Oracle公司收购)于1995年正式发布的。Java的创始人是詹姆斯·高斯林(James Gosling),他在Sun Microsystems工作期间领导了Java的研发工作。最初,Java的设计目标是为了家用电器设备的嵌入式系统,但是随着互联网的迅猛发展,Java 在企业级应用开发方面的优势愈发凸显。

Java语言特性


01
简单性
Java的设计非常注重简单性,去除了C++中的一些复杂特性,如指针和多重继承。这使得Java更加易于学习和使用。例如,Java没有指针,因此不会出现指针相关的错误,如野指针和内存泄漏。此外,Java的语法也非常简洁明了,易于理解。
02
跨平台性
Java的跨平台性是其最大的特点之一。通过Java虚拟机(JVM),Java程序可以在任何支持JVM的操作系统上运行,无需重新编译。这意味着你可以在Windows上编写Java程序,然后在Linux或Mac OS上运行,而不需要做任何修改。这种跨平台性使得Java成为了开发跨平台应用的理想选择。
03
面向对象
Java是一种纯面向对象的语言,支持封装、继承和多态。面向对象编程使得代码更加模块化,易于维护和扩展。例如,你可以创建一个类,然后通过继承其父类,共享父类的属性和方法。这样,子类不仅可以继承到父类的所有功能,并且还可以添加自己特有的功能。
04
自动内存管理
Java通过垃圾回收机制自动管理内存,减少了内存泄漏的风险。程序员不需要手动释放内存,这大大简化了内存管理的工作。例如,当你创建一个对象并分配内存时,Java会自动跟踪该对象的生命周期。当对象不再被引用时,垃圾回收器会自动回收其占用的内存,从而防止内存泄漏。
05
丰富的类库
Java提供了大量的内置类库,涵盖了从网络编程到图形界面的各种功能。这些类库使得开发变得更加高效和便捷。例如,java.net包提供了网络编程的功能,java.io包提供了文件I/O操作的功能,java.awt和javax.swing包提供了图形界面开发的功能。通过这些类库,你可以轻松地实现复杂的任务,而不需要从头开始编写代码。
06
安全性
Java具有严格的安全模型,确保了程序的安全性。Java沙箱(Sandbox)机制限制了程序的权限,防止恶意代码的执行。例如,Java Applets在浏览器中运行时,只能访问有限的资源,不能随意访问文件系统。此外,Java还提供了数字签名、证书等安全机制,确保了程序的完整性和真实性。

Java SE、EE、ME的区别与联系


01
Java SE (Standard Edition)
Java SE 是Java的标准版,它是Java平台的基础。Java SE 包含了核心的Java类库和Java虚拟机(JVM),适用于桌面应用和简单的服务器应用。它是学习Java的基础,也是Java EE和Java ME的基础。
应用场景:桌面应用、简单的服务器应用、命令行工具等。
核心库:java.lang、java.util、java.io、java.nio、java.awt、javax.swing等。
02
Java EE (Enterprise Edition)
Java EE 是在Java SE的基础上构建的,它依赖于Java SE的核心库和JVM。Java EE 是Java的企业版,提供了额外的企业级服务和框架,使得开发者可以更方便地构建大规模的企业级应用。Java EE 提供了诸如Servlet、JSP、EJB、JMS、JPA等组件,用于构建复杂的分布式系统、Web应用和服务。
应用场景:大型企业级应用、Web应用、分布式系统、事务处理等。

核心库:javax.servlet、javax.ejb、javax.jms、javax.persistence、javax.transaction等。

03
Java ME (Micro Edition)
Java ME 是Java的微型版,它也同样基于Java SE的核心库但它去除了许多不必要的功能,针对资源受限的设备进行了优化。Java ME 提供了轻量级的类库和JVM,适用于嵌入式设备和移动设备。
应用场景:嵌入式设备、移动设备、物联网设备等。

核心库:javax.microedition、javax.microedition.lcdui、javax.microedition.midlet等。

JDK与JRE


01
JDK (Java Development Kit)
JDK 是Java开发工具包,包含了JRE(Java Runtime Environment)以及开发工具(如编译器、调试器等)。JDK主要用于开发Java应用程序。
  • 主要组成:
    • JRE:Java运行时环境,包含了JVM和Java类库。
    • 编译器(javac):将Java源代码编译成字节码。
    • 调试器(jdb):用于调试Java程序。
    • 打包工具(jar):用于打包Java类文件和资源文件。
    • 文档生成工具(javadoc):生成API文档。
  • 使用场景:开发人员编写、编译和调试Java代码时使用JDK。例如,当你编写一个Java程序并需要编译和运行时,就需要使用JDK。

02
JRE (Java Runtime Environment)
JRE 是Java运行时环境,包含了JVM和Java类库。JRE主要用于运行Java应用程序,而不包含开发工具。
  • 主要组成:

    • JVM:Java虚拟机,负责解释和执行Java字节码。

    • Java类库:提供了大量的内置类库,支持各种功能。

  • 使用场景:普通用户在计算机上运行Java应用程序时只需要JRE。例如,当你从互联网上下载一个Java游戏并希望在你的电脑上运行时,只需要安装JRE即可。

JVM的简单介绍


01
JVM是什么

JVM(Java Virtual Machine)是Java虚拟机,负责解释和执行Java字节码。JVM是Java跨平台特性的核心组件。JVM的存在使得Java程序可以在不同的操作系统上运行,而不需要重新编译。

02
JVM的主要功能
  • 解释执行:JVM将字节码解释成机器码并执行。JVM会在运行时动态地将字节码转换成特定平台的机器码,从而实现跨平台运行。

  • 垃圾回收:JVM自动管理内存,通过垃圾回收机制回收不再使用的内存空间。垃圾回收器会自动跟踪对象的生命周期,并在对象不再被引用时回收其占用的内存。

  • 安全管理:JVM提供了安全机制,限制了程序的权限,防止恶意代码的执行。例如,Java沙箱机制限制了Applets的权限,防止其访问敏感资源。

03
不同平台的JVM

不同操作系统的JVM实现略有不同,但都遵循相同的规范。(比如我们平时接触最多的HotSpot VM就是JVM规范的一种实现而已)这意味着Java程序可以在不同的操作系统上运行,而无需重新编译。例如,Windows上的JVM和Linux上的JVM虽然实现细节可能有所不同,但都支持相同的字节码格式和Java规范。

“一次编写,到处运行”

“一次编写,到处运行” 是Java的一个核心理念,意味着编写一次Java代码,就可以在任何支持Java的平台上运行,无需重新编译。这意味着你可以在Windows上编写Java程序,然后在Linux或Mac OS上运行,而不需要做任何修改。

  • 编译阶段:Java源代码(.java文件)通过Java编译器(javac)编译成字节码(.class文件)。字节码是一种中间代码,不是特定于任何操作系统的机器码。例如,你编写了一个简单的Java程序HelloWorld.java,通过javac HelloWorld.java命令编译成HelloWorld.class。

  • 运行阶段:字节码由Java虚拟机(JVM)解释执行。JVM会将字节码转换成特定平台的机器码,从而实现在不同操作系统上的运行。例如,你可以在Windows上通过java HelloWorld命令运行编译后的HelloWorld.class,然后在Linux或Mac OS上同样通过java HelloWorld命令运行,而不需要重新编译。

结语

希望通过这篇文章能为你提供一个清晰的知识脉络,帮助你快速建立起对Java的初步认知。如果你有任何疑问或需要进一步的帮助,请在评论区留言。让我们共同努力,开启Java编程的精彩旅程!

【Java驿站】持续给大家更新

扫描下方二维码

关注【Java驿站】公众号

👇👇👇

关注“Java驿站”

Java驿站
这里是【Java驿站】,一个Java编程学习与交流平台。
 最新文章