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

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

文章目录

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

在这里插入图片描述

📑前言

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

一. 第一个Java程序

1.1 main方法

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

image-20231206180543902

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

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

1.2 Java的程序结构

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

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

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

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

二. Java程序的运行

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

image-20231206181000772

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

编写和运行第一个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代码

image-20231206181520259

四. 全篇总结

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

Java文末图

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/237707.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【YOLOV8追踪篇】使用Ultralytics YOLO进行物体追踪

YOLOV8追踪 目录 一 使用已训练的检测模型进行追踪 二 其他 视频分析领域的物体追踪是一项关键的任务,既能够标识出帧内物体的位置和类别,还能在视频进行的过程中为每个检测到的物体保持一个唯一的ID(追踪)。 Ultralytics YOLOv8相关介绍:

Achronix提供由FPGA赋能的智能网卡(SmartNIC)解决方案来打破智能网络性能极限

作者:Achronix 随着人工智能/机器学习(AI/ML)和其他复杂的、以数据为中心的工作负载被广泛部署,市场对高性能计算的需求持续飙升,对高性能网络的需求也呈指数级增长。高性能计算曾经是超级计算机这样一个孤立的领域&a…

20 Vue3中使用v-for遍历普通数组

概述 使用v-for遍历普通数组在真实开发中还是比较常见的。 基本用法 我们创建src/components/Demo20.vue&#xff0c;代码如下&#xff1a; <script setup> const tags ["JavaScript", "Vue3", "前端"] </script> <template…

301_C++_字符串解析函数‘strcasestr‘

