第一行代码 Hello world

        计算机俗称电脑,只不过它是一种通过通电来模拟人脑的工具,是一种可以进行数学、逻辑运算,还具有存储记忆功能的智能设备,目前是人类的小助手。计算机是以为人类服务为宗旨的。我们人类希望计算机以后能真的像人一样去工作,从而解放人力,这是对计算机的终极目标。

         记得上大学时第一门接触的语言是C语言,后来又陆续接触到Java,Php,Python,Go等,入门的第一行代码都是hello world,但是,你真的了解hello world是如何产生的吗?下面我们来一起探讨下Java语言第一行代码是如何执行的,当然,在这之前,我们需要提前了解以下小知识

        1.计算机硬件知识

        2.计算机操作系统知识

        3.计算机语言发展史

        4.JVM(Java Virtual Machine) java虚拟机

下面我们一起聊下这几个知识点:

1.计算机硬件知识

1.1 计算机硬件组成

1.1.1.控制器:是计算机的指挥系统,负责控制计算机其他硬件的运行,相当于人的大脑

1.1.2.运算器:包括数学运算和逻辑运算,相当于人的大脑

控制器+运算器=CPU(central processing unit 中央处理器)

1.1.3.存储器:存储数据

内存(主存):如内存条(又称随机存储器),存取速度快,但是基于电工作,一旦断电数据就丢失,只能临时存储。类似于人的记忆功能,容易断片。

外存:如硬盘,存取速度相对内存很慢,数据可以近似“永久”保存。类似于使用的笔记本

1.1.4.输入设备(Input):计算机接收外界输入数据的工具,如键盘、鼠标等

1.1.5.输出设备(Output):计算机向外输出数据的工具,如显示屏、打印机等

1.2 CPU、存储器 之间的关系

CPU:负责运行人类的程序,人们通过程序控制CPU,再通过CPU控制计算机其他硬件,其存取的数据指令都来自于内存,由于内存只能保存临时数据,而CPU必须通过内存读取数据,故电脑在开机的时候会将部分数据从硬盘加载到内存 。

2、操作系统

2.1操作系统

能够控制,协调、管理计算机硬件资源和应用软件资源的一类控制程序。现流行的操作系统有:Windows、Linux、Mac等

2.2操作系统的意义

控制计算机硬件的基本运行,将计算机硬件复杂的操作细节封装成简单一致的接口(功能)供上层应用软件或用户使用

总结:操作系统的作用
1:隐藏丑陋复杂的硬件接口,提供良好的抽象接口
2:管理、调度进程,并且将多个进程对硬件的竞争变得有序

2.3 程序、进程、线程的区别

a.程序:是一组计算机语言编写的指令的有序集合(一堆代码)

b.进程:可定义为正在执行的程序,在计算机中执行的任何程序实例都可称为进程,一个程序可以有多个进程。比如:QQ,支付宝

c.线程:是指某一进程中单独运行的子程序,可看作轻量型进程,可以看做是进程中运行代码的过程,所以线程存在于进程中,一个进程由一个或多个线程组成。

3. 计算机语言总的来说分为机器语言,汇编语言,高级语言三大类

3.1 第一代语言:机器语言

机器语言是机器能直接识别的程序语言或指令代码,无需经过翻译。

我们都知道计算机的基本计算方式都是基于二进制的方式。如下就是一段典型的机器语言代码:

 这种代码计算机可以直接执行,它舒服了,可是人不爽啊,这些语言机器能识别,我们不好操作啊,So , 第二代计算机语言产生了

3.2 第二代语言:汇编语言。

汇编语言用一些简单的助记符代替了操作码,用地址符号或标号代替地址码。这用符号代替了机器语言的二进制码。所以,汇编语言也称为符号语言。

比起机器语言,汇编语言已经算大大进步了,至少有部分符号是我们人类定义的,至少部分符号可以很直观的看懂了,但这还不够,于是第三代语言产生了。

 

3.3 第三代语言:高级语言。

高级语言就进入了“面向人类”的语言,这个时候大部分代码人类都是能看懂的,但是机器不care啊

所以,这个时候就需要一个应用程序去将人类的语言翻译成机器语言,就相当于人类的翻译官。

package org.example;

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello world");
    }
}


翻译之后如:

4.JVM(Java Virtual Machine) java虚拟机

4.1 JVM的定义

         JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。

4.2 JVM的作用:

        引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。

课外小知识

第一代计算机:

真空管和穿孔卡片(真空管易烧断、浪费计算机资源、串行)

第二代计算机(大型机):

晶体管和批处理系统(晶体管提高了计算机的可靠性)

第三代计算机:

集成电路芯片和多道程序设计技术 ( 不再需要人的参与,解决了人参与的耗时问题,基于通道技术实现了CPU和IO设备的并行)

第四代计算机:

大规模集成电路芯片,微处理器的发明导致了个人计算机(微型计算机)的普及

终章:Java中Hello world是如何打印出来的

经过以上及部分的了解,下面我们基于以上知识串一下 Hello world到底是如何打印出来的

1).预准备事项 

语言:JAVA

首先: 要又硬件  (CPU + 内存 + 外存 )

其次: 也要有软件 (  各种操作系统 )

最后: 还要有(Java Development Kit) Java 语言的软件开发工具包,JDK包含JVM

2).编译

以上都准备好之后,安装JDK,安装完之后,就该我们的HelloWorld.java出场了

package org.example;

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello world");
    }
}

之前说过,HelloWorld文件是人类识别的语言,可这玩意计算机不认啊,那咋办?

话不多说,请我们的翻译官javac上场,

javac HelloWorld.java

javac将java文件按计算机的要求翻译成计算机能识别的二进制语言,

在编译的过程中Java会有一些常规的校验,比如有咩有漏掉括号,分号之类的,

如果都通过,这个时候就会将.java文件编译成对应的.class文件

编译好之后,就静静的躺在硬盘上等着JVM的加载

3).启动

通过

java HelloWorld

启动HelloWorld程序,

在启动程序的过程中,

程序首先找到main方法,

启动JVM,

通过ClassLoader ( 类加载器 ) ,并以双亲委派机制,找到对应path下的class文件,将HelloWorld.class文件从硬盘经过一系列(loading -> linking -> initializing)的过程加载到JVM。

从而打印出Hello world这几个字符串。

这就是JAVA的第一行代码Hello world问世的过程。

俗话说不想当将军的士兵不是好士兵,那不想对技术进一步研究的程序员应该也不算一个好的程序员,对技术我们不仅要知其然,也要知其所以然,我这里抛砖引玉,后续也会不定期更新一些技术文章,希望能与大家一起探讨一些技术问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值