JavaHowtoProgramLuoyangNormalUniversity第一章Java基本概念与环境配置学时分配:四个学时LuoyangNormalUniversityJavaHowtoProgramJavaHowtoProgram,lecCao,lynu,2014本章要点面向对象程序设计语言的优势及其体现Java的运行机制Java中基本概念Java开发运行环境及环境配置编辑工具,建议ultraedit32和Eclipse.LuoyangNormalUniversityJavaHowtoProgramJavaHowtoProgram,lecCao,lynu,2014知识问答FAQ1.01什么是面向对象程序设计?面向对象程序设计(OOP)是将对象作为程序的基本单元,并将程序和数据封装在其中,以提高软件的重用性、灵活性和扩展性,每一个对象都代表现实世界中的一个具体事务(实体)。LuoyangNormalUniversityJavaHowtoProgramJavaHowtoProgram,lecCao,lynu,2014知识问答FAQ1.02Java的前世今生如何?1991年,Sun公司,JamesGoling,PartickNaughton,ChrisWarth,EdFrank和MikeSheridan研究小组实施Green计划,1992年秋天Oak问世。BillJoy,ArthruvanHoff,HonathanPayne,FrankYelin和LindHolm是主要贡献者。企业级应用开发领域中的领头羊,占着过半壁江山之多的市场份额!Java语言之父:JamesGosling胸口是Java吉祥物:DukeLuoyangNormalUniversityJavaHowtoProgramJavaHowtoProgram,lecCao,lynu,2014知识问答美国SUN(StanfordUniversityNetwork)公司,在中国大陆的正式中文名为“太阳计算机系统(中国)有限公司”,在中国台湾的正式中文名为“升阳电脑公司”。1982年,SunMicrosystems公司诞生于美国斯坦福大学校园。Sun公司1986年上市,在NASDAQ(纳斯达克,是全美证券商协会自动报价系统)的标识为SUNW,2007年改为JAVA。2009年4月20日19点40分美国数据软件巨头甲骨文公司(Oracle)宣布以74亿美元收购Sun公司。LuoyangNormalUniversityJavaHowtoProgramJavaHowtoProgram,lecCao,lynu,2014知识问答2009年4月20日19点40分电:美国数据软件巨头Oracle公司20日宣布以74亿美元收购Sun公司。LuoyangNormalUniversityJavaHowtoProgramJavaHowtoProgram,lecCao,lynu,2014知识问答linux的吉祥物Tux(塔克斯)和java吉祥物Duke(杜克)LuoyangNormalUniversityJavaHowtoProgramJavaHowtoProgram,lecCao,lynu,2014知识问答1995年5月23日,Java语言诞生。1996年1月,第一个JDK-JDK1.0诞生。1997年2月18日,JDK1.1发布。1998年12月8日,发布里程碑式的Java1.2,java2。1999年6月,SUN公司发布Java的三个版本:标准版(J2SE)、企业版(J2EE)和微型版(J2ME)。2000年5月8日,JDK1.3发布,支持XML等。2002年2月26日,J2SE1.4发布,自此Java的计算能力有了大幅提升。2004年9月30日,J2SE1.5发布,成为Java语言发展史上的又一里程碑。为了表示该版本的重要性J2SE1.5更名为JavaSE5.0。2005年6月,JavaOne大会召开,SUN公司公开JavaSE6。此时,Java的各种版本已经更名,以取消其中的数字“2”:J2EE更名为JavaEE,J2SE更名为JavaSE,J2ME更名为JavaME。2006年12月,SUN公司发布JavaSE6.0版。2011年7月,甲骨文公司发布java7的正式版。LuoyangNormalUniversityJavaHowtoProgramJavaHowtoProgram,lecCao,lynu,2014知识问答FAQ1.03JavaSE、JavaEE和JavaME有什么区别?Java现在不仅仅是一种语言,确切的讲更应该是一个技术体系,分为不同的应用方向。JavaSEJavaPlatform,StandardEdition,JavaSE以前称为J2SE。它允许开发和部署在桌面、服务器、嵌入式环境和实时环境中使用的Java应用程序,能为JavaEE提供开发基础。JavaEEJavaPlatform,EnterpriseEdition,以前称为J2EE。可帮助开发和部署可移植、健壮、可伸缩且安全的服务器端Java应用程序。JavaEE是在JavaSE的基础上构建的,它提供Web服务、组件模型、管理和通信API,可以用来实现企业级的面向服务体系结构(service-orientedarchitecture,SOA)和Web2.0应用程序。JavaMEJavaPlatform,MicroEdition,以前称为J2ME,也叫K-JAVA。用来开发移动设备和嵌入式设备(比如手机、PDA、电视机顶盒和打印机)。现在使用的越少用了,Android会逐渐的取代J2ME的市场份额。以java语言开发的其他智能设备时下最火的Android,屹立不倒的BlackBerry等智能设备开发LuoyangNormalUniversityJavaHowtoProgramJavaHowtoProgram,lecCao,lynu,2014知识问答FAQ1.04Android与Java语言有什么关系?Android“机器人”,Google公司2007年11月5日推出基于Linux平台的开源手机操作系统的名称,由操作系统、中间件、用户界面和应用软件组成。Java平台和Java语言的关系Java编程语言只是Java平台的一个部分,是系列编程语法与规范的集合。Java平台由三个部分组成,核心API(包,框架、类库)、Java字节码及Java虚拟机(JVM)。Android平台与Java语言之间的关系Android使用了Java编程语言,而且还是用了核心的API,其执行形式与Java平台的字节码形式不一样。Google公司没有使用标准的JME(JavaMonkeyEngine)作为Android应用软件的引擎,而是配备了Dalvik虚拟机,执行自己的字节码。LuoyangNormalUniversityJavaHowtoProgramJavaHowtoProgram,lecCao,lynu,2014知识问答FAQ1.05什么是JVM?JVM定义JVM(JavaVirtualMachine,Java虚拟机),是虚拟出来的计算机,可在实际的计算机上模拟各种计算机功能。JVM有自己完善的硬件架构,例如处理器、堆栈、寄存器等,还有相应的指令系统。JVM作用JVM屏蔽了底层操作系统平台的相关信息,为Java程序的执行提供了必要的支持,优化了Java字节码,使之转换为效率更高的机器指令。不同平台对应不同的JVM,执行字节码时候,类加载器(ClassLoader)负责运行时查找和装入类文件的类,。JVM将每一条要执行的字节码送给解释器,解释器将其翻译成机器指令并执行。JVM工作原理操作系统装入JVM是通过JDK中的java.exe来实现,通过(1)创建JVM装载环境和配置;(2)装载jvm.dll;(3)初始化jvm.dll;(4)调用JNIEnv实例装载并处理class;(5)运行Java程序。LuoyangNormalUniversityJavaHowtoProgramJavaHowtoProgram,lecCao,lynu,2014知识问答FAQ1.06Java程序运行机制如何?计算机高级语言类型:编译型解释型总结:Java既是编译型语言又是解释型语言。Java程序的组成:Java源文件字节码文件.java文件.class文件javac.exe结果java.exe(JVM先加载)编译运行LuoyangNormalUniversityJavaHowtoProgramJavaHowtoProgram,lecCao,lynu,2014知识问答FAQ1.07什么是JRE?JREJRE(JavaRuntimeEnviroment,java运行环境),是Java程序运行所必须的环境集合,主要由Java虚拟机、Java平台核心类库和若干支持文件组成。JRE不包含有开发工具、编译器、调试器及其他工具,那是JDK。JRE版本管理很多与Java开发相关的产品都会自带有一套JRE环境,因此很容易在同一台计算机上安装很多不同版本JRE的情况,但这并不会带来冲突,不同版本的JRE不受影响,控制台使用java.exe执行Java程序时候,操作系统会会自动按照一定顺序查找JRE环境。(1)当前目录下有没有JRE;(2)父目录下有没有JRE;(3)PATH指定的路径中查找JRE;(4)注册表HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\JavaRuntimeEnvironment\下查找CurrentVersion的键值指向哪一个JRE。JRE的基础类库JRE自带的基础类库主要在JRE\lib\rt.jar文件中,包含了Java平台标准版的所有类库。在程序运行时,ClassLoader负责查找和加载程序引用的基础类库和其它类库。基础类库,在rt.jar中,其他类库,ClassLoader会在环境变量CLASSPATH指定的路径中搜索。LuoyangNormalUniversityJavaHowtoProgramJavaHowtoProgram,lecCao,lynu,2014知识问答FAQ1.08什么是JDK?JDKJDK(JavaDevelopmentKit,Java开发工具包),是Sun公司针对Java开发者的产品,提供了Java的开发环境和运行环境。JDK是整个Java的核心,包括JRE、Java工具和基础类库。不论什么Java应用服务器都内置了某个版本的JDK。LuoyangNormalUniversityJavaHowtoProgramJavaHowtoProgram,lecCao,lynu,2014知识问答FAQ1.09JDK、JRE和JVM之间有什么关系?LuoyangNormalUniversityJavaHowtoProgramJavaHowtoProgram,lecCao,lynu,2014知识问答FAQ1.10如何搭建Java开发环境?首先下载JDK安装文件;安装JDK;设置环境变量LuoyangNormalUniversityJavaHowtoProgramJavaHowtoProgram,lecCao,lynu,2014照猫画虎基本功训练NO.01设置环境变量时候,将JAVA_HOME换成其它名字会怎么样呢,例如JAVA_DIR?把PATH环境变量中原有的JAVA_HOME替换为其它变量值,正确替换完以后,Java环境依然可用!LuoyangNormalUniversityJavaHowtoProgramJavaHowtoProgram,lecCao,lynu,2014照猫画虎基本功训练NO.02如果不小心将变量弄丢了怎么办?在设置变量值之前,定义一个备份路径,将值放入进去。LuoyangNormalUniversityJavaHowtoProgramJavaHowtoProgram,lecCao,lyn