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. elasticsearch*3 + Es-Head + kibana Docker集群

    ES官方文档:https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html   拉取docker镜像 dock ...

  2. 规格化设计——OO第三单元总结

    规格化设计--OO第三单元总结 一.JML语言理论基础.应用工具链 1.1 JML语言 ​ JML(java modeling language)是一种描述代码行为的语言,包括前置条件.副作用等等.J ...

  3. Oracle 操作数据库(增删改语句)

    对数据库的操作除了查询,还包括插入.更新和删除等数据操作.后3种数据操作使用的 SQL 语言也称为数据操纵语言(DML). 一.插入数据(insert 语句) 插入数据就是将数据记录添加到已经存在的数 ...

  4. ECSHOP v3.0 数据库字典

    商品相关表 商品分类表 category 此表用来维护商品分类信息 字段名 字段描述 字段类型 默认值 索引 cat_id 分类编号 smallint(5) unsigned 自增 PK cat_na ...

  5. Vue中v-model解析、sync修饰符解析

    上善若水,水善利萬物而不爭.——<道德經> 简介 在平时开发是经常用到一些父子组件通信,经常用到props.vuex等等,这里面记录另外的三种方式v-model.sync是怎么使用,再说是 ...

  6. Android查看应用方法数

    当一个项目快速迭代时,难免引进各种依赖,从而导致单个apk超过65k的限制.如何查询apk的方法数也是每个Android Developer必备技能. 我使用的是 dex-method-counts  ...

  7. 操作系统systemctl命令

    目录 预热 管理单个 unit 查看系统上的 unit 管理不同的操作环境(target unit) 检查 unit 之间的依赖性 相关的目录和文件 systemctl daemon-reload 子 ...

  8. Android笔记(五十) Android中的JSON数据

    JSON是什么: JSON是轻量级的文本数据交换格式 JSON独立于语言和平台 JSON具有自我描述性,更容易理解 JSON语法: 数据在名称/值对中 数据由逗号分割 大括号表示对象 中括号表示数组 ...

  9. centos7.5 配置sftp

    1.创建sftp组 groupadd sftp 2.sftp组的用户的home目录统一指定到/u01/sftp下 mkdir -p /u01/sftp/ 3.创建一个sftp用户,用户名为devsft ...

  10. Linux下 启动tomcat 时候同时日志命令

    ./startup.sh && tail -f ../logs/catalina.out