java学习总结——你的前世今生

来源:互联网 发布:淘宝客助手破解版 编辑:程序博客网 时间:2024/06/05 00:58

一、背景

        JAVA语言最开始只是Sun电脑(Sun MicroSystems)公司在1990年12月开始研究的一个内部项目。Sun电脑公司的一个叫做帕特里克·诺顿的工程师被公司自己开发的C++和C语言编译器搞得焦头烂额,因为其中的API极其难用。帕特里克决定改用NeXT,同时他也获得了研究公司的一个叫做“Stealth计划”的项目的机会。
        在这个项目中,团队最初考虑使用C++语言,但是很多成员包括Sun的首席科学家比尔‧乔伊,发现C++和可用的API在某些方面存在很大问题。
        工作小组使用的是内嵌类型平台,可以用的资源极其有限。很多成员发现C++太复杂以至很多开发者经常错误使用。他们发现C++缺少垃圾回收系统,还有可移植的安全性、分布程序设计、和多线程功能。最后,他们想要一种易于移植到各种设备上的平台。
        根据可用的资金,乔伊决定开发一种集C语言和Mesa语言大成的新语言,在一份报告上,乔伊把它叫做“未来”,他提议Sun公司的工程师应该在C++的基础上,开发一种面向对象的环境。最初,高斯林试图修改和扩展C++的功能,他自己称这种新语言为C++ ++ --,但是后来他放弃了。他将要创造出一种全新的语言,被他命名为“Oak”(橡树),以他的办公室外的橡树命名。
        1994年6、7月间,在经历了一场历时三天的头脑风暴的讨论之后,约翰·盖吉、詹姆斯·高斯林、比尔·乔伊、帕特里克·诺顿、韦恩·罗斯因和埃里克·斯库米,团队决定再一次改变了努力的目标,这次他们决定将该技术应用于万维网。作为原型,帕特里克·诺顿写了一个小型万维网浏览器,WebRunner,后来改名为HotJava。同年,Oak改名为Java。商标搜索显示,Oak已被一家显卡制造商注册,因此团队找到了一个新名字。

         这个名字是在很多成员常去的本地咖啡馆中杜撰出来的。一种比较可信的说法是这个名字是出于对咖啡的喜爱,所以以Java咖啡来命名。类文件的前四个字节如果用十六进制阅读的话,分别为“CA FE BA BE”,就会拼出两个单词“CAFE BABE”(咖啡宝贝)。

         1994年10月,HotJava和Java平台为公司高层进行演示。1994年,Java 1.0a版本已经可以提供下载,但是Java和HotJava浏览器的第一次公开发布却是在1995年5月23日SunWorld大会上进行的。SUN公司的科学指导约翰·盖吉宣告Java技术。这个发布是与网景公司的执行副总裁马克·安德森的惊人发布一起进行的,宣布网景将在其浏览器中包含对Java的支持。1996年1月,Sun公司成立了Java业务集团,专门开发Java技术。

二、发展

      1、概念

         是一种可以撰写跨平台应用软件的面向对象的程序设计语言。

         Java不同于一般的编译语言和直译语言。它首先将源代码编译成字节码,然后依赖各种不同平台上的虚拟机来解释执行字节码,从而实现了“一次编写,到处运行”的跨平台特性。

         Java 编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言

      2、组成

        Java编程语言,即语法。

        Java文件格式,即各种文件夹、文件的后缀。
        Java虚拟机(JVM),即处理*.class文件的解释器。
        Java应用程序接口(Java API)。

     3、优点

     (1)Java是目前使用最为广泛的网络编程语言之一。

         它具有简单,面向对象,稳定,与平台无关,解释型,多线程,动态等特点。

     (2)简单 

         Java 语言简单是指这门语言既易学有好用。如果你学习过 C++语言,你会感觉 Java很眼熟,因为 Java中许多基本语句的语法和 C++一样,像常用的循环语句,控制语句等和 C++几乎一样,但不要误解为 Java 是 C++的增强版,Java 和 C++是两种完全不同的语言,他们各有各的优势,将会长期并存下去,Java 语言和 C++语言已成为软件开发者应当掌握的语言。如果从语言的简单性方面看,Java要比 C++简单,C++中许多容易混淆的概念,或者被Java弃之不用了,或者以一种更清楚更容易理解的方式实现,例如,Java不再有指针的概念。

     (3)面向对象

         基于对象的编程更符合人的思维模式,使人们更容易编写程序在实际生活中,我们每时每刻都与对象在打交道。我们可以用共有的属性和功能给出一个概念 ,如机动车类。一个具体的轿车就是机动车类的一个实例 对象 .

          Java 语言与其它面向对象语言一样,引入了类的概念,类是用来创建对象的模板,它包含被创建的对象的状态描述和方法的定义。

     (4)与平台无关 

          跨平台是 Java 语言最大的优势。其它语言编写的程序面临的一个主要问题是 操作系统的变化,处理器升级以及核心系统资源的变化,都可能导致程序出现错误或无法运行。Java的虚拟机成功地解决了这个问题,Java编写的程序可以在任何安装了 Java虚拟机 JVM 的计算机上正确的运行,Sun公司实现了自己的目标 “一次写成,处处运行”。

     (5)解释型 

           我们知道C,C++等语言,都是只能对特定的CPU芯片进行编译,生成机器代码,该代码的运行就和特定的CUP有关。

          Java不像C++,它不针对特定的CPU芯片进行编译,而是把程序编译为称做字节码的一个“中间代码”。字节码是很接近机器码的文件,可以在提供了 Java 虚拟机 JVM 的任何系统上被解释执行。

          Java的字节码经过仔细设计,很容易便能使用JIT 即时编译方式 编译技术将字节码直接转化成高性能的本地机器码,Sun 公司在 Java 2发行版中提供了这样一个字节码编译器——JIT(Just In Time),它是Java虚拟机的一部分。Java运行系统在提供JIT的同时仍具有平台独立性,因而“高效且跨平台”对Java来说不再矛盾。

           如果把 Java 的程序比做“汉语”的话,字节码就相当于“世界语”,世界语不和具体的“国家”关,只要这个“国家”提供了“翻译”,就可以再快速地把世界语翻译成本地语言

     (6)多线程 

        Java 的特点之一就是内置对多线程的支持。多线程允许同时完成多个任务。实际上多线程使人产生多个任务在同时执行的错觉,因为,目前的计算机的处理器在同一时刻只能执行一个线程,但处理器可以在不同的线程之间快速地切换,由于处理器速度非常快,远远超过了人接收信息的速度,所以给人的感觉好象多个任务在同时执行。C++没有内置的多线程机制,因此必须调用操作系统的多线程功能来进行多线程程序的设计

     (7)安全 

        当你准备从网络上下载一个程序时,你最大的担心是程序中含有恶意的代码,比如试图读取或删除本地机上的一些重要文件,甚至该程序是一个病毒程序等。当你使用支持Java的浏览器时,你可以放心地运行Java的小应用程序 Java Applet ,不必担心病毒的感染和恶意的企图,Java小应用程序将限制在 Java运行环境中,不允许它访问计算机的其它部分

     (8)动态 

        Java 程序的基本组成单元就是类,有些类是自己编写的,有一些是从类库中引入的,而类又是运行时动态装载的,这就使得Java 可以在分布环境中动态地维护程序及类库,而不像 C++那样,每当其类库升级之后,相应的程序都必须重新修改,编译。

     4、缺点

       开发周期长,代码量大,对程序员的技术要求高

