1. 初始 Java

1.1 Java 概述

1.1.1什么是 Java

Java是一种优秀的程序设计语言,它具有令人赏心悦目的语法和易于理解的语义。

不仅如此,Java还是一个有一系列计算机软件和规范形成的技术体系,这个技术体系提供了完整的用于软件开发和跨平台部署的支持环境,并广泛应用于嵌入式系统、移动终端、企业服务器、大型机等各种场合。

1.1.2 Java 背景

Java 是美国sun公司在1995年推出的一门计算机高级编程语言。

Java 早期称为Oak(橡树),后期改名Java。

Java 之父:詹姆斯·高斯林(祖师爷)。

2009年 sun公司被 Oracle(甲骨文)公司收购。

1.1.3 为什么使用 Java

世界上最流行的编程语言之一,在国内使用最为广泛的编程语言

可移植性、安全可靠、性能较好

开发社区最完善、功能最丰富

1.1.4 Java能做什么

桌面应用开发

企业级应用开发

移动应用开发

服务器系统

大数据开发

游戏开发

1.1.5 Java 技术体系

技术体系 说明

Java SE:标准版 Java技术的核心和基础

Java EE:企业版 企业级应用开发的一套解决方案

Java ME:小型版 针对移动设备应用的解决方案

1.1.6 Java 发展史

1.1.7 Java的主要特征

以下 Java 特性来自 Java 白皮书

简单性:

Java 语言的语法与C语言和C++语言很接近,使得大多数程序员很容易学习和使用,另一方面,Java 丢弃了C++中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换。特别地,Java语言不使用指针,而是引用。并提供了自动的废料收集,使得程序员不必为内存管理而担忧。

面向对象:

Java语言提供类、接口和继承等面向对象的特性,为了简单起见,只支持类之间的单继承,但支持接口之间的实现机制(关键字为implements)。Java语言全面支持动态绑定,而C++语言只对虚函数使用动态绑定。总之,Java语言是一个纯的面向对象程序设计语言

分布式:

Java有一个丰富的例程库,用于处理像 HTTP 和FTP之类的TCP/IP协议。

Java应用程序能够通过URL打开和访问网络上的对象,其便捷程序就好像访问本地文件一样。

健壮性:

Java 的设计目标之一在于使得 Java 编写的程序具有多方面的可靠性。Java 非常强调进行早期的问题检测、后期动态的(运行时)检测,以及消除容易出错的情况… Java 与C/C++ 最大的不同在于Java 采用的指针模型可以消除重写内存和损坏数据的可能性。

安全性:

Java 要适用于网络/分布式环境。为了实现这个目标,安全性颇受重视。使用Java 可以构建放病毒、防篡改的系统。

Java 设计能够防范各种攻击,其中包括:

运行时堆栈溢出,这是蠕虫和病毒常用的攻击手段。

破坏自己的进程空间之外的内存,

未经授权读写文件

体系结构中立:

Java程序(后缀为java的文件)在Java平台上被编译为体系结构中立的字节码格式(后缀为class的文件),然后可以在实现这个Java平台的任何系统中运行。这种途径适合于异构的网络环境和软件的分发。

可移植性:

Java程序(后缀为java的文件)在Java平台上被编译为体系结构中立的字节码格式(后缀为class的文件),然后可以在实现这个Java平台的任何系统中运行。这种途径适合于异构的网络环境和软件的分发

解释型:

如前所述,Java程序在Java平台上被编译为字节码格式,然后可以在实现这个Java平台的任何系统中运行。在运行时,Java平台中的Java解释器对这些字节码进行解释执行,执行过程中需要的类在联接阶段被载入到运行环境中。

高性能:

与那些解释型的高级脚本语言相比,Java的确是高性能的。事实上,Java的运行速度随着JIT(Just-In-Time)编译器技术的发展越来越接近于C++

多线程:

在Java语言中,线程是一种特殊的对象,它必须由Thread类或其子(孙)类来创建。通常有两种方法来创建线程:其一,使用型构为Thread(Runnable)的构造子类将一个实现了Runnable接口的对象包装成一个线程,其二,从Thread类派生出子类并重写run方法,使用该子类创建的对象即为线程。值得注意的是Thread类已经实现了Runnable接口,因此,任何一个线程均有它的run方法,而run方法中包含了线程所要运行的代码。线程的活动由一组方法来控制。Java语言支持多个线程的同时执行,并提供多线程之间的同步机制(关键字为synchronized)

动态性:

Java语言的设计目标之一是适应于动态变化的环境。Java程序需要的类能够动态地被载入到运行环境,也可以通过网络来载入所需要的类。这也有利于软件的升级。另外,Java中的类有一个运行时刻的表示,能进行运行时刻的类型检查

因此:Java不仅仅是一门编程语言,也是一个由一些列计算机软件和规范组成的技术体系。