趣味故事5分钟学会第一个Java程序,秒懂跨平台执行原理

Posted 雷学委

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了趣味故事5分钟学会第一个Java程序,秒懂跨平台执行原理相关的知识,希望对你有一定的参考价值。

趣味故事5分钟学会Java程序 秒懂跨平台执行原理

之前小白过来找学委学习了很多编程知识。然后他也推荐了一些朋友看学委的文章。

可是那些朋友编程都没有玩过,只想入门看看。

好吧,这个也不难的。

还记得我们是怎么学会语文的吗?下面围绕这个展开。

Java 是什么?

我们小时候学习语文的时候,也没有一下子懂几千个字,都是跟着学几个,写写字,造造句,模仿就会了。

Java跟我们学的汉语言一样,是一门语言。

汉语主要是中国人,华人能懂,当然外国朋友稍微花时间也能用汉语沟通。

Java语言或者其他语言像C语言,就是需要翻译之后,电脑才能懂,然后运行Java语言写的程序。

这里出现了一个新词‘程序’

什么是程序?

简单的程序,就像我们写好的一个句子,有几个词组合而成。

复杂的程序,就像一篇文章一样,由多个句子,图片组合而成。比如下面学委的一篇文章一样。

(PS:上文来自专栏=>雷学委趣味编程故事汇编)

启示:这就是程序

一个文章就是一些汉字词句组合而成的,经过思考整合,表达出整体的意思,传达作者的想法

他们得到的解读会有一个共同点“这是一篇趣味故事讲编程的文章”。

**程序跟文章类似,有很多的语法,结构性的“句子”,编排而成。**然后运行在一个个电脑上,程序被执行。每台电脑,就像一个个读者,解读同一篇文章。

说的细致一点就是,电脑上的程序解释器,就像读者理解文章一样,解读程序的代码。

对于不懂中文的读者,他们就一头雾水了。相对应的,那Java解析器去编译解析Python语言代码,程序识别不了。

程序如何被执行?

文章可以被解读出不同层次,但是中心思想是确定的。不过对于程序,只要解释执行器是一样版本的,那么电脑会根据程序的要求办事情。

快速安装

下载安装,建议直接解压。 然后进去bin目录,继续下面代码的学习。

MacBook直接下载Dmg文件进行安装:

从代码直接学习

还记得我们初学语文的时候吗?或者初学古文古诗的时候。

通常都是记住一两个词,然后整篇背诵,随着记住的词汇阅读,突然有一天发现豁然开朗,整首诗,整首词,居然一下子贯通了!

学委想说编程也是如此般神奇!

把下面代码复制保存为Hello.java,并敲到会默写!

public class Hello{
    public static void main(String[] args){
        System.out.println("[雷学委初级Java教程]Hello Java");
    }
}

运行Java代码:

#编译Java代码
javac Hello.java
#运行Java代码
java Hello

稍微补充一下:

javac 这是调用java 编译器进行代码编译
java 这个调用Java虚拟机解析编译好的字节码

如果不能运行请记得及时评论留言

这个很重要!
最终效果如下:

看看效果


好了,本次暂时讲解到这里。

打算学习的同学,请把上面的程序,每个词敲对,那么程序执行一致。

再来解释程序

//定义一个公开的类Hello
//一对{}内为类的实现代码
public class Hello{
    //定义main静态方法: 每一个Java程序都需要一个main方法	
    //方法也由于一对{}括起来,内部为一行一行代码。
    public static void main(String[] args){
        //一行代码,调用System.out对象的println方法,传入一个参数
        System.out.println("[雷学委初级Java教程]Hello Java");
    }
}

上面的代码解释比较官方啊,我们直接观察代码:

我们看到这里***public***出现了好几次,它的作用是定义一个公共访问的***方法/类***。
类又是什么? 类就是对事物的抽象,对应得可以把它理解为一种句子,不同词语组成的通用句子。
主要类比的是(主语+动词+其他状态)的完整句子,比如下面:

我是雷学委
我是小白
我是某某某

这样的句子,我们人类理解为自我介绍的语句。像上面的Hello这个类做的事情就很简单,内部定义了一个方法,打印了自我介绍“[雷学委初级Java教程]Hello Java"。

这里又带出了一个问题:什么是方法,如何理解它?

可以这样理解方法为句子里面的动词能够执行的,而且动词就是被不同句子使用的。

这里是为了带你理解程序,能把被执行的Java类是需要一个动词的,那就就是main方法,而且它还必须是static(静态的)。

(朋友别杠还有其他没有动词的句子,比如,“早上好”,“学委好”, 你说的没错,这种特例的句子就像没有静态方法的类,不方便你理解程序)

总结

上面学习的基础和代码操作经历的过程如下图:

  1. 我们一起编写了一个public的Hello类//写一个语法通的句子(比如说粤语)
  2. 终端输入:java Hello.java 编译了Hello类为字节码//把句子再转成统一语言,普通话
  3. 终端输入:java Hello 运行Hello类的main方法// 合格的句子读者看到了
  4. Java虚拟机解释字节码为机器码,调用操作系统按需进行显示/播放。
    (Java虚拟机,这里不多说,仅理解为Java字节码运行机器就可以了)

句子还分了方言?换言之,Java为啥需要翻译为字节码,直接解释执行不方便吗?

汉语系内很多方言,需要翻译为官方标准普通话,这样消息才能全国流通啊。十几亿人口发行多个方言多不方便还带了很多中间转换的成本。

Java设计者考量了这点,对每个平台(操作系统)都发行特定的Java安装包(包含Java运行环境,编译器),把Java源代码翻译为统一标准的字节码,然后一套字节码通用的执行在所有平台上,保存一致行为。

所以实际上整个流程如下,Java虚拟机解放了Java开发人员,不用每个操作系统写一套代码,只要编译一次,随处执行了,很棒吧。

思考一个问题:没有编写main方法代码能运行吗?

//定义一个公开的类Hello
public class Hello{
}

这个代码能运行吗?我只想写一个类!丢给Java运行:

javac Hello.java
java Hello


从上面可以看到我们的Java程序报错了,提示类没有main方法!

本次分享就到这里,至于JVM(Java虚拟机,后面也会有趣味故事来讲解)。

持续学习持续开发,我是雷学委!
编程很有趣,关键是把技术搞透彻讲明白。
创作不易,请多多支持,点赞收藏支持学委吧!

以上是关于趣味故事5分钟学会第一个Java程序,秒懂跨平台执行原理的主要内容,如果未能解决你的问题,请参考以下文章

软帝学院:java开发程序很难吗?学会这十步,5分钟搞定一个程序

C 系程序员20分钟学会 Dart 语言

趣味故事掌握类和对象,关于鞋厂的大学问!

趣味故事掌握类和对象,关于鞋厂的大学问!

5分钟学会Flutter开发

5分钟学会Flutter开发