认识java
一、 JAVA的起源
1. 起源
JAVA源于1991年SUN公司一个未中标的项目“GREEN”,当时只是为了设计一种小型的计算机语言,主要用于像有线电视转换盒这类的消费设备。由于这些消费设备的处理能力和内在都很有限,所以语言必须非常小且能够生成比较紧湊的代码。而且不同商家的CPU都不同,所以这个语言的关键就是不能与特定的体系结构捆梆在一起,当时叫这种语言为“Oak”,也就是JAVA的前身。
二、 JAVA的特点
1. 简单性
简单性是从两方面理解的,第一是语言方面,JAVA删除了C++中很少使用,难以理解,易混淆的特性(没有头文件,指针运算,指针语法,结构,联合,操作符重载,虚基类等等)。第二方面是小,能够在小型机器上独立运行,基本的解析器只有四十K。
2. 面向对象
面向对象设计重点放在接口方面。怎么理解面向对象呢,就像一个制作蛋糕的师傅,一个“面向对象”的蛋糕师关注的是所制作的蛋糕;一个“非面向对象”的蛋糕师关注的是制作蛋糕的工具。
JAVA和C++在面向对象方面有很大的想同性,不同的是JAVA没有多继承,取而代之的是接口。
3. 分布式
分布式就是研究如何把一个需要非常巨大的计算能力才能解决的问题分成许多小的部分,然后把这些部分分配给许多计算机进行处理,最后把这些计算结果综合起来得到最终的结果。
JAVA强大的网络功能为分布式提供了强大的支持,比如类似SOCKET等复杂编程都变得很简单,远程调用机制使得分布式对象之间可以进行通信。
4. 健壮性
JAVA编译器能够检测出很多其它语言只能在运行才能检测出来的问题。
相对于C++,JAVA没有指针的语法,不用通过指针来构造数组,串等,同时在比如需要使用数据结构(比如链表)时具有指针的能力,却不会存取一个坏的指针,保护内存的安全。
5. 安全性
由于JAVA主要用于分布式等网络环境,所以在安全方面投进了大量的人力物力,远远比Active X安全得多。
JAVA设计了多种防范手段:
禁止运行时堆栈溢出。例如,蠕虫等病毒常用的袭击手段。
禁止在自己的处理空间之外破坏内存。
未经授权禁止读写文件。
分配不同的名字空间以防替代本地的同名类、字节代码检查
6. 体系结构中立
JAVA编译器把程序编译成为体系中立的代码—字节码(CLASS文件),在任何操作系统,只要JVM都可以运行。
7. 可移植性
JAVA除了用JVM使它能在任何系统运行,而且它消除了其它语言在不同硬件环境数据大小的不固定,它无论在哪种环境数据类型的大小都相同,比如int永远是32位。
8. 解释型
现在来理解一下解释型,高级语言不能被计算机理解,要翻译成机器语言才能运行。而翻译分为编译和解释两种。
编译性语言写的程序在运行前,需要一个编译过程,把程序编译成为机器机器语言的文件,比如EXE文件,以后运行不用再翻译,直接运行编译结果就行了,因此只翻译一次就够了,运行时不再需要翻译,所以说编译型语言运行效率高一点。
解释型语言则是不需要编译,它是在程序需要运行时才翻译的,也就是说每次运行程序都要翻译一次。
而JAVA严格来说是一种又要编译又解释的语言,不同的是它编译成的不是机器码,而是字节码,然后字节码在JVM上解释运行。
9. 高性能
高性能这个词第一次看觉得没有什么可能,因为解释型语言在运行效率上还是远远的不如编译语言,然而现今在一些平台已经出现一种叫做“即时编译器”,也就是一次性把字节码编译成本地机器码,并缓存起来,这种方式也只是解释一次,大大地提高了运行速度,当然没有真正的编译程序速度快,但比一般的解释型程序快上好多倍,而且从综合性能上可能超过了编译型程序。
10. 多线程
多线程是JAVA一大亮点,它非常简单了实现多处理器,单处理器的多线程,在JAVA中实现多线程只是调用多线程代码就行。
11. 动态性
Java语言的设计目标之一是适应于动态变化的环境。Java程序需要的类能动态地被载入到运行环境,也可以通过网络来载入所需要的类。
三、 JAVA与INTERNET
提到JAVA,一般人都会想起网络,很多人也错误的理解JAVA是一种网络语言,那JAVA与INTERNET有什么联系呢?
JAVA与INTERNET的联系主要是从现今WEB开发的流行开始,在WEB运用上JAVA在各个层次都起了重大的作用,不过已经从开始的客户端转移到服务端了。
在客户端方面只要有APPLET,APPLET是从INTERNET下载JAVA字节码然后在浏览器上运行,由于网络的带宽的限制,所以给它的运用带来了不便,也没有给它带带来更大的成功。不过在内网里面没有带宽的限制,所以在企业内部得到了广泛的运用。
在服务端方面的运用已经是JAVA的重点,多线程,自动连接池等等的技术。
四、 对JAVA理解的问题
1. 为什么JAVA语法上和C++那么相同呢,是不是C++的升级?
由于开发JAVA语言的小组的成员都有UNIX背景,所以开发的语言以C++为基础,所以在语法上与C++相似。C++和JAVA是由不同人创建,是两种不同的语言,根本谈不上JAVA是C++的升级。
2. JAVA与HTML有什么关系?
JAVA是一种程序设计语言,而HTML是一种描述网页结构的方式,除了APPLET能放在HTML中,两者就谈不上有什么联系了。
3. JAVA与XML有什么关系?
JAVA是一种程序语言,XML是一种数据描述方式,只能有用一种语言来处理XML,而且有些XML是用JAVA编写的。
4. JAVA与JAVASCRIPT有什么关系?
JAVASCRIPT是一种网页中使用的脚本语言,它是由NETSCAPE发明的,原来的名字叫做LiveScript。它与JAVA的联系只是名字相似,语法类似,其它两者之间没有任何的关系。