++采用直接地址访问方式。需要程序员记录并管理内存资源。这造成程序员编程的极大负担,并可能产生多个Bugs。面包机上的程序错误可能使面包机烧坏甚至爆炸。
为了解决此类问题,Gosling决定开发一种新的语言,并取名为Oak。它采用了大部分与C++类似的语法对可能具备危险性的功能加以改进,例如将内存管理改为由语言自己进行管理,以减少程序员的负担及可能发生的错误。Oak是一种可移置的语言,它是一种平台独立的语言,能够在各种芯片上执行,可以降低设备的研发成本。
1.2.2 Java的特点
Java是一种简单、安全、容易适用、面向对象、可移置、高性能、多线程的语言。
1. 简单性
Java语言简单高校,基本Java系统(编译器和解释器)所占空间不足250KB由于Java最初是为了对家用电器进行集成控制而设计的,因而具备简单命了的特征。
2. 面向对象
面向对象技术是现代工业的一次革新,提高了软件的模块化程度和重复适用率,缩短了软件开发时间,减低了卡发成本。在Java之前虽然已经有面向对象的程序设计语言问问世,但有些如c++并不是完全的面向对象,而是面向过程和面向对象的混合体。Java则是完全面向对象的程序设计语言。
3. 安全性
Java是可以用在网路及分布环境下的网路程序设计语言。在网路环境下,语言的安全性变得更为重要。Java提供了许多安全机制来保证其适用上的安全性。
4. 平台独立
平台独立指程序不受操作平台的限制,可以应用在各种平台上。Java源程序经过编译后生成字节码文件,而字节码与具体的计算机无关。只要计算机安装了能解释执行字节码的Java虚拟机JVM,就可以执行字节码文件,从而实现Java的平台独立性。
5. 多线程
Java具备内建的多线程功能,可以将一个程序的不同程序段设置为不同的线程,使各线程并发、独立执行,提高系统的运行效率。
6.网络功能
Java能从全球网络资源获取所需信息,如数据文件、影响文件、声音文件等,并对所得信息进行处理,所以说Java是一种网络语言。
7.执行效率
Java的字节码需要经过Java虚拟机JVM解释成机器码才能执行,所以速度上较慢。但是随着JVM技术的进步,使得其执行速度直逼C与C++。
1.2.3 Java与Internet
Java语言取得成功的领域之一就是网络(其他语言)数页代码---->(Java)一条语句。TCP/IP(传输控制协议/网间协议)是internet的主要协议,定义了计算机和外设进行通信所使用的规则(应用层,传输层,网络层,链路层).大多数基于internet的应用程序被看作TCP/IP协议的上一层. 如 : ftp, http, smtp, pop3, telnet, nntp等。
IP地址:TCP/IP网络中的每台计算机都有唯一的地址--IP地址.
在Java中,有一个用来存储internet地址的类叫InterAddress.
Java提供的网络功能有三大类: URL, Socket, Datagram.
1、URL是三大功能中最高级的一种,通过URL Java程序可以直接送出或读入网络上的数据.
2、Socket是传统网络程序最
常用的方式,可以想象为两个不同的程序通过网络的通信信道.
3、Datagram是更低级的网络传输方式,它把数据的目的纪录在数据包中,然后直接放在网络上
1.3 Socket编程
1.3.1 关于TCP/IP协议
TCP协议是网络通信的基石,对此,Java专门提供了Socket的类库,在其中抽象出TCP协议通信的常用方法:
TCP协议与三次握手:
在讲述TCP协议流程前,先来声明两个重要的概念:
(1)客户端,首先发送TCP请求的是客户端,客户端一般是服务(比如数据
查询服务)的请求者。
(2)服务器,在接收到客户端的请求后(确保同客户端的通信信道建立)服务器会向客户端提供服务。服务器一般是服务的执行者,会向客户端返回服务执行的结果。
为了实现客