【Java学习笔记】Java技术概览 - 1

Java技术

Java既是编程语言也是软件平台,作为编程语言的Java有一套自己的机制,实现源程序到处理器可执行程序间的过渡与转换;作为软件平台,Java为程序提供了编程接口和Java虚拟机(Java Virtual Machine,JVM)。

认识Java语言

Java作为一种高级语言具有许多优良特性,如跨平台、面向对象、分布式、多线程、安全性、健壮性、简单性等。
在Java语言中所有源代码都可以通过无格式的记事本编写,并保存为.java文件,因为通过该扩展名,Java编译器会知道该文件是自己可以处理的文件。经过编译后的文件为.class文件,该文件是字节码文件,此时.class文件不能被处理器直接读取执行,必须通过虚拟机转换成二进制文件后,才可以被处理器执行。
在这里插入图片描述
Java是跨平台的高级编程语言,这里的平台是指操作系统平台,如Windows、UNIX、Mac、Linux等。使用Java语言编写的程序一次编译就可以在所有上述平台上运行,就是因为有Java虚拟机的存在。Sun公司(已被Oracle公司收购)提供了在各种操作系统平台上运行安装的Java虚拟机,Java虚拟机可以执行.class文件。这样也就实现了众所周知的“一次编译,随处运行”的理想。

认识Java平台

Java语言也是一种软件平台。平台可以理解为软件运行所需的软件或硬件环境,如操作系统可以看作软件平台,它提供了应用程序运行的环境,如在Windows XP操作系统上运行Word字处理程序。当然如果从用户的角度看,操作系统其实是软件和硬件相结合的综合平台,因为操作系统对硬件的操作该用户是看不见的,但是操作系统又确实管理并运行在硬件平台上。
而Java语言作为软件平台,为Java源程序编写和运行提供了完善的环境。但是该Java提供的软件平台不与硬件发生任何关系,该平台是纯软件平台,运行在操作系统上。不同的操作系统编写了相应的JVM。作为软件平台的Java由两部分组成:

  • Java虚拟机(Java Virtual Machine, JVM):Java虚拟机是Java软件平台的基础,基于不同操作系统的平台对应不同的虚拟机。
  • Java应用编程接口(Java API):API是一套编写好的软件组件的集合,这些API按照功能通过包(package)来提供,包就是一系列具有相似功能的类和接口的集合。

Java语言的功能

Java语言作为完善而强大的软件平台,每个版本的Java平台都会提供如下的功能或组件。

开发工具

开发工具提供了诸如编译、执行、调试、文档化等功能,使得开发人员可以通过这些工具来编译、调试自己的程序。初学者经常使用的Java工具有Javac源程序编译工具、Java程序执行工具和Javadoc源程序的文档化工具等。

应用编程接口(API)

Java API提供了Java语言的核心功能,开发人员可以直接调用这些方法或实现其中的接口来满足自己程序设计的需要,如需要对数据进行排序或搜索,Java提供了具体的类来实现,开发人员只要了解这些类的基本功能和类中的方法就可以调用这些功能。

用户接口工具集

其实这个工具就是提供如何编写用户接口程序(即GUI程序),为应用程序提供一个友好的用户界面,任何复杂的程序界面都可以通过该工具集中的类或接口实现。

集成类库

该类库提供了集成工具来完成复杂的行为,如Java为访问数据库提供了JDBC API;为实现远程方法提供了Java RMI,该方法实现了对网络远端的Java程序的调用,是Java实现分布式计算的重要基础。

Java语言的优点

