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. Oracle 11g 服务器结构

    Oracle 服务器主要又实例.数据库.程序全局区和前台进程组成. 实例可以进一步划分为系统全局区(SGA)和后台进程(PMON.SMON等)两部分,其中,SGA 使用操作系统的内存资源,而后台进程需 ...

  2. shell脚本4种执行方式

    Linux中shell脚本的执行通常有4种方式,分别为工作目录执行,绝对路径执行,sh执行,shell环境执行. 首先,看下我们的脚本内容 [tan@tan scripts]$ ll total -r ...

  3. k8s pv无法删除问题

    一般删除步骤为:先删pod再删pvc最后删pv 但是遇到pv始终处于“Terminating”状态,而且delete不掉.如下图: 解决方法: 直接删除k8s中的记录: kubectl patch p ...

  4. 文件操作之stat()函数

    作用: 返回一个文件的详细信息 头文件: #include <sys/types.h> #include <sys/stat.h> #include <unistd.h& ...

  5. JS之try..catch...

    try 测试代码块的错误. catch 语句处理错误. throw 创建并跑出错误. try { //在这里运行代码 抛出错误 }catch(err){ //在这里处理错误 } 实例: <p&g ...

  6. Caused by: java.lang.IllegalStateException: Ambiguous mapping found

    Caused by: java.lang.IllegalStateException: Ambiguous mapping found. Cannot map ‘myCockpitMgrControl ...

  7. centos 环境下安装maven

    安装Maven Maven的下载地址:http://maven.apache.org/download.cgi这里以最新的3.2.3版本为例进行安装,在这之前需要确保机器上已经安装了JDK. 首先下载 ...

  8. oracel: 通过特殊表序列来实现oracle自增id (mybatis实现自增id)

    本项目结合mybaits来使用. 加入有一个用户表:sys_user, 自增id为user_id. 怎么来实现id的自增呢? 通过sql语句select * from user_sequences,检 ...

  9. 求序列A中每个数的左边比它小的数的个数(树状数组)

    给定一个有N个正整数的序列A(N<=10^5,A[i]<=10^5),对序列中的每一个数,求出序列中它左边比它小的数的个数. 思路:树状数组的经典应用(裸题) #include <i ...

  10. nginx 故障转移

    当我们的服务器某台出现问题的时候,怎么办.... nginx在反向代理到真实服务器(上游服务器)的时候,如果真实服务器出现了宕机,或延迟卡顿的情况下,直接轮询下一个节点. 其中主要配置如下: ###n ...