Java前奏

 

   差不多有一年没碰JavaSE了,这篇也是寒假回头复习的时候做的,算得上笔记吧,呵呵。希望能对Java感兴趣的人起些敲门砖的作用。 

   我是从大一下学期才接触JavaSE的,在接触ME之前时,压根就不知道Java原来还有分这么多模块。上第一堂课时,主讲老师并没有介绍Java的用途方面,只是一昧的在跟我们介绍Java是“面向对象”的语言,解释的我们当时几乎全军覆没。后来还是自己逼自己买书自学才懂那么些Java语法... 其实,个人认为要一个人对于一个陌生的语言有8分热度,首先你得清楚它能让我们干什么,这样在以后碰到遇到困难时,就会有激情去解决它,而不会使我们内心产生恐惧感...如果你是Java新手,如果你支持我的看法,那么请读完它吧  

 

     1.1  Java语言的发展史     

  

  Java语言最早诞生于1991年,刚开始只是Sun公司为一些消费性电子产品所设计的通用产品。为了使整个系统与平台无关,采用了虚拟机器码( Virtual  Machine  Code )方式,虚拟机运行在一个解释器上,每一个操作系统均有一个解释器。

Java出现以前,Internet上的信息内容都是一些静态的HTML文档。正是因为在Web中看不到交互式的内容,所以人们很不满意当时的Web浏览器,迫切的希望能够在Web上创建一类无须考虑软、硬件平台就可以执行的应用程序,并且这些程序还要有极大的安全保障。正是由于这种需求给了Java带来了前所未有的施展舞台。

 

     1.2 Java语言的特性

 

     1. 简单高效

   Java语言提供了很多的功能实现库,很多代码只需要简单修改便可以很轻松地应用到其他的软件产品中,大大提高了代码的重用率,所短了开发的时间,提高了开发软件

的效率.

 

     2. 面向对象

  世界万事万物皆是对象。在面向对象方面,Java语言比其他面向对象的编程语言更“纯”,所有的数据类型都有相应的类,完全可以用面向对象的方式来编写。 

 

     3. 网络分布计算

   Internet的出现,为网络计算机提供了一个良好的信息共享和信息交流平台。然而,要充分利用网络来处理各种信息,不同操作系统平台具有的不同的运行环境是一个严

重的制约,Java技术的出现为解决网络分布计算提供了最佳途径。 

     4. 健壮性

   Java虚拟机系统会在编译时对每个Java程序进行合法检查,以消除错误的产生。在运行时如果碰到出乎意料的事情,Java也可以通过异常处理机制,将异常抛出,并由相

应的程序进行处理。

 

     5. 安全性

   用于网络分布环境下的Java产品必须要防止病毒的入侵。Java语言的安全是因为它不支持指针,并提供了字节码的校验机制,禁止在自己的处理空间之外破坏内存。

 

     6. 跨平台

  Java源程序通过Java解释器解释后会产生于源程序对应的字节码指令,只要在不同的平台上安装配置好相应的Java的运行环境,Java程序就可以随处运行。

 

     7. 并发性

   Java内建了对多线程的支持,多线程机制的引入使Java程序的运行效率大大提高。同时也保证了对共享数据的安全操作。通过使用多线程,程序设计者可以分别用不同的

线程完成特定的功能,而不需要采用全局的事件循环机制,这样就可以很容易得实现网络上的实时交互行为。 

     8. 动态扩展

   Java语言是一个不断发展的优秀编程语言。它的类库可以自由的加入新的方法和实例变量而不会影响到用户程序的执行,并且通过接口机制改进了传统多继承的缺点,

使之比严格的类继承具有更灵活的方式和动态扩展等。 

 

     1.3  Java的竞争对手

 

     1.3.1      Java与CC++对比

 

    1) 全局变量

   在Java编程中,不能在类之外定义全局变量;而在CC++中,依赖于不加封装的全局变量常常造成系统的崩溃 。

 

    2) 剔除goto关键字

   虽然Java中保留了goto关键字,但是Java不支持CC++中的goto语句,而是通过异常处理语句try、catchfinal等来代替CC++中用goto语句来处理遇到错误跳转的情况,使程序更易读且更结构化

 

    3) 良好的指针控制

   在学习CC++语言进行的编程中,通过指针所进行的内存地址操作常常会造就不可预知的错误,同时通过指针对某个内存地址进行显式类型转换后,可以访问一个CC++中的私有成员,从而破坏安全性,造就系统的崩溃。 而Java语言对指针进行完全的控制,程序员不能直接进行任何指针操作。同时,数组作为类在Java中实现,较好得解决了数组访问越界这一问题。

 

    4) 自动内存回收

    一般内存资源有限,很容易被程序破坏。在C中,程序员通过库函数malloc()和free()来分配和释放内存;在C++中则通过运算符new和delete来分配和释放内存。对于二者,再次释放已释放的内存块或未被分配的内存块,会造成系统的崩溃;同样,忘记释放不再使用的内存块也会逐渐耗尽系统资源。而在Java中,所有的数据结构都是对象,通过运算符new为它们分配内存堆。通过运算符new可以得到对象的处理权,而实际分配给对象的内存可能随程序运行而改变,Java对此自动地进行管理并且进行垃圾收集,有效防止了由于程序员的误操作而导致的错误,更好地利用了系统资源。

  

    5) 固定的数据类型

   在CC++语言中不同数据类型在不同的平台上所占的位数不一样,导致了代码的不可移植性。但在Java中,对于这些数据类型都采用国际统一字符码,即分配固定长度的位数,保证了Java的平台无关性。

 

    6) 严格控制数据类型转换

   一种数据类型得到数据转换成另外一种数据类型的数据时,常常会出现数据精度丢失的问题。在CC++,通过指针进行任意的数据类型转换极不安全;而在Java中,运行时系统对对象的处理要进行类型相容性检查,以防止不安全的转换。

 

    7) 库文件

   编程语言中丰富的库文件能快速得开发出各种应用软件。CC++中用头文件来声明类的原型以及全局变量、库函数等,在大的系统中,维护这些头文件是很困难的;而Java不支持头文件,类成员的类型和访问权限都封装在一个类中,运行时系统对访问进行控制,防止对私有文件的操作。同时,Java用import语句来与其他类进行通信,以便使用它们的方法。

 

    8) 类与结构和联合体

   C、C++中的结构体和联合体中的所有成员均为共有,这就带来了安全性问题;Java中不包含结构体和联合体,所有的内容都封装在类中。

 

     1.3.2    Java与C#的对比

      Java语言是开放式的世界语言,基本源代码都公开;而C#作为Microsoft的一门主打的语言也不甘示弱,一个开源,一个收费。二者的不同点注意体现在:C#Microsoft的支持下提供了强大的Visual  Studio开发平台,可以很好的提高C#程序的开发效率,而且C#更善于利用Windows平台;Java的设计宗旨是独立于任何平台,因此自然不会提供太多的Windows特性,但这也体现了Java语言的跨平台优势。一般的企业级应用,是无法确定这个应用是在怎样的平台上运行。因此,企业级开发一般选择Java作为开发语言。 

     1.4. Java平台的体系结构

 

        作为功能强大的编程语言,Java发展到今天按其应用可以分为三个版本,分别是JavaSEJavaEEJavaME,这也就构成了Java

   台体系结构。

 

      1.4.1    Java SE  标准版

      Java SE(Java Platform, Standard Edition)标准版是各种应用平台的基础,主要应用于桌面开发和低端商务应用的解决方案。

    Java SE 1.4 1.5以后的版本有很大的区别,大多数开发人员都使用1.6版本。

 

      1.4.2    Java EE  企业版

   Java EE(Java Platform, Enterprise Edition)企业版是以企业为环境而开发应用程序的解决方案,这个版本以前称为J2EE。 企业