Java语言与其他语言(如C++、Delphi、C#等语言)相比,有自己的优势,无论你学习Java的初衷如何,Java语言确实使你的程序更友好,并且减少了你的工作量。

入门更快

因为Java语言是一门强大的面向对象语言,所以只要理解面向对象技术(符合人类处理事情时的思维方式),就很容易学习这门语言。

代码量少,开发速度更快

同C++语言相比,同样的程序使用Java语言编写只需要较少的类和方法。Java语言比C++语言更简单,相同功能的程序需要更少的代码行。

编码更容易

Java语言提供良好的编码规范,使得Java语言编写的程序具有统一的“外表”,并且Java支持垃圾回收机制(GC),所以不会像C++中那样出现内存泄露的问题,这样开发人员就可以集中精力编写程序所需的类,而不用考虑何时、如何回收这些对象了,只要在需要时创建对象即可,其他操作都由GC处理。Java的面向对象特性、JavaBeans组件构架和功能强大的API,都使得开发人员可以容易地重用经过严格测试的代码,这些API的使用也减少了程序中的Bug的数量。

避免平台依赖,程序的平台独立性

JAVA语言编写的类库可以在其他平台上的Java应用程序中使用,而不像C++语言必须依赖于Windows平台。Java源程序被编译成字节码,字节码通过操作系统平台上的JVM来解释而获得运行,这样使用Java语言编写的程序不依赖于特定的平台,实现“一次编写,随处运行”。

Java分布式应用和多线程的特点

分布式包括数据分布和操作分布。数据分布是指数据可以分散在网络的不同主机上,操作分布是指把一个计算分散在不同的主机上处理。
Java支持客户机/服务器计算模式,因此它支持这两种分布。对于数据分布,Java提供了一个叫做URL的对象,利用这个对象,可以打开并且访问具有相同URL的对象,访问方式与访问本地文件系统相同。对于操作分布,Java的Applet小程序可以从服务器下载到客户端,即部分计算在客户端进行,提高系统执行效率。
Java提供了一整套网络类库,开发人员可以利用这些类库进行网络程序设计,方便地实现Java的分布式特性。
线程是操作系统的一种新概念,线程又被称作轻量进程,是比传统进程更加小的,并且可以并发执行的单位。C和C++采用单线程系统结构,而Java提供了多线程的支持。
Java在两方面支持多线程。一方面,Java环境本身就是多线程的。若干个系统线程运行,负责必要的无用单元回收、系统维护等系统级操作;另一方面,Java语言内置多线程控制,可以大大简化多线程应用程序的开发。
Java提供了一个Thread类,由它负责启动、运行、终止线程,并且可以检查线程状态。Java线程还包括一组同步原语,这些原语负责对线程实行并发控制。利用Java的多线程编程接口,开发人员可以方便地写出支持多线程的应用程序,从而提高程序执行的效率。Java的多线程在一定程度上受运行时所在平台的限制,如果操作系统不支持多线程,那么Java程序的多线程就不能表现出来。

Java程序的可靠性、安全性

Java最初的设计目的是针对电子类消费品中的应用,因此要求较高的可靠性。Java虽源于C++,但它消除了许多C++不可靠的因素,可以防止许多编程错误。
它的可靠性和安全性表现在如下几点:

  • Java是强类型的语言,要求显式的方法声明。这保证了编译器可以发现方法调用错误,保证程序更加可靠。
  • Java不支持指针,这杜绝了内存的非法访问。
  • Java的自动单元收集功能,可以防止内存“丢失”等动态内存分配导致的问题。
  • Java解释器运行时实施检查,可以发现数组和字符串访问的越界问题。
  • Java提供了异常处理机制。

由于Java主要用于网络应用程序开发,因此对安全性有较高的要求。如果没有安全保证,用户从网络下载执行程序就非常危险。Java通过自己的安全机制,防止了病毒程序的产生,以及下载程序对本地系统的威胁破坏。
当Java字节码进入解释器时,首先必须经过字节码校验器的检查,然后Java解释器将决定程序中类的内存布局。随后,类装载器负责把来自网络的类装载到单独的内存区域,避免应用程序之间相互干扰破坏。最后,客户端用户还可以限制从网络上装载的类智能访问某些文件系统。

Java小程序和应用程序

用Java可以写两种类型的程序:小程序和应用程序。小程序就是嵌入在网页文档中的Java程序,而应用程序就是在命令行中运行的程序。对Java而言,对小程序的大小和复杂性都没有限制。事实上,Java小程序有些方面比Java应用程序更加强大。目前,由于Internet的通信速度有限,因此大多数小程序规模较小。小程序和应用程序之间的技术差别就在于运行环境。
Java应用程序运行在最简单的环境中,它的唯一外部输入就是命令行参数。而Java小程序需要来自Web浏览器的大量信息,它需要知道何时启动、何时放入浏览器窗口、何处和何时激活与关闭等。由于这两种不同的执行环境,小程序和应用程序的最低要求不同。

猜你喜欢

转载自blog.csdn.net/htsait4113/article/details/84256608