有人说,对于一个大型项目,如果用java来作,可能需要9个月,并且可能需要翻阅10本以上的书,但如果用ruby来作,3个月,3本书就足够了,而.net也不过3,4本书足以,这就是区别。

      比性能,微软曾做过一个例子,就是同一个项目用java和.net来作,结果开发周期,.net是java的一半,代码量java是.net的三倍。

三、比较

       Java编程语言的风格十分接近C语言、C++语言。

       Java是一个纯粹的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)、多重继承(以接口取代)等特性,增加了垃圾回收器功能,用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。

       在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举不定长参数和自动装/拆箱等语言特性。


       总结:无论java还是.Net,他们都是编程语言的一种,编程的关键不是语言,而是思想,一旦你有了思想,那你编的程序就有了灵魂,不管是什么语言到了你的手里都会是你的工具而已,他们的价值是能尽快帮助你实现你想要的目标。但是如果你没有了思想,那就像是海里的帆船失去了船帆,是很难到打海的另一边的。所以,让我们去学习语言中的思想,让我们去掌握编程的灵魂。


3 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 定频空调加错了佛里昂怎么办 定频空调外机噪音大怎么办 老美的定频空调出现p0怎么办 华为揽阅m2青春版卡顿了怎么办 华为揽阅M2青春版发热卡顿怎么办 全民突击网速不给力经常掉线怎么办 华为手机微信视频黑屏了怎么办 相机拍照后找不到拍的照片怎么办 苹果手机下载软件不被信任怎么办 苹果x手机下载软件不受信任怎么办 华为畅享7plus主板坏了怎么办 华为手机手机主板坏了没备份怎么办 华为手机一年内主板坏了怎么办 华为手机保修期内主板坏了怎么办 华为手机外置sd卡满了怎么办 红米4充不进去电怎么办 苹果5s锁屏密码忘记了怎么办 华为手机桌面和锁屏自动一样怎么办 苹果手机没电了没带充电器怎么办 华为p8手机后摄像头模糊的怎么办 中兴手机充电的地方坏了怎么办? 小米手机与电脑蓝牙传输失败怎么办 捡个华为收机没有账号密码怎么办 华为手机p9激活码忘了怎么办 华为畅享7plus声音小怎么办 华为畅享7plus忘记密码怎么办 华为畅享8plus卡顿怎么办 华为畅享7plus卡机怎么办 华为畅享8plus图标字小怎么办 华为畅享6反应慢发热怎么办 华为畅享5S反应迟钝怎么办 华为畅玩5x玩王者荣耀卡怎么办 不小心把手机里的照片删了怎么办 u盘文件在手机上删了怎么办 荒野行动透视挂功能加载失败怎么办 白色t桖衫被奶茶弄脏了该怎么办 游戏文件不小心解压到c盘了怎么办 装系统时c盘0mb怎么办 电脑设置的开机密码忘了怎么办 电脑开机密码忘了怎么办xp系统 我的电脑在开机时忘了密码怎么办?