Hello World程序

在编程语言的世界里,第一个编程语言估计就是输出Hello World了吧。

/**
* 编写第一个Java程序,输出Hello World!
* @author LJS
*
*/
public class HelloWorld {
//入口程序
public static void main(String[] args) {
//输出字符串
System.out.println("Hello world!");
} }

  

上述程序如果是在Eclipse里面编写的,只需要点击运行按钮就可以输出Hello World!字符串。

如果程序保存在Linux或者unix的系统上,那么需要进行编译,当然,如果你的java版本是最新的12,那么对于上诉的这个Java程序直接运行也是可以的。

在Linux上的编译过程:

#touch HelloWorld.java   // 文件名字需要与java中定义的类名一致,这里就是HelloWorld,文件名以.java结尾。
#javac HelloWorld.java // 编译生成HelloWorld.class文件
#java HelloWold      // 执行java程序,正常不报错就可以直接输出Hello World! ###### 如果是java 11以上的版本(包括11) 可以直接使用 java HelloWorld.java执行,这是java 11新增的功能,当然,在真正的项目中,往往一个程序需要导入第三方的类文件,这种情况下就需要编译才行了。

如下输出:

程序解释

解释
、程序开头
/**
* 编写第一个Java程序,输出Hello World!
* @author LJS
*
*/ 这代表java里面的注释。对应的还有,
"/*" ... "*/"之间的内容和以"//"开始的内容为 Java 程序的注释 、public 关键字:用来说明定义的某个类是、某个方法、某个字段等是对外开放的,对应的还有private、final等关键字都是用来对类、方法、字段的修饰。对于上诉就是定义一个公开的类和方法。 、class 关键字:该关键字用来定义一个类。 、HelloWorld:定义的类名字。 、static关键字:该关键字用来说明某个方法或者字段是静态方法或者静态字段。对于上述这个程序表示定义一个静态方法,允许类直接调用,不需要创建类的实例。 、void 关键字:表示某个类的方法没有返回值。对于上述表示main()方法没有返回值。 、String[]:表示一个字符串数组类型,args表示对应的参数,对于java的入口程序,也就是main方法,该类型和参数是固定的,也就是说必须是 public ... main(String[] args){...}。 、System.out.println("..."):表示输出一个字符串,这个类是java自带的核心类提供的,存在于java.Lang下。println(print line)表示输出换行,对应的还有print(输出不换行),printf(输出字符串的格式化)

Java运行流程

从上述的程序执行过程可以看出,java程序的运行需要三个步骤:

1、编写以.java结尾的java程序。

2、使用Java编译器进行编译排错,最终形成.class的字节码文件。

3、使用Java解释器将字节码解释成机器代码,供机器执行,输出。

运行流程图:

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

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

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

  

