【Java探索之旅】我与Java的初相识(二):程序结构与运行关系和JDK,JRE,JVM的关系

🎥 屿小夏 : 个人主页 🔥个人专栏 : Java入门到精通 🌄 莫道桑榆晚,为霞尚满天!

文章目录

  • 📑前言
  • [一. 第一个Java程序](#一. 第一个Java程序)
    • [1.1 main方法](#1.1 main方法)
    • [1.2 Java的程序结构](#1.2 Java的程序结构)
  • [二. Java程序的运行](#二. Java程序的运行)
  • [三. JDK、JRE、JVM之间的关系](#三. JDK、JRE、JVM之间的关系)
  • [四. 全篇总结](#四. 全篇总结)

📑前言

Java作为一门广泛应用的编程语言,其结构和运行环境对于初学者来说可能会带来一些困惑。本文旨在帮助初学者了解Java程序的基本结构以及可能遇到的一些常见问题,同时解释了JDK、JRE和JVM之间的关系。通过本文,读者将能够更好地理解Java程序的组成和运行机制,以及如何避免一些常见的编写和运行错误。

一. 第一个Java程序

1.1 main方法

java 复制代码
public class test1 {
    public static void main(String[] args) {
        System.out.println("hello world");
    }
}

如上展示的就是最简单的一个Java程序,可能初学者看到这后一头雾水。

可以说,Java的main方法应该是当前主流编程语言中最"长"的。通过上述代码,我们可以看到一个完整的Java程序的结构。

1.2 Java的程序结构

Java程序的结构由如下三个部分组成:

  1. 源文件(扩展名为*.java):源文件带有类的定义。类用来表示程序的一个组件,小程序或许只会有一个类。类的内容必须包含在花括号里面。
  2. 类:类中带有一个或多个方法。方法必须在类的内部声明。
  3. 方法:在方法的花括号中编写方法应该执行的语句。

**总结:**类存在于源文件里面;方法存在于类中;语句存在于方法中。

**注意:**在一个源文件中只能有一个public修饰的类,而且源文件名字必须与public修饰的类名字相同。

二. Java程序的运行

Java是一门半编译型、半解释型语言。先通过javac编译程序把源文件进行编译,编译后生成的.class文件是由字节码组成的平台无关、面向JVM的文件。最后启动java虚拟机来运行.class文件,此时JVM会将字节码转换成平台能够理解的形式来运行。


以下是当我们可能遇到的问题

编写和运行第一个Java程序时,可能会遇到的一些错误:

  1. 源文件名后缀不是.java
  2. 类名与文件名不一致
  3. main方法名字写错:mian
  4. 类没有使用public修饰
  5. 方法中语句没有以分号结尾
  6. 中文格式的分号
  7. JDK环境没有配置好,操作系统不能识别javac或者java命令

三. JDK、JRE、JVM之间的关系

想要java运行起来这三样是不可少的!

  • JDK(Java Development Kit):Java开发工具包,提供给Java程序员使用,包含了JRE,同时还包含了编译器javac与自带的调试工具Jconsole、jstack等。

  • JRE(Java Runtime Environment):Java运行时环境,包含了JVM,Java基础类库。是使用Java语言编写程序运行的所需环境。

  • JVM:Java虚拟机,运行Java代码

四. 全篇总结

本文首先介绍了Java程序的基本结构,包括源文件、类和方法的关系,以及一些常见的编写错误。随后,针对初学者可能遇到的问题,列举了一些常见的错误类型并提供了相应的解决方案。最后,通过解释JDK、JRE和JVM之间的关系,强调了这三者在Java程序运行中的重要性,为读者提供了更深入的理解。通过本文的阐述,读者可以更好地掌握Java程序的基本结构和运行机制,同时避免一些常见的编写和运行错误,为日后的学习和实践打下坚实的基础。

相关推荐
.ZGR.3 分钟前
认识数据结构:图——无人机防空平台的“衍生品”
java·开发语言·数据结构
huidu0110 分钟前
基于AQS实现的ReentrantLock
java
波波00712 分钟前
Native AOT 能改变什么?.NET 预编译技术深度剖析
开发语言·.net
wkm95616 分钟前
在arm64 ubuntu系统安装Qt后编译时找不到Qt3DExtras头文件
开发语言·arm开发·qt
冰敷逆向24 分钟前
京东h5st纯算分析
java·前端·javascript·爬虫·安全·web
naruto_lnq27 分钟前
如何为开源Python项目做贡献?
jvm·数据库·python
晚风吹长发28 分钟前
初步了解Linux中的线程同步问题及线程安全和死锁与生产消费者模型
linux·运维·服务器·开发语言·数据结构·安全
学嵌入式的小杨同学31 分钟前
【Linux 封神之路】进程进阶实战:fork/vfork/exec 函数族 + 作业实现(含僵尸进程解决方案)
linux·开发语言·vscode·嵌入式硬件·vim·软件工程·ux
fengfuyao98540 分钟前
基于MATLAB/Simulink的车辆自适应巡航控制(ACC)实现
开发语言·matlab