Java 学习之路(1)第一个Java程序
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程序的更多相关文章
- Java学习笔记二十九:一个Java面向对象的小练习
一个Java面向对象的小练习 一:项目需求与解决思路: 学习了这么长时间的面向对象,我们只是对面向对象有了一个简单的认识,我们现在来做一个小练习,这个例子可以使大家更好的掌握面向对象的特性: 1.人类 ...
- Java学习之路:详细解释Java解析XML四种方法
XML如今已经成为一种通用的数据交换格式,它的平台无关性,语言无关性,系统无关性,给数据集成与交互带来了极大的方便. 对于XML本身的语法知识与技术细节,须要阅读相关的技术文献,这里面包含的内容有DO ...
- Spring学习之路三——第一个Spring程序(体会IoC)
体会IoC:Spring通过一种称作控制反转(IoC)的技术促进了松耦合.当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象.你可以认为IoC与JN ...
- [Java 教程 03] 我的第一个Java程序
现在,大家应该都已经安装好jdk环境了吧!是不是已经跃跃欲试,按耐不住心中的小激动了?那我们现在就来写我们java学习生涯中的第一个java程序. 文件相关设置 为了方便后面大家的学习呢?有一点大家还 ...
- 新篇章之我的java学习之路下
昨天写下了人生的第一篇博客,今天接着写我的java学习之路有关开发及框架的学习过程. 想要学好java语言,只学习一些java的基本语法对实际开发中的用处还是不大的,所以我们还要掌握一些有关javaW ...
- java学习之路之javaSE基础2
java学习之路之javaSE基础2 所有的代码都是引用他人写的. 1.逻辑运算符 //&,|,^,! //int x = 10; //5 < x < 15 //x > 5 ...
- java学习之路之javaSE基础1
<h2>java学习之路之javaSE基础1</h2> <div> ###01.01_计算机基础知识(计算机概述)(了解)* A:什么是计算机?计算机在生活中的应用 ...
- JAVA学习之路与大家分享
这是我四年以前总结的JAVA学习之路,希望对初学者或想从事JAVA开发的人有帮助. 本人是软件工程专业出身,先后学过C.C++.JAVA.VB.delphi等等开发语言以及网络相关管理技术.哎,好久不 ...
- Java 学习之路 -- day00
Java 学习之路 -- day00 Typora 快捷键操作 标题:#+空格 2. *斜体* 3. **加粗** 4. **斜体加粗*** 5. ~~删除线~~ 6. > 引用 7. ···分 ...
- Docker学习笔记之一,搭建一个JAVA Tomcat运行环境
Docker学习笔记之一,搭建一个JAVA Tomcat运行环境 前言 Docker旨在提供一种应用程序的自动化部署解决方案,在 Linux 系统上迅速创建一个容器(轻量级虚拟机)并部署和运行应用程序 ...
随机推荐
- 【洛谷 P2597】 [ZJOI2012]灾难(LCA)
题目链接 考虑建一棵树,使一个生物灭绝时他的子树都会灭绝,显然这样答案就是以每个点为根的子树大小-1. 为什么原图不是一棵树,因为一个生物可能会以多个生物为食,所以按拓扑序来建树,把每个遍历到的点的父 ...
- MQ相关
1. 如何保证消息按顺序执行 2. 如何保证消息不重复消费 3. 如何保证消息不丢失 4.RabbitMQ Java Client简单生产者.消费者代码示例
- 阿里云ssl协议发布qq邮件
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx. ...
- PHP 结合 Boostrap 结合 js 实现学生列表删除编辑以及搜索功能(完结)
这个自己的小项目要先告一段落了.可能还有许多bug.请见谅 删除学生功能 PHP: // 这里是通过前端代码HTML中的 url 传过来的,用 $_GET 来获取(相关HTML代码可以看一下到主页看一 ...
- sql server 获取某一字段分组数据的前十条记录
1.sql 语法 select m, n from ( select row_number () over (partition by m order by n desc) rn,--以m分组,分组内 ...
- PS1变量设置
\d :代表日期,格式为weekday month date \H :完整的主机名 \h :主机的第一个名字 \t :显示时间为24小时格式(HH:MM:SS) \T :显示时间为12小时格式 \A ...
- QT--初识
一.组成QT的基本模块 二.创建一个简单工程 1.工程结构介绍 .pro 文件 QT += core gui # 包含的模块 greaterThan(QT_MAJOR_VERSION, ): QT + ...
- event.target事件
event.target <!DOCTYPE html> <html> <head> <meta charset="utf-8"> ...
- C++中与类有关的注意事项(更新中~~~)
关于构造函数的调用次序,见下列代码 #include<iostream> using namespace std; class A { private: int x; public: A( ...
- 《团队名称》第九次团队作业:Beta冲刺与验收准备
项目 内容 这个作业属于哪个课程 软件工程 这个作业的要求在哪里 实验十三 团队作业9:Beta冲刺与团队项目冲刺 团队名称 发际线总和我作队 作业学习目标 (1)掌握软件黑盒测试技术:(2)掌握软件 ...