Java 学习之路(1)第一个Java程序的更多相关文章

  1. Java学习笔记二十九:一个Java面向对象的小练习

    一个Java面向对象的小练习 一:项目需求与解决思路: 学习了这么长时间的面向对象,我们只是对面向对象有了一个简单的认识,我们现在来做一个小练习,这个例子可以使大家更好的掌握面向对象的特性: 1.人类 ...

  2. Java学习之路:详细解释Java解析XML四种方法

    XML如今已经成为一种通用的数据交换格式,它的平台无关性,语言无关性,系统无关性,给数据集成与交互带来了极大的方便. 对于XML本身的语法知识与技术细节,须要阅读相关的技术文献,这里面包含的内容有DO ...

  3. Spring学习之路三——第一个Spring程序(体会IoC)

    体会IoC:Spring通过一种称作控制反转(IoC)的技术促进了松耦合.当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象.你可以认为IoC与JN ...

  4. [Java 教程 03] 我的第一个Java程序

    现在,大家应该都已经安装好jdk环境了吧!是不是已经跃跃欲试,按耐不住心中的小激动了?那我们现在就来写我们java学习生涯中的第一个java程序. 文件相关设置 为了方便后面大家的学习呢?有一点大家还 ...

  5. 新篇章之我的java学习之路下

    昨天写下了人生的第一篇博客,今天接着写我的java学习之路有关开发及框架的学习过程. 想要学好java语言,只学习一些java的基本语法对实际开发中的用处还是不大的,所以我们还要掌握一些有关javaW ...

  6. java学习之路之javaSE基础2

    java学习之路之javaSE基础2 所有的代码都是引用他人写的. 1.逻辑运算符 //&,|,^,! //int x = 10; //5 < x < 15 //x > 5 ...

  7. java学习之路之javaSE基础1

    <h2>java学习之路之javaSE基础1</h2> <div> ###01.01_计算机基础知识(计算机概述)(了解)* A:什么是计算机?计算机在生活中的应用 ...

  8. JAVA学习之路与大家分享

    这是我四年以前总结的JAVA学习之路,希望对初学者或想从事JAVA开发的人有帮助. 本人是软件工程专业出身,先后学过C.C++.JAVA.VB.delphi等等开发语言以及网络相关管理技术.哎,好久不 ...

  9. Java 学习之路 -- day00

    Java 学习之路 -- day00 Typora 快捷键操作 标题:#+空格 2. *斜体* 3. **加粗** 4. **斜体加粗*** 5. ~~删除线~~ 6. > 引用 7. ···分 ...

  10. Docker学习笔记之一,搭建一个JAVA Tomcat运行环境

    Docker学习笔记之一,搭建一个JAVA Tomcat运行环境 前言 Docker旨在提供一种应用程序的自动化部署解决方案,在 Linux 系统上迅速创建一个容器(轻量级虚拟机)并部署和运行应用程序 ...

随机推荐

  1. Java 解决Emoji表情过滤问题(转载)

    本文作者 我是周洲 原文链接 https://blog.csdn.net/u012904383/article/details/79376707 本人使用的是第三种引入jar的方法 问题: Emoji ...

  2. linux下载并安装redis

    1 到http://redis.io/download 官网下下载最新稳定的redis 2 下载的redis安装包移动到要安装的位置 3 解压安装包 tar zxvf redis-3.0.5.tar. ...

  3. UEditor 在 Layer 模态框中无法使用问题

    问题: 解决方法: 在 使用  ueditor 的页面顶部加入js代码: window.UEDITOR_HOME_URL = "__STATIC__/path/to/ueditor/&quo ...

  4. dede 对 单个 字段 编辑

    {dede:field.body runphp='yes'} $body = str_replace("src=\"/uploads","src=\" ...

  5. 常用模块(collections模块,时间模块,random模块,os模块,sys模块,序列化模块,re模块,hashlib模块,configparser模块,logging模块)

    认识模块 什么是模块? 常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. 但其实import加载的模块分为四个通用类别: 1 使用python编写的 ...

  6. [http] http body中chunked数据的编码格式

    一 我们知道,http response的body可以使用chunked编码.这个时候不需要显示的 指定content-length来标记结尾. 如: 我们可以见到编码的chunked字样,并且没有看 ...

  7. WCF 学习系列——WCF的学习基础

    这个系列的博客由WCF4 高级编程学习记录,如有错误请指正. 首先介绍一些概念: SOA: (Service-Oriented Architecture 面向服务架构),一种架构方法,也是一种编程模式 ...

  8. 如何通过cmd获取到域名下的ip地址?例如获取百度的域名

    百度首页的IP地址为[119.75.217.109] 你可以通过电脑本机进行查询,查询步骤如下: 1.点击[开始]--->>[运行],输入[cmd]: 按键盘上的[Win键]+[R键],调 ...

  9. 《你说对就队》第八次团队作业:Alpha冲刺 第二天

    <你说对就队>第八次团队作业:Alpha冲刺 项目 内容 这个作业属于哪个课程 [教师博客主页链接] 这个作业的要求在哪里 [作业链接地址] 团队名称 <你说对就队> 作业学习 ...

  10. LG4723 【模板】常系数线性递推

    P4723 [模板]常系数齐次线性递推 题目描述 求一个满足$k$阶齐次线性递推数列${a_i}$的第$n$项. 即:$a_n=\sum\limits_{i=1}^{k}f_i \times a_{n ...