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

P10—P11:Java程序的编译和运行

编译阶段(P10)

  • Java程序的运行包括两个阶段:编译阶段、运行阶段
  • 编译阶段主要任务:对Java源程序(以.java为后缀的文件),进行检查其是否符合Java的语法规则。如果符合,则生成字节码文件(以.class为后缀的文件)
  • 注意:字节码文件并不是二进制文件,无法直接在操作系统直接运行。
  • 编译过程:
    1. 程序员需要在硬盘的某个位置上,新建一个以.java为后缀的源文件,用于保存Java源代码或者源程序。
    2. 在DOS命令行窗口中,使用JDK自带的javac.exe命令( javac java源文件的路径),对Java源程序的进行编译,生成生成字节码文件。
  • 一个Java源文件可以编译生成多个字节码文件,并且源文件的删除不会影响字节码文件的运行。
  • 编译结束后,可以将class文件拷贝到其他操作系统中运行,实现跨平台。
    在这里插入图片描述

Java的运行阶段(P11)

  • JDK安装之后,除了自带的编译器javac.exe之外,还有一个工具java.exe
  • 可以在DOS命令窗口中,输入java 类名。例如在硬盘上有一个A.class文件,可以在DOS命令窗口中输入java A运行该文件。
  • 运行过程(以A.class为例):
    1. 打开DOS窗口,切换到A.class的目录下,输入java A
    2. java.exe命令就会启动Java虚拟机(JVM),JVM会启动类加载器ClassLoader。
    3. ClassLoader会去硬盘上搜索A.class文件,将该文件装载到JVM中。
    4. JVM将A.class字节码文件解释成二进制文件
    5. 最后,操作系统执行二进制和底层硬件平台进行交互

在这里插入图片描述

相关文章:

P10—P11:Java程序的编译和运行

编译阶段(P10) Java程序的运行包括两个阶段:编译阶段、运行阶段编译阶段主要任务:对Java源程序(以.java为后缀的文件),进行检查其是否符合Java的语法规则。如果符合,则生成字节码文…...

【Docker】Windows中打包dockerfile镜像导入到Linux

【Docker】Windows中打包dockerfile镜像导入到Linux 大家好 我是寸铁👊 总结了一篇【Docker】Windows中打包dockerfile镜像导入到Linux✨ 喜欢的小伙伴可以点点关注 💝 前言 今天遇到一个新需求,如何将Windows中打包好的dockerfile镜像给迁移…...

数据结构之单链表实现(JAVA语言+C语言)

