计算机、程序和Java概述
众所周知,一台计算机包括硬件(hardware)和软件(software)两部分,硬件包括计算机当中能够看得见的物理部分,而软件提供看不见的指令,这些指令控制硬件并且使得硬件完成特定的任务,这就是硬件和软件之间的联系。
-
计算机硬件
-
中央处理器(CPU——计算机的大脑。它是从内存中获取指令,然后执行这些指令)
-
内存(RAM——由一个有序的字节序列组成,用于存储程序及程序需要的数据)
-
输入设备(例如键盘、鼠标、摄像头、麦克风、扫描仪)
-
输出设备(例如显示器、音响、打印机)
-
存储设备(例如硬盘、光盘)
-
通信设备(例如网卡)
-
图形图像处理器(显卡GPU)
-
-
计算机软件(一系列按照特定顺序组织的计算机数据与指令的集合)
-
系统软件(操作系统 Windows Linux IOS Android MacOS)
作用:管理和控制底层硬件,为用户提供最基本的计算机功能。 -
应用软件(QQ、wechat等)
作用:主要解决特殊领域的问题。
-
-
计算机语言
-
机器语言(二进制)
-
汇编语言(将一些二进制用字母或数字表示)
-
高级语言(Java、Python、C/C++等)
-
用高级语言编写的程序称为源程序或源代码,但是我们都知道,计算机不能直接运行源程序,源程序必须被翻译成可执行的机器代码。这个翻译的过程可以由一种称为解释器或者编译器的编程工具来完成。
-
人机交互方式
- 图形界面(简单直观、易于接受、便于操作)
- 命令行方式(从控制台输入指令,让计算机完成相应操作)
-
一个简单的Java程序
public class Welcome{
public static void main(String[] args){
System.out.println("Welcome to Java!");
}
}
第一行定义了一个公共的类,类名叫做Welcome
第二行定义主方法,程序都是从main方法开始执行的,main方法就是程序的入口。一个程序可以有多个方法。
public 公共的,代表访问权限,一般默认是protected/private;
static静态的,代表函数类型,函数类型一般有static、native等;
void无返回值,代表返回值类型,但是不代表没有返回;
main函数名,这里必须为main,因为JVM只认main方法;
String字符串类,代表数据类型;
[ ]是数组 ;
args参数名,这个可以修改,之所以要有参数就是为了后面运行程序时可以传参数。
第三行是输出语句,输出“Welcome to Java!”
-
创建、编译、执行Java程序
一个Java程序的完整运行过程就如上图所示。简单来说就是,将Java源程序保存为.java文件,然后编译生成一个字节码文件(.class),字节码文件由Java虚拟机(JVM)执行,运行这个字节码文件,就得到程序的运行结果。当然,前提条件是你没有任何错误,这里不多做解释。在这里我主要想说一下Java虚拟机,其实,执行Java程序就是运行程序的字节码,只要你这个平台上面装有Java虚拟机,那么这个字节码就可以在你的平台上面运行,这就是Java的跨平台运行原理——一次编译,到处运行。
JAVA源代码(.java)——>JAVA字节码(.class)——>JVM解释执行
自己写的java代码被称为源代码,通过编译生成字节码文件,然后被JVM虚拟机解释执行。就好比如windows的虚拟机可以将字节码文件解释为能在windows平台上执行的指令并执行,Linux的虚拟机可以将字节码文件解释为能在Linux平台上执行的指令并执行,这二者执行的字节码都是同一个文件,这样就实现了跨平台。现在是不是觉得Java语言很神奇呢?