版本帮助开发和部署可移植性、健壮、可伸缩且安全的服务器端Java应用程序,它是在Java SE的基础上构建的,他提供了Web服务、组

件模型、管理和通信API,可以用来实现企业级的面向服务体系结构(Service Oriented Architecture, SOA)Web 2.0应用程序。

 

      1.4.3    Java ME  微型版

   Java ME(Java Platform, Micro Edition)微型版致力于消费产品和嵌入式设备的最佳解决方案,这个版本以前称为J2MEJava ME

在移动设备和嵌入式设备(比如手机、PDA、电视机顶盒和打印机)上运行的应用程序提供一个健壮且灵活的环境。Java ME包括灵活的用

户界面、健壮的安全模型、许多内置的网络协议以及对可以动态下载的联网和离线应用程序的丰富支持。

 

 

   每种平台都有各自的技术,详情的请查阅书籍或者通过其他途径查阅相关资料。

 

     1.5.  Java SE环境安装和配置

    用Java语言编写出来的程序要在各种平台上运行,必须要预先安装和配置好它的运行环境。对于编程开发者而言最重要的就是要安装

JDK

 

    1.5.1  什么是JDK

   JDK(Java Development Kits) 即Java开发工具箱,包括:

   l   JRE(Java Run Time Environment, Java运行时环境)

   l   JVM(Java Virtual Machine, Java虚拟机) 主要作用是进行Java程序的运行和维护。

   l   Java API(应用程序编程接口) 主要作用是为编程人员提供已经写好的功能,便于快速开发。

   l   Java编译器(javac.exe)

     Java运行时解释器(java.exe)

     Java文档化的工具(javadoc.exe)及其他工具和资

     源。

 

             JRE的三项主要功能如下:

   l  加载代码:由类加载器(Class Loader)完成。

   l  校验代码:由字节码校验器(Bytecode Verifier)

       完成。

   l  执行代码:由运行时解释器(RuntimeInterpreter)

       完成。

    以上三项功能的作用基本上都是以安全为出发点。 只有安装了JDK才能运行Java程序

 

    1.5.2  JDK的安装目录和常用命令工具介绍

    安装好JDK,目录下会产生如下内容:

      l bin目录:存放Java的编译器、解释器等工具(可执行文件)

    l  db目录:JDK6-7附带的一个轻量级数据库,名字叫Derby。

    l  demo目录:存放演示程序。(当然现在也许你会看不懂,呵呵)

    l  include目录:存放用于本地方法的文件。

    l  jre目录:存放Java的运行环境文件。

    l  lib目录:存放Java的类库文件。

    l  sample目录:存放一些范例程序。

    l  src.zip目录:JDK提供的类的源代码。

 

    1.5.3  设置环境变量

   仅安装了JDK还不行,因为用户编写的程序可能放置于不同的位置,怎样能让Windows系统可以在任何路径下识别Java的命令呢?这就需要设置环境变量。

 

   设置环境变量需要配置一下2个参数:

      (1) Path:用于指定操作系统的可执行命令的路径,也是要告诉操作系统,Java编译器和运行器在什么地方可以找到并运行Java程序的工具。 其值是安装JDKbin目录的路径,并在最后加个“(分号)

     (2) classpathJava虚拟机在运行某个类时会按classpath指定的目录顺序去查找这个类,值为“.(字母状态下的点)

 

  1.5.4  验证配置的正确性

    DOS命令状态下,分别测试javacjava命令,未报错即可,说明配置成功。

 

关于配置JDK: 可以参考下面图片

 

 

 

本文笔记参考自 <JAVA基础与案例开发详解>

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值