一、理论 1 单链表结构 2 增、删、查 、改思路 (增)直接添加放到最后即可。按顺序添加:找到要修改的节点的前一个节点,插入新节点()。(改)要修改的节点修改内容即可。(…...

docker 安装Sentinel

1.拉取镜像:docker pull bladex/sentinel-dashboard 2.运行镜像:docker run --name sentinel -d -p 8858:8858 -d bladex/sentinel-dashboard 3. 访问地址: 本地地址:http://localhost:8858 (默认端口为8080) 远程地址&#xf…...

通过内网穿透、域名解析实现本地服务部署到公网的架构设计方案

本文主要是总结这些年自己在家玩互联网服务的心得收获, 同时随着年龄增大, 发现脑子确实越来越不好用, 只有记录到笔记中才是真正有意义的。 学生时期做了一些实验, 比如给实验室做日报系统、管理10多台服务器,当时学习了很多架构设计的知识,比如集群化…...

语音陪玩交友软件系统程序-app小程序H5三端源码交付,支持二开!

电竞行业的发展带动其周边产业的发展,绘制着游戏人物图画的抱枕、鼠标垫、海报销量极大,电竞游戏直播、游戏教程短视频也备受人们喜爱,自然,像游戏陪练、代练行业也随之生长起来,本文就来讲讲,从软件开发角…...

import关键字的使用

- import : 导入 - import语句来显式引入指定包下所需要的类。相当于import语句告诉编译器到哪里去寻找这个类。为了使用定义在其它包中的 Java 类,需用 import 语句来显式引入指定包下所需要的类。相当于 import 语句告诉编译器到哪里去寻找这个类 。 语法格式 …...

江协STM32:点亮第一个LED灯和流水灯

很多单片机都是高电平弱驱动,低电平强驱动,所以这里是低电平有效 点亮一个LED灯 操作STM32的GPIO需要三个操作: 第一个使用RCC开启GPIO的时钟 第二步使用GPIO_Init函数初始化GPIO 第三步使用输出或输入函数控制GPIO 1.使用RCC开启GPIO的时…...

设计模式之建造者模式精讲

也叫生成器模式。将一个复杂的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 在建造者模式中,有如下4个角色: 抽象建造者(Builder):用于规范产品的各个组成部分,并进行抽象&…...

vue3源码解析——watch和watchEffect区别

watch和watchEffect是Vue 3.0中新增的两个响应式API,用于监听数据的变化。watch适用于需要获取新值和旧值,或者需要懒执行的场景,而watchEffect适用于需要监听多个数据源,并且需要立即执行的场景。它们之间的区别如下:…...

微服务(基础篇-006-Docker)

目录 初识Docker(1) Docker解决的问题(1.1) Docker与虚拟机(1.2) 镜像和容器(1.3) Docker和DockerHub(1.4) docker架构(1.5) 安…...

深度学习算法概念介绍

前言 深度学习算法是一类基于人工神经网络的机器学习方法,其核心思想是通过多层次的非线性变换,从数据中学习表示层次特征,从而实现对复杂模式的建模和学习。深度学习算法在图像识别、语音识别、自然语言处理等领域取得了巨大的成功&#xf…...

查找算法及查找常用数据结构总结

1.顺序表查找 基本方法: 设查找表以一维数组来存储,要求在此表中查找出关键字的值为x的元素的位置,若查找成功,则返回其位置(即下标),否则,返回一个表示元素不存在的下标&#xff0…...

大语言模型---强化学习

本文章参考,原文链接:https://blog.csdn.net/qq_35812205/article/details/133563158 SFT使用交叉熵损失函数,目标是调整参数使模型输出与标准答案一致,不能从整体把控output质量 RLHF(分为奖励模型训练、近端策略优化…...

前端三剑客 —— CSS (第二节)

目录 内容回顾: CSS选择器*** 属性选择器 伪类选择器 1):link 超链接点击之前 2):visited 超链接点击之后 3):hover 鼠标悬停在某个标签上时 4):active 鼠标点击某个标签时,但没有松开 5):fo…...

牛客NC31 第一个只出现一次的字符【simple map Java,Go,PHP】

题目 题目链接: https://www.nowcoder.com/practice/1c82e8cf713b4bbeb2a5b31cf5b0417c 核心 Map参考答案Java import java.util.*;public class Solution {/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可*…...

软考系统架构设计师(摘抄)01

架构师承担的责任 系统架构师设计师是承担系统架构设计的核心角色,他不仅是连接用户需求和系统进一步设计与实现的桥梁,也是系统开发早期阶段质量保证的关键角色。系统架构师就是项目的总设计师,他是一个既需要掌控整体又需要洞悉局部瓶颈&a…...

5G无线接入网和接口协议

**部分笔记** 4.3无线协议架构 NR无线协议分为两个平面:用户面和控制面。 用户面(UP):协议栈及用户数据采用的协议 控制面(Control Plane,CP)协议栈即系统的控制信令传输采用的协议簇。 虚线标注的是信令数据的流向。一个UE在…...

【力扣刷题日记】1173.即时食物配送I

