机器语言是用二进制代码表示的、计算机能直接识别和执行的一种机器指令的集合。它是计算机的设计者通过计算机的硬件结构赋予计算机的操作功能。机器语言具有灵活、直接执行和速度快等特点。不同种类的计算机的机器语言是不相容的,按某种计算机的机器指令编制的程序不能在另一种计算机上执行。
要用机器语言编写程序,编程人员需首先熟记所用计算机的全部指令代码和代码的涵义。编写程序时,程序员要自己处理每条指令和每一数据的存储分配和输入输出,还需记住编程过程中每步所使用的工作单元处在何种状态。这是一件十分繁琐的工作,编写程序花费的时间往往是实际运行时间的几十倍或几百倍。而且,这样编写出的程序完全是0与1的指令代码,可读性差且容易出错。在现今,除了计算机生产厂家的专业人员外,绝大多数程序员已经不再学习机器语言。
1.2、汇编语言汇编语言使用助记符来代替和表示特定的机器语言的操作,是机器语言的符号化表示。特定的汇编目标指令集可能会包括特定的操作数。许多汇编程序可以识别代表地址和常量的标签和符号,这样就可以用字符来代表操作数而无需采取写死的方式。普遍地说,每一种特定的汇编语言和其特定的机器语言指令集是一一对应的。
在今天的实际应用中,它通常被应用在底层硬件操作和高要求的程序优化的场合。驱动程序、嵌入式操作系统和实时运行程序中都会需要汇编语言。
1.3、高级语言高级语言按照不同的编程范式,可以分为面向过程的语言和面向对象的语言:
-
面向过程的语言
面向过程的语言也称为结构化程序设计语言。在面向过程程序设计中,问题被看作一系列需要完成的任务,函数则用于完成这些任务,解决问题的焦点集中于函数。它的主要观点是采用自顶向下、逐步求精的程序设计方法,使用三种基本控制结构构造程序,即任何程序都可由顺序、选择、循环三种基本控制结构构造。
-
面向对象的语言
面向对象程序设计(Object-oriented programming,缩写:OOP)是种具有对象概念的编程典范,同时也是一种程序开发的抽象方针。它可能包含数据、特性、代码与方法。对象则指的是类(class)的实例。它将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的重用性、灵活性和扩展性,对象里的程序可以访问及经常修改对象相关连的数据。在面向对象程序编程里,计算机程序会被设计成彼此相关的对象。
Java的历史要追溯到1991年,由James Gosling带领的Sun公司的工程师小组想要设计一种小型的编程语言,主要用于像有线电视转换盒这类消费设备。由于这些设备的处理能力和内存都很有限,所以语言必须非常小且能生成非常紧凑的代码。另外,由于不同的厂商会选择不同的中央处理器,因此很重要的一点是这种语言不应与任何特定的体系结构绑定。这个项目被命名为Green。
代码短小、紧凑且与平台无关,这些要求促使开发团队设计出一个可移植的语言,可以为虚拟机生成中间代码。
不过,Sun公司的人都有UNIX的应用背景。因此,所开发的语言以C++为基础。不过,就像Gosling在专访中谈到:毕竟,语言只是实现目标的工具,而不是目标本身。Gosling把这种语言称为Oak(这么起名大概是因为他非常喜欢自己办公室窗外的一棵橡树)。Sun公司的人后来发现,Oak是一种已有的计算机语言的名字,于是,将其改为Java,Java是很太平洋上的一个盛产咖啡的岛屿的名字。事实证明这是一个很有灵感的选择。
但是,由于一些非技术原因(市场原因),Java语言并没有得到迅速的推广。直到1993年,万维网迅速发展,Sun公司发现可以利用Sun语言的技术来创造含有动态内容的WWW网页,于是已受人冷落的Java语言又被重新开发和改造。终于,在1995年,Java这个被定位于网络应用的程序设计语言被正式推出。
- 1996年,Sun发布了Java的第1个版本,这是Java的第一个公开发行版;
- 1997年,Sun公司发布了Java 1.1版本,这一版本弥补了1.0版本大多明显的缺陷,大大改进了反射能力,并为GUI编程增加了新的事件处理模型;
- 1998年,Sun公司发布了Java 1.2版本,并将其改名为更加吸引人的Java 2标准版软件开发包1.2版。除了标准版外,Sun公司还推出了两个其他版本:一个是用于手机等嵌入式设备的微型版(Micro Edition);另一个是用于服务器端处理的企业版(Enterprise Edition);
- 标准版的1.3和1.4版本对最初的Java 2版本做出了增量式的改进,提供了不断扩展的标准类库,提高了性能;
- 2004年,Sun公司发布了Java 5.0版本,这是自1.1版以来第一个对Java语言做出重大改进的版本,添加了泛型,for each循环,自动装箱和注解等功能;
- 2006年,发布了Java 6,没有对语言方面进行修改,而是做了其他的性能改进,并增强了类库;
- 2009年,Sun公司被Oracle公司收购;
- 2011年,Oracle公司发布了Java 7,其中只做了一些简单的改进;
- 2014年,Java 8发布,在近20年中,这个版本发生的改变最大。Java 8包含了一种函数式编程方式,可以很容易地表述并发执行的计算;
- 2017年,Java 9发布,引入了模块;
从2018年开始,每六个月就会发布一个Java版本,以支持更快地引入新特性。某些版本设计为长期支持版本(比如Java 11和Java 17)。
3、Java的应用场景 4、Java语言的特点 4.1、面向对象面向对象是一种程序设计技术。面向对象程序设计语言的核心之一就是开发者在设计软件的时候可以使用自定义的类型和关联操作。代码和数据的实际集合体叫做对象。一个对象可以想象成绑定了很多行为(代码)和状态(数据)的物体。对于数据结构的改变需要和代码进行通信然后操作,反之亦然。面向对象设计让大型软件工程的计划和设计变得更容易管理,能增强工程的健康度,减少失败工程的数量。Java语言最吸引人之处,就在于它是一种以对象为中心、以消息为驱动的面向对象的编程语言。面向对象的语言都支持封装、继承和多态三个概念,Java语言也是如此。
4.2、跨平台性跨平台性是Java主要的特性之一,跨平台使得用Java语言编写的程序可以在编译后不用经过任何更改,就能在任何硬件设备条件下运行。这个特性经常被称为一次编译,到处运行。跨平台性包括源代码级的跨平台性和目标代码级的跨平台性,Java通过JVM实现了目标代码级的跨平台性。
4.3、自动垃圾回收Java中对象的创建和放置都是在存储器堆栈上面进行的。当一个对象没有任何引用的时候,Java的自动垃圾收集机制就发挥作用,自动删除这个对象所占用的空间,释放存储器以避免存储器泄漏。但是存储器泄漏并不是就此避免了,当程序员疏忽大意地忘记解除一个对象不应该有的引用时,存储器泄漏仍然不可避免。
4.4、解释与编译并存Java语言的编译器并不是把源文件(.java)编译成二进制码,而是将其编译成一种独立于机器平台的字节码文件(.class文件)。字节码文件可以被Java解释器执行,由解释器将字节码文件再翻译成二进制码,使程序得以运行。
- JDK(Java Development Kit):Java开发工具包,编写Java程序的程序员使用的软件;
- JRE(Java Runtime Environment):Java运行时环境,运行Java程序的用户使用的软件;
- Java最常用的集成开发环境:IDEA,Eclipse;
// filename: HelloWorld.java
public class HelloWord {
public static void main(String[] args) {
System.out.println("Hello, world!");
}
}
- Java程序中定义类使用关键字class,每个类的定义由类头定义和类体定义两部分组成;
- Java区分大小写;
- main方法是Java程序执行的入口;
- public是访问修饰符,用于控制程序的其他部分对这段代码的访问级别;
- Java中任何方法的代码都以{开始,以}结束。
- 在网页中运行的Java程序称为applet。要使用applet,需要一个启用了Java的Web浏览器,它会为你执行字节码;



