当前位置: 首页 > news >正文

Java编程规范(命名规则),Java程序的运行过程(执行流程)分析

编程规范是对编程的一种约定,主要作用是增强代码的可读性和可维护性,便于代码重用。

首先要求程序中的各个要素都遵守命名规则,然后在编码中严格按照编码格式编写代码。命名规则包括以下几点。

  • 包的名称由一个小写字母序列组成。
  • 类的名称由大写字母开头,其他字母都由小写的单词组成。
  • 类的实例的名称由一个小写字母开头,后面的单词由大写字母开头。
  • 常量的名称都大写,并且指出完整含义。
  • 参数的名称无其他具体规定。
  • 数组的命名使用“类型[] 数组名”的形式。


另外,编码格式规定如下。

  • 程序最开始编写导入包和类语句,即 import 语句。import 语句可以有多行,编写完 import 语句后空一行。
  • 定义 public 类,顶格书写。类的主体左括号“{”不换行书写,右括号“}”顶格书写。
  • 定义 public 类中的变量,缩进书写。
  • 定义方法用缩进书写,方法的左括号“{”不换行书写,右括号“}”和方法首行第一个字符对齐。方法体要再次缩进书写,最后一个变量定义和第一个方法定义之间、方法和方法之间最好空一行。


提示:在单一的语句后有“;”,在一对括号“{}“之外无“;”。方法调用名和紧跟在其后的左括号“(”无空格,该左括号和其后的标识符之间无空格。多个参数之间的逗号和前一个参数紧靠,与后一个参数空一格。

万事知其然,要知其所以然,所以本节带大家来详细了解一下 java 程序的执行过程。

Java 程序的运行必须经过编写、编译和运行 3 个步骤。

  1. 编写:是指在 Java 开发环境中进行程序代码的输入,最终形成后缀名为 .java 的 Java 源文件。
  2. 编译:是指使用 Java 编译器对源文件进行错误排査的过程,编译后将生成后缀名为 .class 的字节码文件,不像C语言那样生成可执行文件。
  3. 运行:是指使用 Java 解释器将字节码文件翻译成机器代码,执行并显示结果。


Java 程序运行流程如图 1 所示。
 

Java程序运行流程


图 1  Java程序运行流程


字节码文件是一种和任何具体机器环境及操作系统环境无关的中间代码。它是一种二进制文件,是 Java 源文件由 Java 编译器编译后生成的目标代码文件。编程人员和计算机都无法直接读懂字节码文件,它必须由专用的 Java 解释器来解释执行,因此 Java 是一种在编译基础上进行解释运行的语言。

Java 解释器负责将字节码文件翻译成具体硬件环境和操作系统平台下的机器代码,以便执行。因此 Java 程序不能直接运行在现有的操作系统平台上,它必须运行在被称为 Java 虚拟机的软件平台之上。

Java 虚拟机(JVM)是运行 Java 程序的软件环境,Java 解释器是 Java 虚拟机的一部分。在运行 Java 程序时,首先会启动 JVM,然后由它来负责解释执行 Java 的字节码程序,并且 Java 字节码程序只能运行于 JVM 之上。这样利用 JVM 就可以把 Java 字节码程序和具体的硬件平台以及操作系统环境分隔开来,只要在不同的计算机上安装了针对特定平台的 JVM,Java 程序就可以运行,而不用考虑当前具体的硬件平台及操作系统环境,也不用考虑字节码文件是在何种平台上生成的。

JVM 把这种不同软、硬件平台的具体差别隐藏起来,从而实现了真正的二进制代码级的跨平台移植。JVM 是 Java 平台架构的基础,Java 的跨平台特性正是通过在 JVM 中运行 Java 程序实现的。Java 的这种运行机制可以通过图 2 来说明。
 

JVM工作方式


图 2  JVM工作方式


Java 语言这种“一次编写,到处运行”的方式,有效地解决了目前大多数高级程序设计语言需要针对不同系统来编译产生不同机器代码的问题,即硬件环境和操作平台的异构问题,大大降低了程序开发、维护和管理的开销。

提示:Java 程序通过 JVM 可以实现跨平台特性,但 JVM 是不跨平台的。也就是说,不同操作系统之上的 JVM 是不同的,Windows 平台之上的 JVM 不能用在 Linux 平台,反之亦然。

相关文章:

Java编程规范(命名规则),Java程序的运行过程(执行流程)分析

编程规范是对编程的一种约定,主要作用是增强代码的可读性和可维护性,便于代码重用。 首先要求程序中的各个要素都遵守命名规则,然后在编码中严格按照编码格式编写代码。命名规则包括以下几点。 包的名称由一个小写字母序列组成。类的名称由大…...

layui框架实战案例(21):layui table单元格显示图片导致复选框冗余的解决方案

图片自适应表格CSS 为防止单元格内的图片不能正常显示,需本地重写CSS。 /*layui-table图片自适应*/ .layui-table-cell {height: auto;line-height: 20px;}.layui-table-cell img {height: 50%;max-width: 50%; }列代码 , cols: [[{type: checkbox,fixed:left, w…...

指针常量和常量指针

大家好,我叫徐锦桐,个人博客地址为www.xujintong.com。平时记录一下学习计算机过程中获取的知识,还有日常折腾的经验,欢迎大家来访。 指针常量和常量指针光是这名字就让人头疼了。更何况还有细节问题要理清楚。 正文 命名 其实我…...

GitLab-访问返回403 forbidden问题处理

访问gitlab时报错forbidden 一般访问量大,密码错误频率高的时候,gitlab防爆机制启动了,对IP做了封禁,导致某些IP访问的是否返回 403 forbidden 1. 查看被封的IP /opt/gitlab/embedded/bin/redis-cli -s /var/opt/gitlab/redis/red…...

快来get策略模式,告别编程困惑,轻松变身编程高手✨

🎬 江城开朗的豌豆:个人主页 🔥 个人专栏 :《 VUE 》 《 javaScript 》 📝 个人网站 :《 江城开朗的豌豆🫛 》 ⛺️ 生活的理想,就是为了理想的生活 ! ​ 目录 ⭐ 专栏简介 📘 文章引言 一…...

UPS负载箱的工作原理是什么?

UPS负载箱(Uninterruptible Power Supply Load Bank)内部包含一组电阻器,通过调节电阻值来模拟不同负载条件。当UPS供电时,电阻器会吸收一定的电能,从而模拟实际负载对UPS的需求。UPS负载箱配备了控制系统,…...

深度学习八股文: 模型训练全过程及各阶段的原因

深度学习模型的训练全过程通常包括以下步骤: 数据准备: 首先,需要准备用于训练的数据集。数据集应包含输入特征(通常是数值或图像数据)和相应的目标标签。数据通常需要被分为训练集、验证集和测试集,以便评…...

CY3-NHS ester良好的光稳定性介绍1032678-38-8

CY3-NHS ester通常表现出良好的光稳定性,这使得它在长时间的荧光成像和实验中非常有用。以下是关于CY3-NHS ester良好光稳定性的一些介绍: 1.抗光漂白性能:CY3-NHS ester通常对光漂白表现出相对高的抵抗力。这意味着在持续激发下&#xff0c…...

大厂秋招真题【贪心】美团20230826秋招T2-小美的数组重排

文章目录 【贪心】美团2023秋招-小美的数组重排题目描述与示例题目描述输入描述输出描述示例输入输出 说明 解题思路代码PythonJavaC时空复杂度 华为OD算法/大厂面试高频题算法练习冲刺训练 【贪心】美团2023秋招-小美的数组重排 题目描述与示例 题目描述 小美有两个长度为n…...

UnitTest框架的使用

文章目录 一、UnitTest框架是什么?二、UnitTest核心要素三、TestCase四、TestSuite & TestRunner 一、UnitTest框架是什么? UnitTest框架是python自带的一个单元测试框架,主要用它来做单元测试,它有以下特点: 能…...

软件开发项目文档系列之四如何成功撰写一份引人注目的投标文件

目录 前言1 分析招标文件1.1 投标的基础要求分析1.2 投标重点要求分析1.3 评分标准分析1.4 技术需求分析 2 撰写完整的投标文件2.1 明确文件用途2.2 提供评分指引2.3 内容完整重点突出2.4 重视图表和图示 3 认真检查和经验积累3.1 深入的准备3.2 反复检查3.3 咨询和确认3.4 积累…...

Django设置跨域

1, 安装 pip install django-cors-headers 2, 添加应用 INSTALLED_APPS (...corsheaders,... ) 3, 中间层设置 MIDDLEWARE [corsheaders.middleware.CorsMiddleware,... ] 4, 添加白名单 # CORS CORS_ORIGIN_WHITELIST (127.0.0.1:8080,localhost:8080,www.meiduo.si…...

基于Python3的Scapy构造DNS报文

一:DNS协议 DNS(Domain Name System)协议是计算机网络中的一种基础协议,它用于将域名(如www.baidu.com)转换为IP地址(如192.168.0.1),从而实现计算机之间的通信。 DNS 分…...

Jupyter Notebook修改默认浏览器方法

Jupyter Notebook修改默认浏览器方法 Create a Jupyter Notebook Config file jupyter notebook --generate-config打开配置文件.jupyter/jupyter_notebook_config.py找到c.NotebookApp.browser 改成只向自己喜欢的浏览器路径’,这里给出选择google浏览器方法&…...

云计算系统与传统计算系统的比较

随着技术的不断发展,云计算系统逐渐成为了企业和个人使用的主要计算方式之一。然而,很多人对云计算系统与传统计算系统之间的区别和相似之处还存在一些疑惑。本文将以云计算系统和传统计算系统为方向,探讨它们之间的异同点。 首先&#xff0…...

使用GoogleNet网络实现花朵分类

一.数据集准备 新建一个项目文件夹GoogleNet,并在里面建立data_set文件夹用来保存数据集,在data_set文件夹下创建新文件夹"flower_data",点击链接下载花分类数据集https://storage.googleapis.com/download.tensorflow.org/exampl…...

STM32之Bootloader、USB、IAP/DFU下载

STM32 IAP应用开发——通过内置DFU实现USB升级(方式2) STM32 IAP应用开发——通过内置DFU实现USB升级(方式1) STM32程序下载4:通过STM32CubePro-USB下载 STM32程序下载3:通过STM32CubePro-UART下载 STM…...

解决 Element-ui中 表格(Table)使用 v-if 条件控制列显隐时数据展示错乱的问题

本文 Element-ui 版本 2.x 问题 在 el-table-column 上需根据不同 v-if 条件来控制列显隐时&#xff0c;就会出现列数据展示错乱的情况&#xff08;要么 A 列的数据显示在 B 列上&#xff0c;或者后端返回有数据的但是显示的为空&#xff09;&#xff0c;如下所示。 <tem…...

Android JNI笔记

JNI、java native interface 。可以实现Java和C、C之间的调用。 在Android开发中是必须要掌握的内容。 在应用开发中&#xff0c;编写JNI代码的注册可分为动态注册和静态注册 动态注册&#xff1a; 声明好方法、注意这些签名 在JNI_OnLoad中进行注册。 static const JNINativ…...

Web开发中会话跟踪的隐藏表单字段(隐藏input)方法

隐藏表单字段是一种会话跟踪方法&#xff0c;通过在HTML表单中添加一个隐藏字段来存储会话标识符。 这样&#xff0c;每次用户提交表单时&#xff0c;会话标识符将与请求一起发送到服务器&#xff0c;以便服务器可以跟踪用户的会话状态。 以下是一个隐藏表单字段的示例&#…...

实时AI视频生成已突破24fps?2026奇点大会现场Demo实测:端侧部署方案、WebGPU加速路径与iOS/Android兼容性避坑指南

第一章&#xff1a;实时AI视频生成已突破24fps&#xff1f;2026奇点大会现场Demo实测&#xff1a;端侧部署方案、WebGPU加速路径与iOS/Android兼容性避坑指南 2026奇点智能技术大会(https://ml-summit.org) 在2026奇点大会主会场A3展台&#xff0c;Luma Labs联合高通与苹果工…...

DeepSeek-R1详解

1. 摘要 DeepSeek-R1 的核心贡献&#xff0c;不是提出一种全新的 Transformer 主干&#xff0c;而是提出了一条面向推理能力的后训练路线&#xff1a; 先用 纯强化学习 证明大模型可以在没有 SFT 冷启动的前提下自然涌现长链推理能力&#xff0c;得到 DeepSeek-R1-Zero&#xf…...

2025年六篇经典论文综述(DeepSeek-R1、Qwen3、Kimi K2、Qwen2.5-VL、Humanity‘s Last Exam、ARC-AGI-2)

摘要 2025 年的 AI 研究主线&#xff0c;明显从“单纯扩大模型规模”转向“提升推理能力、增强 agentic 行为、统一多模态输入&#xff0c;以及重新构建更高难度的评测体系”。本文选取 6 篇具有代表性的 2025 年论文或技术报告&#xff1a;DeepSeek-R1、Qwen3、Kimi K2、Qwen2…...

CXPatcher终极指南:如何一键优化CrossOver游戏兼容性

CXPatcher终极指南&#xff1a;如何一键优化CrossOver游戏兼容性 【免费下载链接】CXPatcher A patcher to upgrade Crossover dependencies and improve compatibility 项目地址: https://gitcode.com/gh_mirrors/cx/CXPatcher CXPatcher是专为CrossOver用户设计的终极…...

从玩具车到真车:阿克曼模型在ROS与自动驾驶仿真中的配置避坑指南

从玩具车到真车&#xff1a;阿克曼模型在ROS与自动驾驶仿真中的配置避坑指南 当你第一次在Gazebo里加载那辆精致的仿真车模型时&#xff0c;满心期待它能在虚拟世界里优雅地转弯&#xff0c;结果却发现它要么像醉汉一样走S形路线&#xff0c;要么干脆表演原地陀螺——恭喜你&am…...

生成式AI数据飞轮构建全链路拆解(从标注→反馈→迭代→跃迁的工业级路径)

第一章&#xff1a;生成式AI数据飞轮构建全链路拆解&#xff08;从标注→反馈→迭代→跃迁的工业级路径&#xff09; 2026奇点智能技术大会(https://ml-summit.org) 生成式AI的数据飞轮并非线性流水线&#xff0c;而是以闭环反馈驱动持续能力跃迁的动态系统。其核心在于将用户…...

LITESTAR 4D:面向未来的唯一BIM文件-IFC!

IFC&#xff1a;面向未来的唯一BIM文件&#xff01;在全球范围内&#xff0c;BIM正逐渐成为建筑行业中一种新的广谱设计方法。BIM世界中最重要的方面之一是通过交换文件&#xff0c;也就是在制造商、设计师和市场之间传递信息&#xff1a;产品数据格式必须标准化到最高水平&…...

Vue-seamless-scroll实战:优化大屏数据表格的无缝滚动与交互体验

1. 为什么选择vue-seamless-scroll实现大屏表格滚动 在大屏数据展示项目中&#xff0c;表格数据的动态滚动几乎是标配需求。传统实现方式通常需要手动编写JavaScript控制DOM元素的transform属性&#xff0c;不仅代码量大&#xff0c;还要处理滚动边界、动画流畅度等细节问题。而…...

OpenWrt防火墙配置避坑指南:从零开始手把手教你设置NAT和端口转发

OpenWrt防火墙配置实战&#xff1a;NAT与端口转发的深度解析与避坑指南 第一次接触OpenWrt防火墙配置时&#xff0c;我被那些看似复杂的规则和术语弄得晕头转向。直到家里的监控摄像头无法远程访问&#xff0c;才意识到正确配置NAT和端口转发的重要性。本文将带你从实际应用场景…...

商业加氢站市场洞察:2026 - 2032年复合年均增长率(CAGR)为13.1%

据恒州诚思调研统计&#xff0c;2025年全球商业加氢站收入规模约达84.38亿元&#xff0c;至2032年这一数字将接近210.4亿元&#xff0c;2026 - 2032年复合年均增长率&#xff08;CAGR&#xff09;为13.1%。在全球能源转型与“双碳”目标驱动下&#xff0c;氢能作为清洁能源的关…...