Java基础:简单的聊一聊Java
一、Java的发展史
历史是一个撩人心弦的小姑娘,它如同一个犹抱琵琶半遮面的清倌人,任人打量欣赏。
1991年,Sun公司的一个工程师小组想要设计一种小型的计算机语言,,主要用于像有线电视转换盒这类的消费设备。由于这些设备的处理能力和内存都非常有限,所以开发的语言必须非常小且能够生成非常紧凑的代码,同时为了适应不同厂商选择的不同中央处理器(CPU),该语言不能跟任何特定的体系结构捆绑在一起。当时这个项目被命名为“Green”。
在设计之初,小组的工程师们准备采用c++,但是c++又比较复杂,因此在c++的基础上,经过不断的裁剪、优化和创新,在1990年,由James Gosling(詹姆斯.高斯林,一个全能的计算机奇才)领导的工程师小组基于c++开发了一种与平台无关的新语言Oak(橡树,Java语言的前身)....但在当时的时代背景下,Green项目苦于没有支持其技术的买家,在1994年,不得不解散了项目组。当这一切在Sun公司发生的时候,Internet的万维网也正在日渐的发展壮大(万维网的关键是把超文本页面转换到屏幕上的浏览器,1994年大多人都在使用Mosaic),这给了Green项目组成员们启发,于是他们改造了Oak...在接受SunWorld采访时,Gosling说在1994年中期,Java语言的开发者们意识到:“我们能够建立起来一个相当酷的浏览器。我们已经拥有在客户机/服务器主流模型中所需要的体系结构中立、实时、可靠、安全——这些在工作站环境并不太重要,所以,我们决定开发浏览器...”
1995年1月,Oak正式更名为Java(在当时Oak商标已经被注册,Java是印度尼西亚爪哇岛的音译,该岛因盛产咖啡而闻名),Sun随后开发了HotJava浏览器,触发了Java进军Internet行业...
1996年5月份,Sun公司在旧金山举行了第一届JavaOne世界Java开发者大会,推出了诸如CommerceAPIs等一系列Java平台新技术以及新的HotJava开发环境,同年6月份,Sun公司发布了JSP1.0,这里的JSP(JavaServer Pages)是由Sun公司倡导、众多公司协同参与一起建立的一种动态网页技术标准...
1998年12月,Java2企业平台J2EE发布...
1999年6月,Sun公司针对不同用户群,发布了Java的三个版本:标准版(J2SE)、企业版(J2EE)、微软版(J2ME)...
2000年5月,J2SE1.3版本发布...
2002年4月,J2SE1.4版本发布...
2004年9月,J2SE1.5版本发布,该版本的发布成为了Java语言发展史上的又一个里程碑。为了表示该版本的重要性,J2SE1.5更名为JavaSE 5.0...
2005年6月,JavaOne大会召开,此时Java的各种版本已经更名:J2SE 更名为JavaEE, J2EE更名为JavaEE, J2ME更名为JavaME...
2006年12月,JavaSE1.6版本发布...
2009年4月,Oracle(甲骨文)公司以总额74亿美金收购Sun公司,Java版权归Oracle所有。因此Java的开发停滞了很长一段时间...
2011年7月,JavaSE1.7版本发布,只做了一些简单的修改...
2014年,JavaSE1.8版本发布,在近20年当中,这个版本有了巨大的改变....
图1.1 Java语言以及类库的发展状况
程序员的小浪漫:
由Java源代码编译出的二进制文件叫.class文件,如果使用十六进制编辑器打开这个文件,你会发现该文件最前面的32位将显示位CA FE BA BE,连起来也即是词组“CAFE BABE”(咖啡宝贝),诸如Gosling等这类的编程天才都是在不经意的地方展示他们的小浪漫。
二、Java的基本思想
在过去,大多数的程序在移植到不同的操作平台(如UNIX、Liunx、Windows等)上时,程序员通常不得不重新调试和编译这些程序,有时候设置需要重写。Java最大的优点就是在设计之初就秉承的“一次编译,到处运行”思想(Write Once ,Run Everywhere,简称WORE),它是Sun公司为了宣传Java语言的跨平台特性提出的口号
Java的跨平台性指的是:在一个平台上用Java语言编写的程序经过编译之后不经过任何的修改就可以在其他的平台上运行。 比如,一个在Windows下开发出来的Java程序,在运行时可以无缝的部署到Linux,Unix和Mac环境下。
那么,Java是如何实现跨平台性的呢?举个例子,在不懂中文的前提下,外国人要如何知道我们四大名著的内容呢?对的,翻译!我们可以用下图来比拟说明
在Java语言中,JVM(Java Virtual Machine ,Java虚拟机)为我们做了翻译的内容,程序员可以尽情的编写代码,所有的翻译交给JVM来做,正是因为有了JVM的存在,Java程序员才可以做到“一次编写,处处运行”——这正是Java的灵魂所在。
三、JDK和JRE
什么是JDK?什么是JRE?他们二者有什么区别和联系?
JDK:Java Development Kit,Java开发工具包,它里面不仅包含了Java运行时环境(即JRE),同时还包含了Java基本类库,Java开发工具,比如编辑器,调试器等,是用于支持Java程序开发的最小环境。
JRE:我们把Java API类库中的Java SE API子集和Java虚拟机这两部分统称为JRE(Java Runtime Environment,Java运行时环境),它是支持Java程序运行的标准环境。
二者的区别和联系:
在Java技术体系上,JDK范围涵盖JRE,JRE是JDK的子集,如果只是仅仅运行Java程序,我们只需要配置JRE环境即可,如果用户还想开发Java程序,则需要安装配置JDK环境。简单来说,JRE是面向Java程序的使用者的,JDK是面向Java程序开发者的,开发者自然也是Java程序的使用者。从下图也可以看出,JDK包含了JRE。
四、Java的学习
Java是一门面向对象的编程语言,在我本人看来,与其说学习Java的应用,不如说是学习Java的思想,会一样东西和懂一样东西是一种完全不同的概念,在我们学习的过程中,一定要多从面向对象的角度去考虑问题。另外就是动手实践,闻之不若见之,见之不若行之,无论学习哪一种编程语言,动手实践是必不可少的,可能在网上或者其他地方我们可以很轻易拿到创建Java程序的代码,但是作为一个初学者来说,务必不能偷懒,不要害怕出错,失败才是成功之母!总之,要想成为一个高水平的Java程序员,一定要多动手练习,多多思考,与君共勉!
Java学习可以大致分为三个阶段:
初级阶段:学习Java基础语法和类的创建与使用、基础I/O(输入输出的操作)、各种循环控制、运算符、数组的定义、方法定义的格式、方法的重写重载等。
中级阶段:掌握面向对象的封装、继承、多态思想,学习常用对象和工具类、深入I/O操作、异常处理、Java包管理机制、集合框架等内容
高级阶段:掌握Java的反射机制、泛型、网络编程、GUI开发、多线程、高级I/O,数据库编程等
无论学习哪一门语言,我们都不能急躁,饭是一口一口的吃,路是一步一步的走,可能我们急需要寻找一份体面的工作,可能我们无比的想成为一个Java行业的高薪工作者,这个时候我们更应该专注于自己的步伐,打好学习的基础,耐得住性子。学习Java的途中没有任何捷径,我们需要不断地理论学习,反复的实战练习才能将代码灵活的运用,只有重视基本功,并且持之以恒,才能让自己在以后的工作中游刃有余。
参考书籍:
《Java从入门到精通(第2版)》张玉宏主编
《Java核心技术:卷①原书第10版》凯s.霍斯特曼