前言 练习sql语句,所有题目来自于力扣(https://leetcode.cn/problemset/database/)的免费数据库练习题。 今日题目: 1173.即时食物配送I 表:Delivery 列名类型delivery_idintcustomer_idintorder_datedatecustomer…...

2024年github之node排行榜top50

如果有帮助到您还请动动手帮忙点赞,关注,评论转发,感谢啦!💕💕💕😘😘😘 本文由Butterfly一键发布工具发布 2024年github之node排行榜top50 语言star项目名称…...

phoenix-queryserver 6.0.0安装

1.下载 https://phoenix.apache.org/download.html 2.解压 tar -xzvf phoenix-queryserver-6.0.0.jar 3. 复制phoenix-client-hbase-2.4.0-5.1.2.jar 复制phoenix-client-hbase-2.4.0-5.1.2.jar 到 /usr/local/src/phoenix/phoenix-queryserver-6.0.0 设置环境变量 //设置que…...

进来看看你对进程虚拟内存的了解有多深?

在 Linux 中,每个进程都好像是楚门,生活在一个别人为它精心构建的世界里,而它却以为自己独占了整个系统的内存空间。这正是内核通过虚拟内存机制实现的。 本文将带你穿过用户态的表象,深入 Linux 内核源码与底层硬件,分…...

anime4kCPP在windows上部署记录

文章目录 前言 在windows编译 如何使用 结果 python脚本批量调用 前言 Anime4KCPP 是由开发者 TianZerL 基于著名的 Anime4K 算法,使用 C++ 重新实现并优化的高性能动漫超分辨率工具。 简单来说,它的核心任务是:把模糊、低分辨率的动漫图片或视频,变得清晰且高分辨率(例如…...

模型文件硬塞进 Git,GitHub 直接打回原形:使用Git-LFS管理大文件

醋孔啥投Streamlit 是一款专为数据科学家和机器学习工程师设计的 Python 库,可快速将数据脚本转换为交互式 Web 应用,无需前端开发经验,所以最近研究了一下,结合LangChain 1.0 实现了简单的智能问答前后端应用,大模型使…...

计网相关协议3

DNS查询:查找域名对应IP(先浏览器缓存、本地hosts、路由器缓存,再递归/迭代DNS服务器查询)。...

WinServer 2012 R2实战:如何通过组策略彻底禁用域用户离线登录(附注册表清理技巧)

WinServer 2012 R2企业级安全加固:从组策略到注册表,全面封堵域用户离线登录风险 在金融、医疗、研发等对数据安全有着严苛要求的行业里,IT管理员们常常面临一个看似微小却影响深远的挑战:当员工带着笔记本电脑离开公司网络&#…...

Kubernetes无头服务(Headless Service)实战:从DNS解析到跨集群访问

1. 无头服务到底是什么?为什么你需要它? 大家好,我是老K,在容器和云原生领域摸爬滚打了十来年。今天咱们不聊那些虚的,直接上手,来聊聊Kubernetes里一个听起来有点“怪”,但用起来特别“香”的功…...

Questasim 10.6c 从零安装到环境配置:避坑指南与实战步骤

1. 环境准备:万事开头,细节决定成败 大家好,我是老张,在芯片设计和验证这行摸爬滚打了十几年,用过的仿真工具能摆满一桌子。今天咱们不聊复杂的验证方法学,就踏踏实实地解决一个最基础、也最容易让人“从入…...

Beautiful Hugo安装教程:Git Submodule与Hugo Module两种方法对比

Beautiful Hugo安装教程:Git Submodule与Hugo Module两种方法对比 【免费下载链接】beautifulhugo Theme for the Hugo static website generator 项目地址: https://gitcode.com/gh_mirrors/be/beautifulhugo Beautiful Hugo是一款基于Hugo静态网站生成器的…...

insight API使用教程:轻松构建比特币区块链应用

insight API使用教程:轻松构建比特币区块链应用 【免费下载链接】insight A bitcoin blockchain explorer and API 项目地址: https://gitcode.com/gh_mirrors/in/insight GitHub 加速计划 / in / insight 是一个功能强大的比特币区块链浏览器和 API 工具&am…...