if ((pctmpA = strcasestr(const_cast<char *>(pcMsg), "MotionAlarm"))&& (pctmpA =

(1)(1.10) SiK Radio v1

文章目录 前言 1 概述 2 连接无线电台 3 参数说明 前言 本文介绍了如何将 3DR Radio v1 连接到飞行控制器。你还应阅读 SiK Radio v2&#xff0c;其中包含更详细的用户指南和功能列表。 1 概述 3DR 无线电设备是在自动驾驶仪和地面站之间建立遥测连接的最简单方法。 3DR…

uniapp怎么跳转页面

在 UniApp 中&#xff0c;你可以使用以下方法来跳转到其他页面&#xff1a; 使用<navigator>标签&#xff1a; <navigator url"/pages/example/example">点击跳转</navigator> 在上面的示例中&#xff0c;点击"点击跳转"会导航到/pag…

Redis高可用性方案:主从复制与哨兵机制详解

大家好&#xff0c;我是升仔 在高可用性数据服务的构建中&#xff0c;Redis扮演着重要的角色。Redis的主从复制和哨兵机制是实现高可用性的关键组件。本文将详细探讨这两种机制的使用场景、配置细节&#xff08;尤其是持久化配置&#xff09;&#xff0c;并讨论相应的异常处理…

常见加解密算法分析(含使用场景)

加密算法主要分为三类&#xff1a;对称加密算法、非对称加密算法和散列算法。下面将分别介绍这些类别中的常见算法及其特点和使用场景。 对称加密算法 1. AES (Advanced Encryption Standard) AES是一种广泛使用的对称加密标准&#xff0c;可以使用128、192和256位的密钥长度…

如何在Android Framework源码中增加jni方法

我们都知道&#xff0c;在Android Framework源码中&#xff0c;有很多这种类型的方法&#xff0c;方法前缀有"public static native",这种方法就是native方法&#xff0c;会调用到jni中去。 如&#xff1a;public static native long getNativeHeapSize(); 那如何在…

Golang实践录:gin绑定解析json的两种方法

本文介绍 Golang 的 gin 框架接收json数据并解析的2种方法。 起因及排查 某微服务工程&#xff0c;最近测试发现请求超时&#xff0c;由于特殊原因超时较短&#xff0c;如果请求处理耗时超过1秒则认为失败。排查发现&#xff0c;可能是gin接收解析json数据存在耗时&#xff0c…

大数据---34.HBase数据结构

一、HBase简介 HBase是一个开源的、分布式的、版本化的NoSQL数据库&#xff08;即非关系型数据库&#xff09;&#xff0c;依托Hadoop分布式文件系统HDFS提供分布式数据存储&#xff0c;利用MapReduce来处理海量数据&#xff0c;用Zookeeper作为其分布式协同服务&#xff0c;一…

逆波兰计算器的完整代码

前置知识&#xff1a; 将中缀表达式转为List方法&#xff1a; //将一个中缀表达式转成中缀表达式的List//即&#xff1a;(3042)*5-6 》[(, 30, , 42, ), *, 5, -, 6]public static List<String> toIndixExpressionList(String s) {//定义一个List&#xff0c;存放中缀表达…

R语言——基本操作(二)

目录 一、矩阵与数组 二、列表 三、数据框 四、因子 五、缺失数据 六、字符串 七、日期和时间 参考 一、矩阵与数组 matrix&#xff1a;创建矩阵&#xff0c;nrow 和 ncol 可以省略&#xff0c;但其值必须满足分配条件&#xff0c;否则会报错 只写一个值则自动分配&…

5. 创建型模式 - 单例模式

亦称&#xff1a; 单件模式、Singleton 意图 单例模式是一种创建型设计模式&#xff0c; 让你能够保证一个类只有一个实例&#xff0c; 并提供一个访问该实例的全局节点。 问题 单例模式同时解决了两个问题&#xff0c; 所以违反了单一职责原则&#xff1a; 保证一个类只有一…

人工智能在现代科技中的应用和未来发展趋势。

&#x1f431; 个人主页&#xff1a;SHOW科技&#xff0c;公众号&#xff1a;SHOW科技 &#x1f64b;‍♂️ 作者简介&#xff1a;2020参加工作&#xff0c;专注于前端各领域技术&#xff0c;共同学习共同进步&#xff0c;一起加油呀&#xff01; &#x1f4ab;优质专栏&#x…

xtu oj 1394 单调

单调 题目描述 n∑ki0ai⋅bi,b≥2&#xff0c;如果i>0时&#xff0c;ai>ai−1&#xff0c;那么我们称这个数n是在b进制下是单调的。比如6,在3进制下为20(3)&#xff0c;所以6在3进制下是单调的。现在已知n&#xff0c;求最小的基b&#xff0c;使得n是单调的。 输入 第一…

谷歌Gemini造假始末

&#x1f4a1;大家好&#xff0c;我是可夫小子&#xff0c;《小白玩转ChatGPT》专栏作者&#xff0c;关注AIGC、读书和自媒体。 在过去一年中&#xff0c;OpenAI ChatGPT引发了一股AI新浪潮&#xff0c;而谷歌则一直处于被压制的状态&#xff0c;迫切需要一款现象级的AI产品来…

计算机网络:应用层

0 本节主要内容 问题描述 解决思路 1 问题描述 不同的网络服务&#xff1a; DNS&#xff1a;用来把人们使用的机器名字&#xff08;域名&#xff09;转换为 IP 地址&#xff1b;DHCP&#xff1a;允许一台计算机加入网络和获取 IP 地址&#xff0c;而不用手工配置&#xff1…

MySQL中MVCC的流程

参考文章一 参考文章二 当谈到数据库的并发控制时&#xff0c;多版本并发控制&#xff08;MVCC&#xff09;是一个重要的概念。MVCC 是一种用于实现数据库事务隔离性的技术&#xff0c;常见于像 PostgreSQL 和 Oracle 这样的数据库系统中。 MVCC 的核心思想是为每个数据行维护…

kali-钓鱼网站远程代码漏洞分析

文章目录 一、靶场搭建二、开始信息收集&#xff0c;寻找漏洞三、使用蚁剑连接后门程序四、使用webshell查看数据库信息五、进入网站后台 实验环境 Kali CentOs 一、靶场搭建 CentOsIP地址192.168.64.159 #关闭centos防火墙 [rootlocalhost ~]# systemctl disable --now fi…