语言程序设计刘炯西安电子科技大学–通信工程学院2课程简介Java语言程序设计Java基础知识面向对象的方法先修课程一门程序设计语言(C、C++、、、)微机原理课程安排:22+16讲课22学时,上机16学时3教材Java语言程序设计:基础篇(原书第6版)[IntroductiontoJavaProgramming]作者:Y.DanielLiang译者:万波郑海红潘蓉李娜机械工业出版社Java语言程序设计:进阶篇(原书第6版)[IntroductiontoJavaProgramming]作者:Y.DanielLiang译者:万波郑海红潘蓉李娜机械工业出版社4作者主页上的配套资源:例程、思考题答案等附录常见问题在线测试参考书目JAVA核心技术卷I:基础知识(原书第8版)[CoreJava]作者:HorstmannGayS.,GaryCornell译者:叶乃文邝劲筠杜永萍机械工业出版社JAVA核心技术卷II:高级特性(原书第8版)[CoreJava]作者:HorstmannGayS.,GaryCornell译者:陈昊鹏王浩姚建平机械工业出版社6进一步学习Java编程思想(第4版)[ThinkinginJava(TIJ)]作者:BruceEckel译者:陈昊鹏机械工业出版社EffectieJava(第2版)作者:JoshuaBloch译者:杨春花俞黎敏机械工业出版社7网络资源中文:Java论坛:Java中文世界论坛:CSDN论坛:。。。。。。英文:Java主页:Java官方教程:。。。。。。搜索引擎第一章计算机、程序和Java概述学习目标计算机的基本组成、程序和操作系统Java简介第一个例子:HelloWorld创建、编译、运行Java程序理解Java运行环境学习Java程序的基本语法在控制台和对话框中显示输出9什么是计算机?Acomputerisamachinethatmanipulatesdataaccordingtoasetofinstructions.()计算机是一种能够按照事先存储的程序,自动、高速地进行大量数值计算和各种信息处理的现代化智能电子设备。()10计算机一般包括:CPU内存存储设备(硬盘、软盘、光盘)输入输出设备(显示器、打印机、键盘、鼠标、网卡)通信设备存储设备CPU通信设备输入设备输出设备内存总线硬盘软盘U盘CD/DVD磁带Modem网卡蓝牙设备键盘鼠标显示器打印机11CPUCPU(CentralProcessingUnit,中央处理器)是计算机的大脑,它从内存中提取指令并执行之CPU的速度存储设备CPU通信设备输入设备输出设备内存总线12内存内存(Memory)用来存数据和CPU执行的程序指令内存单元是由字节(byte)构成的有序序列,每个字节由8个比特(bit)组成程序执行前必须将它和它的数据装入内存内存的易丢失性存储设备CPU通信设备输入设备输出设备内存总线13数据如何存储?各种类型的数据,比如数字、字符和字符串,都编码为一个位的序列(位是指二进制数:0或1)因为计算机的数字设备有两种平稳的状态,习惯上记作0(zero)和1(one),所以计算机用0和1进行存储。程序员不需要关心数据的编码和解码,它们是系统根据编码表自动执行的编码表多种多样,例如,在流行的ASCII编码中,字符‘J’用一个字节01001010表示。小数字,比如3,可以用单个字节存储。如果计算机需要存储用单个字节放不下的大数,就使用相邻的多个字节。两个数据不能共享或分割同一个字节,字节是最小的存储单位。010010100110000101110110011000010000001120002001200220032004地址内容字符J字符a字符v字符a数字314存储设备内存是不能长久保存数据的,断电时信息就会丢失。数据和程序都永久地存放在存储设备上,当计算机确实使用它们时再装入内存磁盘光盘磁带Flash存储设备CPU通信设备输入设备输出设备内存总线15输入、输出设备输入设备键盘、鼠标输出设备监视器、打印机存储设备CPU通信设备输入设备输出设备内存总线16通信设备网卡(Ethernet、Wifi、3G…)普通调制解调器(Modem)ADSLModemCableModem17程序程序:计算机程序,又称为软件,是发给计算机的指令你通过程序告诉计算机该做什么。没有程序,计算机就是一个空机器。计算机不能理解人类的语言,所以需要使用计算机语言和计算机进行交流程序使用编程语言书写18机器语言机器语言(MachineLanguage)是植入各台计算机的原始指令集。这些指令是二进制代码形式,所以只有输入这些指令的二进制码才能调用。用机器语言编写程序是一件单调乏味的事情,而且所编的程序非常难读、难改。例如:两数相加,可能必须写成如下的二进制形式:1101101010011010机器语言汇编语言高级语言19汇编语言汇编语言(AssemblyLanguage)降低了编程的难度。然而计算机不懂得汇编语言,所以需要使用一种叫做汇编器(assembler)的程序,将汇编语言程序转换为机器指令。例如,两数相加,用汇编代码所编写的指令形式如下:ADDF3R1,R2,R3机器语言高级语言汇编语言汇编语言文件ADDF3R1R2R3机器代码文件1101101010011010Assembler20高级语言高级语言(High-LevelLanguage)很像英语,易于学习和编写程序。例如,两数相加:R3=R2+R1;计算半径为5的圆面积:area=5*5*3.14;机器语言高级语言汇编语言21流行的高级语言COBOL(CommonBusinessOrientedLanguage)FORTRAN(FORmulaTRANslation)BASIC(BeginnerAll-purposeSymbolicInstructionalCode)Pascal(以BlaisePascal命名)Ada(以AdaLovelace命名)CVisualBasic(Microsoft公司开发的类似Basic的可视化语言)Delphi(Borland公司开发的类似Pascal的可视化语言)C++(以C语言为基础的一种面向对象程序设计语言)C#(微软公司开发的语言)Java(本课程使用的语言)Python、Perl、PHP、Erlang、JavaScript、Ruby、Lisp、Lua、TCL/TK、、、22编译源代码用高级语言编写的程序称为源程序(SourceProgram/SourceCode)由于计算机不懂得源程序,所以使用一种称为编译器(compiler)的程序将源程序翻译成机器语言的程序,这种机器语言程序称为目标程序(objectprogram)目标程序与其它支持库代码进行链接,从而构成可执行文件,可执行文件就可以在计算机上运行了SourceFileObjectFileExecutableFileCompilerLinker23操作系统操作系统(OperatingSystem,OS)是控制其他程序运行,管理系统资源并为用户提供操作界面的系统软件的集合。Windows(Windows7、Vista、XP、2000、NT、、、)LinuxUnixMacOS应用程序运行在操作系统之上硬件操作系统应用程序WordQQ…WindowsLinux…计算机24Java简介Java的历史1991年,Sun公司着手开发一个机顶盒项目:Green在开发时,为了适应不同的硬件平台,需要一种与平台无关的通用语言。这种与平台无关的通用语言被命名为OAK(橡树),设计者是JamesGosling。后来因为商标问题,改为Java(一种产自印尼爪哇的咖啡)1994年,机顶盒开发完成,但推销失败。开发人员想到,OAK语言可以应用到浏览器中,可以使得浏览器不但可以显示静态页面,而且可以执行程序,同用户互动。开发人员用Java开发了一个的浏览器,称为HotJava1995年5月23日,JamesGosling带着Java语言和HotJava浏览器参加了一个技术交流会,结果大获成功Java之父:JamesGosling25Java的LogoJava的吉祥物Java的吉祥物:Duke浏览器27Netscape决定在1996年1月的Netscape浏览器中,捆绑JavaJava许可证Netscape、Oracle、Microsoft…此时Java还只是一个语言,要想开发复杂的应用程序,必须要有一个强大的开发库:JDK(JavaDevelopmentKit)1996.1.23:JDK1.01997.2.19:JDK1.11998.12.8:J2SE1.2(Javaversion2)Java被分为J2SE、J2EE、J2ME2000.5.8:J2SE1.32002.2.6:J2SE1.42004.9.30:J2SE5.0(1.5)2006.12.11:J2SE6.0(1.6)Current:J2SE6.0Update14(2009.5.28)2009.4.20:Oracle收购SUN,从此Java变成Oracle的了2011.7.28:J2SE7.0(1.7)参见:Java的三个分支J2SE:Java2StandardEdition开发运行于PC上的普通应用J2EE:Java2EnterpriseEdition开发多层、Client-Server、面向企业的应用J2ME:Java2MicroEdition用于嵌入式设备(如移动设备等),CPU、内存受限制本课程讲述J2SE29Java的现状开发语言排行(截止2011年8月)占有率趋势图Java31Java是目前最流行的编程语言涵盖服务器、桌面、移动平台(如Android)Java更适合于服务器端开发基于J2EE的Web开发,是目前Java开发的主流在手机开发中,占有重要地位(J2ME)Android采用Java作为开发语言(虽然由于版权问题,Google回避了这一点)……32Java怎