JAVA语言程序设计(第三版 第一章 绪论)
文章目录
第一章 绪论
1.前言
马上要期末考试(2020.12月),也是到复习的时候了,所以决定借此机会开始总结前面所学的知识点并分享出来,如有不足还请DL指点。
2.Java是什么?
Java是一种编程语言
Java是一种技术体系
我们都知道C语言是面向过程的,Java和C++是面向对象的编程语言。
面向对象=对象+对象+……
优点:可扩展性强,维护成本低。
缺点:新手上手难。
面向过程=算法+数据结构
优点:简单。
缺点:代码量大,后期维护性差。
java与.net是web开发的两大阵营,java实现了真正的跨平台性,.net由于是非开源的,跨平台性支持性并不好,只能够在Windows环境稳定运行。
3.为什么要学Java?
- 1.掌握面向对象设计的基本概念、原理和特征.
- 2.掌握基于Java的对象设计思想和技术。
- 3.掌握Java语言及开发工具的使用方法,并能自主开发较为复杂的程序.
- 4.掌握Java常用的高级应用技术.
- 5.为进一步学习Java的高级技术打下基础.
4.Java概述
封装只是认为隐藏了数据和方法,很少有人提到隐藏了具体实现。
机器语言(machine language)是一种指令集的体系,这种指令集称机器码(machine code),是电脑CPU可直接解读的数据。
5.Java三大技术体系
6.Java SE
- 提供桌面和工作组级应用的开发和运行环境
- 以前称为JDK1.2(J2SE)
- Java SE的实现包括:Java SE Development Kit(JDK),Java Runtime Environment(JRE)
- Java SE是Java EE和Java Web Service技术基础
7.Java SE 相关术语
- Java开发工具包(JDK/SDK)
JDK是整个Java的核心,包括了Java的运行环境(JRE),各种Java工具(javac、java、jdb等)和Java基础的类库(即Java API 包括rt.jar)。- Java运行环境(JRE)
Java平台,所有的Java程序都要在JRE下才能运行。包括JVM和Java核心库和支持文件。与JDK相比,它不包含开发工具——编译器、调试器和其他工具。- Java虚拟机(JVM)
JVM是JRE的一部分,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。- 应用程序编程接口(API)
8.Java SE组成
如果对JVM、JRE和JDK还不明白可以参考我之前写的这篇文章。
JVM、JRE和JDK三者之间的联系与区别
9.Java ME
- 针对消费类电子设备如手机,电视置顶盒,汽车导航系统等的嵌入式计算的一组技术和规范。
-语言精简,运行环境高度优化。
10.Java EE
- 开发企业级和服务端的应用
- J2SE+Enterprice JavaBeans(EJB), Java Servlets API + Java Server Pages(JSP).
11.Java特征
11.1简单性
- Java语言句法和语义都比较单纯,来自C++容易学习和使用
- Java对C++中容易引起错误的成分进行成功改造
1 .去掉指针,取消多重继承和运算符重载
2.设立自动内存回收:内存管理由程序员移向Java内嵌的自动内存回收机制等,从而简化语义,减少出错机会,减轻程序员负担
3.Java还提供了大量功能丰富的可重用类库,简化了编程工作量
11.2 面向对象
Java 是最“纯洁”的面向对象语言,对面向对象方法学的支持也最全面:
- 与C++一样,Java的对象有模块化性质和信息隐藏能力,满足面向对象的封装要求;
- 支持继承;
- 支持多态(通过抽象类、接口(interface)、方法重载和重载来实现)
11.3 半编译,半解释
- 半编译:
采用编译器对程序进行编译,但编译得到的是一种中性的字节码,并不是本机代码,编译没有进行彻底,所以称为“半编译”;- 半解释:
字节码的执行采取解释执行方式,这种解释执行与传统的解释执行的差别是:不是以源代码为输入的,而是以程序编译后产生的字节码为输入,所以称为“半解释”。
优点:- 兼具编译执行的效率优势和解释执行的灵活性;
- 提高了应用程序的可移植性:源程序、中间代码
11.4可移植性
- 一次编程,到处运行
- 可移植性源于两方面:
①Java的半编译,半解释的特征
②Java采用标准的独立于硬件平台的数据类型
11.5 安全性
在语言和运行环境中引入了多级安全措施:
- Java的内存分配和引用模型对于程序员透明,完全由底层的运行系统控制;
① 内存布局与C、 C++不同,不是由编译器决定,而是运行系统根据所在的硬件平台的特性决定;
②取消了C、C++的指针,JAVA编译器通过符号指针来引用内存,由JAVA运行系统在运行时将符号指针具体解释为实际的内存地址。- 字节码验证
运行系统引入字节码验证器,其中包含简单的规则验证程序,以确保遵循下列规则:
①不存在伪造的指针;
②未违反访问权限;
③严格遵循对象访问规范来访问对象;
④合适的参数调用方法;
⑤没有栈溢出。
11.6 多线程
- JAVA在语言级嵌入对并发的支持功能,具体机制就是多线程。线程是比进程更小、更经济的并发执行单位,不拥有单独的内存空间。
- JAVA中线程的同步采用C.A.R.Hoare的临界区保护规则。
- JAVA线程执行中被映射到实际的操作系统线程。
这意味着做多机环境下,可以真正实现并行。
11.7 动态特性
JAVA程序的基本组成单元 —— 类是运行时动态装载的。使JAVA可以动态地维护应用系统及其支持类之间的一致性。
12.Java运行系统的构成级运行过程
12.1 运行系统的构成
- 类装配器
- 字节码验证器
- 解释器
- 代码生成器
- 运行支持库
12.2 程序运行过程
13. 核心类包
java.lang – JAVA语言的核心类组成,包括了基本数据类型和出错处理方法等。
- java.io – JAVA语言的标准I/O库
- java.util– 包括集合类,日期时间相关的类等。
- java.net– 提供实现网络应用所需的类。
- java.awt–(Abstract Window Toolkit)提供创建用户界面,绘制图形图像所需的类。
- java.awt.event–提供图形用户界面中事件处理相关的类。
这里接下一篇 第二章 面向对象程序设计基本概念
JAVA期末复习知识点总结(二)
纸上得来终觉浅,绝知此事要躬行。