查看: 136|回复: 2

[Java新手区] Java企业实训 - 02 - 认识Java语言

[复制链接]
  • TA的每日心情
    无聊
    4 天前
  • 签到天数: 59 天

    [LV.5]常住居民I

    发表于 2017-6-6 01:47:32 | 显示全部楼层 |阅读模式
    本帖最后由 请叫哥张董丶 于 2017-6-20 00:45 编辑

            作为一种程序设计语言,Java语言最具有简单高效、面向对象、不依赖于及其的结构、可移植性好、安全等特点。
            并且提供了并发机制,具有很高的性能。

            其次,Java语言最大限度地利用了网络,Java的小应用程序(Applet)可在网络上传输而不受CPU和环境的限制。

            另外,Java还提供了丰富的类库,使程序设计者可以很方便地建立自己的系统。

            下面分别从语言特性、Applet和类库三个方面来讨论Java的特点。
            然后通过把Java与其他编程语言C、C++、C+进行比较,进一步指出它所具有的优点。

    一、Java语言的特性
            Java语言主要有简单高效、面向对象、网络分布计算、健壮性、安全性、跨平台、并发性以及动态扩展等一系列特点。

            Java语言特性的具体说明如下:
            1. 简单高效
            Java语言最初是应用于电子产品的,如冰箱(只需要控制开和关即可完成制冷工作),所以相对来说比较简单。
            Java语言提供了很多的功能实现类库,很多代码只需要简单修改便可以轻松地应用到其他的软件产品中。
            大大提高了代码的重用率,缩短了开发时间,提高了开发软件的效率。

            2. 面向对象
            世间万事万物皆是对象。程序员如果要对现实生活中的各种对象进行模拟并编写出大型程序,那么Java语言便是最好的选择。
            在面向对象方面,Java语言比其他面向对象的编程语言更“纯”,所有的数据类型都有相应的类,完全可以用面向对象的方式来编写。

            在很多应用中,Java语言的设计主要集中于对象及其接口,Java提供了简单的类机制以及动态的接口模型。

            对象中封装了对象的状态变量以及相应的方法,实现了模块化和信息隐藏;
            而类则提供了对象的原型,并且通过继承机制,子类可以使用父类所提供的方法,实现代码的复用。

            3. 网络分布计算
            Internet的出现,为网络计算提供了一个良好的信息共享和信息交流的平台。
            然而,要充分利用网络来处理各种信息,不同操作系统品台具有的不同的运行环境是一个严重的制约,Java技术的出现为解决网络分布计算提供了最佳途径。
            Java语言是面向网络的编程语言,通过它提供的相应类库,可以很方便地处理分布在不同计算机上的对象。

            4. 健壮性
            Java程序一般不可能使计算机系统崩溃。
            因为Java虚拟机系统会在编译时对每个Java程序进行合法性检查,以消除错误的产生。
            在运行时,如果遇到出乎意料的事情,Java也可以通过异常处理机制,将异常抛出,并由相应的程序进行处理。

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

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

            7. 并发性
            Java内建了对多线程的支持,多线程机制的引入,使Java程序的运行效率大大提高,同时也保证了对共享数据的正确操作。
            通过使用多线程,程序设计者可以分别用不同的线程完成特定的功能,而不需要采用全局的事件循环机制。
            这样就可以很容易地实现网络上的实时交互行为。

            8. 动态扩展
            Java语言是一个不断发展的优秀编程语言。
            Java语言的类库可以自由地加入新的方法和示例变量而不会影响用户的执行。
            并且通过接口机制,改进了传统多继承的缺点,使之比严格的类继承具有更灵活的方式和动态扩展性等。


    二、Java Applet
            Java语言的特性是它可以最大限度地利用网络。

            Applet是Java的小应用程序,它是动态、安全、跨平台的网络应用程序。
            Applet可以嵌入HTML语言中,通过主页发布到Internet上。
            网络用户访问服务器的Applet时,这些Applet从网络上进行传输,然后在支持Java的浏览器中运行。

            由于Java语言的安全机制,用于一旦载入Applet,就可以放心地生成多媒体的用户界面或完成复杂的计算,而不必担心病毒的入侵。

            虽然Applet可以如图像、声音、动画等一样从网络上下载。
            但它不用于这些多媒体的文件格式,它可以接收用户的输入,动态地进行改变,而不仅仅是动画的显示和声音的播放。

            Applet在早期Internet上的应用比较广发,但当前的应用比较少。


    三、丰富的类库
            Java提供了大量的类,以满足网络化、多线程、面向对象系统的需要。
            类的主要应用领域包括以下几个方面:
            (1) 语言包提供的支持包括字符串处理、多线程处理、异常处理、数学函数处理等,可以用它简单地实现Java程序的运行平台;
            (2) 实用程序包提供的支持包括散列表、堆栈、可变数组、时间和日期等;
            (3) 输入输出包用同一的“流”模型来实现所有格式的I/O(输入/输出),包括文件系统、网络、输入;
            (4) 低级网络包用于实现Socket编程;
            (5) 抽象图形用户接口包实现了不同平台的计算机的图形用户接口部件,包括窗口、菜单、滚动条、对话框等,使得Java可以移植到不同平台的机器上;
            (6) 网络包支持Internet的TCP/IP协议,提供了Internet的接口。网络包支持URL连接和WWW的即时访问,并且简化了用户/服务器模型的程序设计;
            (7) 为了适应新的形势,在JDK5.0以后陆续加入了很多新的特性,如标注、泛型、反射等类。


    四、Java的竞争对手
            C++、Java、C#等变成语言基本上都来源与C语言,但又有很多区别。
            业内人士经常将C比作爷爷,C++比作爷爷的儿子,Java和C#等语言比作孙子。

            对于变量声明、参数传递、操作符、流控制等,Java使用了与C、C++相同的传统。
            而C++主要是对C的扩展,并融入了面向对象的思想。

            Java和C#语言是纯粹的面向对象的编程语言,吸收了C、C++语言的很多优点,摒弃了很多缺点。
            但C#编程语言的运行依赖于Windows平台,而Java语言不依赖于任何平台。
            因此使得熟悉C、C++、C#的程序员能够很方便地转向Java编程。

            具体描述有如下几点:
            1. Java与C、C++对比
            (1) 全局变量
            在Java编程的过程中,不能在类之外定义全局变量,例如:
             1.jpg

            要定义全局变量,只能通过在一个类中定义公用、静态的变量来实现一个全局变量。
            在类GlobalVar中定义变量global_var为public static,使得其他类可以访问和修改该变量。
            Java对全局变量进行了更好的封装。而在C和C++中,依赖于不加封装的全局变量常常造成系统的崩溃。

            (2) 剔除goto关键字
            虽然在Java中将关键字goto保留了,但是Java不支持C、C++中的goto语句。
            而是通过异常处理语句try、catch、final等来代替C、C++中用goto语句来处理遇到错误时跳转的情况,使程序更易读,且更结构化。

            (3) 良好的指针控制
            指针是C、C++编程语言中最有魅力的特性,但它的超高使用难度加上超高灵活性,使得大部分程序员望而却步。
            在学习C、C++语言进行编程的过程中,通过指针所进行的内存地址操作常常会造成不可预知的错误。
            同时通过指针对某个内存地址进行显式类型转换后,可以访问一个C或C++的私有成员,从而破坏安全性,造成系统的崩溃。
            而Java语言对指针进行完全的控制,程序员不能直接进行任何指针操作。例如把整数转换为指针,或者通过指针释放某一内存地址等。
            同时,数组作为类在Java中实现,姣好地解决数组访问越界这一问题。

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

            (5) 固定的数据类型
            在C、C++语言中,不同数据类型在不同的平台上所占的位数不一样。
            例如,int类型的数据在IMB PC中占16位,在VAX-II中占32位,这就导致了代码的不可移植性。
            但在Java中,对于这些数据类型都采用国际统一字符编码,即分配固定长度的位数。
            例如,对int类型的数据,它在任何机器上都占32位,这就保证了Java的平台无关性。

            (6) 严格控制数据类型转换
            一种数据类型的数据转换成另外一种数据类型的数据时,常常会出现数据精度丢失的问题。在C、C++中,通过指针进行任意的数据类型转换极不安全。
            而在Java中,运行时系统对对象的处理要进行类型兼容性检查,以防止不安全的转换。

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

            (8) 类与结构体和联合体
            安全是一个永恒的话题。C、C++中的结构和联合体重的所有成员均为公有,这就带来了安全性问题。
            Java中不包含结构体和联合体,所有的内容都封装在类中。

            其实Java与C、C++编程语言还有很多的差别,如速度、内部类、方法嵌入等。
            但总体来说,Java提取了很多其他编程语言的优点,使它更适合于大众程序员的需求。


            2. Java与C#对比
            Java语言是开放式的世界语言,基本源代码都公开。
            而C#作为Microsoft的一门主打语言也不甘示弱。
            一个开源,一个收费,它们两者基本上都对C、C++深涩的语法和语义进行了改进。

            在语法方面,两者都摒弃了const修饰、宏替换等;
            在继承方面,两者都采用更易于理解的单继承和多接口实现方案;
            在源代码组织方面,两者都提出了声明与实现与一体的逻辑封装。

            Java与C#的不同点主要体现在:C#在Microsoft的支持下提供了强大的Visual 开发平台,可以极好地提高C#程序开发效率。
            而且C#更善于利用Windows平台。

            Java的设计宗旨是独立于任何平台,因此自然不会提供太多的Windows特性。
            但这也正体现了Java语言的跨平台优势。

            对于一般的企业级应用来说,无法确定这个应用实在怎么的平台上运行(C#现可间接实现跨平台)。
            因而企业级开发一般选择Java作为开发语言。


    五、Java在应用领域的优势
            下图是目前2016年4月统计的各种编程语言的使用排名(1~20名),Change列表示对比前一年的排名变化。
             1.jpg

            下图是目前2016年4月统计的以上语言的排名及市场占有率的升降趋势:
             1.jpg

            大家也可以自行百度编程语言排行榜查看详情,甚至往年的也可以。

            从上面的图表中可以看出,Java语言依然是排名第一的语言,应用非常广泛。
            Java语言在应用领域占有强大优势,具体体现在以下几个方面:
            (1) 开发桌面应用程序,如银行软件、商场结账软件等;
            (2) 开发面向Internet的Web应用程序,如门户网站(工商银行)、网上商城、阿里巴巴、电子商务网站等;
            (3) 提供各行业的数据移动、数据安全等方面的解决方案。

            Java语言目前已发展成为最优秀的应用软件开发语言,它有着众多的开源工具。
            另外,Java为了实现高度的伸缩能力,增加了产品的复杂性。

            尽管C、C++开发的程序运行速度快,但缺点是几本没有什么好的开源工具,学习难度大;
            C#虽然封装得较好,但它开发的程序不能跨平台运行(现可以间接性实现跨平台),并且需要安装大规模的运行环境。
            基本以上原因,Java的使用者越来越多,Java在应用程序开发领域所占的份额也越来越大。




    您需要登录后才可以回帖 登录 | 注册青鸟豆号

    本版积分规则

    Copyright 1999-2017 Beijing Aptech Beida Jade Bird Information Technology Co.,Ltd

    北大青鸟IT教育 北京阿博泰克北大青鸟信息技术有限公司 版权所有

    京ICP备11045574号-3 京公网安备11010802013845号

    快速回复 返回顶部 返回列表