




已阅读5页,还剩61页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第一讲 JAVA绪论,计算机学院 林志毅 QQ:16045411 E-mail:,本讲要点,课程介绍 什么是Java? 我们的学习内容 学习方法指导 学习资料推荐 Java绪论 Java语言发展史 Java语言版本演化 Java语言的特点 Java与C+的比较 Java程序开发环境 Java源程序结构与编程规范,什么是Java?,什么是Java ? 一种编程语言 面向对象的程序设计语言,提供了编译、运行、调试工具。 Java 是完全面向对象的编程语言。 Java 既是一种解释执行的语言,也是一种编译执行的语言。 一种软件平台 平台是程序运行的硬件或软件环境,Java平台与大多数其它平台不同,是基于其它软件或硬件的纯软件平台。 JVM:Java虚拟机,是Java平台的基础 Java API:Java应用程序接口,Java API是软件组件的集合,它们提供了很多有用的功能,如图形用户界面(GUI)。 随着应用范围越来越广,Java演化出三个不同领域的应用平台 J2SE:Java2 Platform, Standard Edition:标准版,桌面系统和低端服务 J2EE:Java2 Platform, Enterprise Edition:企业版,企业级应用 J2ME:Java2 Platform ,Micro Edition:小型版,嵌入式应用开发,学习目标,最终目标:Java软件工程师 Java语法、J2se平台基础、面向对象编程思想和方法(Java基础) Java Web开发(简单应用) J2ee企业开发(企业级应用)、J2me(嵌入式应用) 辅助技术:Struts设计模式、JavaScript、XML、SQL语言 开发工具:JDK、JCreater、Eclipes、JBuilder 近期目标 在校期间,掌握Java Web应用 本学期目标 本学期, Java语法、Java基础类、面向对象编程思想和方法,培养自学能力。主要包括,1) 掌握Java编程基本技能 了解Java的基本常识: 历史和特点 掌握Java的语法和编程风格 掌握面向对象编程技术 能够灵活使用SUN公司提供的各种Java类,2) 掌握学习Java的基本方法 能够正确使用Java在线帮助文档 3) 能够用Java来解决实际问题 按正确的思路来解决问题与编程 设计模式、面向对象、良好的编程风格 能够书写正确的Java应用程序与小应用程序 4) 也可以为SCJP做准备 SCJP (Sun Certified Java Programmer),关键 对知识技能的理解和掌握 课堂和自学 多实践 编程与解决问题,纸上得来终觉浅, 绝知此事须躬行!,课程主要内容,第1讲 java绪论 第2讲 java语言的编程基础 第3讲 java与面向对象技术 第4讲Java的高级特性 第5讲Java的基础类(输入输出类) 第6讲Java的基础类(Java常用类) 第7讲Java的基础类(Java异常) 第8讲Java的GUI设计(图形用户界面) 第9讲Java多媒体技术(应用) 第10讲Java多线程技术 第11讲Java网络编程(包括JDBC),学习方法指导,奠定Java语法基础 学习Java的第一步是用Java语言来编写程序,学习Java语言的第一步,就是熟悉其语法的使用。 注意思考和总结 在学习的过程中,最好能够了解Java的底层机制,而不是仅仅停留在表层,不是抄书上的例子运行出结果就可以。即便对一个简单的例子也要有耐心去琢磨、调试、改动。 动手写代码 在学习的过程中一定要动手做、写代码,而不是抱一本书看看就行。很多东西和体会必须自己动手才能真正属于自己。 在学到一定阶段后,试用学过的东西做些什么。 培养自学能力 Java API文档 英文地址:/j2se/1.5.0/docs/api/ 中文:网上搜索下载 充分利用网络学习资源 使用搜索引擎 加入论坛参与讨论,学习资料推荐,参考书 (1) 2. 21天学通Java 2(第3版)(专业参考版):Rogers Cadenhead,Laura Lemay,人民邮电出版社 作为需要快速掌握Java语言基础知识的傻瓜书 (2) Java Swing(第二版):清华大学出版社 Java GUI程序设计的字典式工具书 (3)Java编程思想第3版 ,(美)埃克尔(Eckel,B.) 著 陈昊鹏 等译, 机械工业出版社,2005.5。(也可以参考侯捷译) (4)Java2核心技术(Core Java 2) 卷I,II 机械工业出版社 有英文电子版及源代码。这套书的卷I适合于Java语言基本入门,卷II则可以作为进入特定应用程序设计的基本指导。 网络学习资源 (1)Java中国开发网-/ (2)中文JAVA技术网-/ (3)天新网 - 软件开发 - Java开发-/java/ (4)视频教程Java无难事视频教程孙鑫/eschool/zhuanti/java/ (5)ChinaJavaW技术论坛/index.jspa (6)赛迪网技术社区 /index.php (7)SUN中国技术社区 /,软件,1) Suns Java SDK 1.6.0 2) UltraEdit, or Notepad 3) IDE 开发平台 JBuilder 2007(borland),Eclipse, IntelliJ IDEA (jetbrains), NetBeans (sun),课程要求,课程学时: 24学时(上课)+8学时(实验) 成绩计算: Java课程总评成绩由三次作业成绩以及考勤情况组成。作业3作为期末成绩,占总评成绩的70%。平时成绩由考勤、作业1和作业2组成,占总评成绩的30%。 作业要求: 1) 独立完成作业 抄袭:0! 雷同:低分! 2) 按时交作业 (具体见另外一个ppt),第一章 Java绪论,目标,了解Java语言的发展历史 了解Java语言的特点 掌握安装并设置Java开发平台 掌握Java程序的组成结构 掌握使用集成开发环境编写Java程序的方法,主要内容,1.1 Java语言发展史 1.2 Java语言版本演化 1.3 Java语言的特点 1.4 Java与C+的比较 1.5 Java程序开发环境 1.6 Java源程序结构与编程规范,1.1 Java的历史,JAVA是SUN公司()于上世纪90年代开发。 1990年12月,SUN公司的一个开发小组从事家用电器方面的小型研究项目。最初的方案是用C+开发。开发人员James Gosling对C+实现这一任务感到失望,决定自己编写了一种更好的语言来实现这一项目。最初,这种语言命名为OAK,后来改名为JAVA。 JAVA最初为用于家用电器而开发,JAVA的小型、安全、可移植性等特点,使其适用于WEB。 JAVA产生的时候,Internet正日益流行。95年8月,Netscape公司的浏览器率先支持JAVA。随后,Microsoft的Internet Explorer浏览器也支持JAVA。这样,随着万维网的日益普及,JAVA得到了广泛的使用。,Java语言的产生,Java产生于C之后,是完全的面向对象的编程语言,充分吸取了C的优点,同时摒弃了C的一些弊端。 采用了程序员所熟悉的C和C语言的许多语法,同时又去掉了C语言中指针、内存申请和释放等影响程序健壮性的部分。 Java语言的一个目标是跨平台,因此采用了解释执行而不是编译执行的运行环境,在执行过程中根据所在的不同的硬件平台把程序解释为当前的机器码,实现跨平台运行。 Java语言具备动态下载程序代码机制,是为了适应网络计算的特点程序可以根据需要把代码实时地从服务器中下载到目标机器来执行。在此之前还没有任何一种语言能够支持这一点。 #,Java现状,Java现在常用来: 1) 开发大规模的商业运用软件 2) 增强网络服务的功能 3) 开发智能消费型电子产品的应用软件 (例如手机) 目前采用Java编程还比较多,看看下图,TIOBE公布2010年8月编程语言排名,Java 语言的应用前景,所有面向对象的应用开发,包括面向对象的事件描述、处理、综合等。 计算过程的可视化、可操作化的软件的开发。 动态画面的设计,包括图形图像的调用。 交互操作的设计(选择交互、定向交互、控制流程等)。 Internet 的系统管理功能模块的设计,包括 Web 页面的动态设计、管理和交互操作设计等。 Intranet(企业内部网)上的软件开发(直接面向企业内部用户的软件)。 与各类数据库连接查询的 SQL 语句实现。 其他应用类型的程序。,主要内容,1.1 Java语言发展史 1.2 Java语言版本演化 1.3 Java语言的特点 1.4 Java与C+的比较 1.5 Java程序开发环境 1.6 Java源程序结构与编程规范,1.2 Java版本历史,1996年初,Sun公司发布了Java 1.0. 该版本实际上并不能用来进行真正的应用程序开发。 1998年,Sun在JavaOne会议上发布Java 1.2. 该版本最大的改进是它的新图形工具箱更加精选并且具有可伸缩性。 在Java 1.2中分为3个版本: J2SE:标准版,面向一般用户 J2ME:微型版,用于手机等嵌入式设备的应用程序开发 J2EE:企业版,用于服务器端处理的软件开发。 本课程内容主要基于J2SE。,Java版本历史(续),Java 1.3和1.4对最初的Java 2版本作了一些细微的改进,如扩展了标准类库、提高了系统性能个,修正bug。 2004年发布的Java 1.5改称Java5.0,该版本对Java作出了重大改进: 添加了泛型类型generic type,类似于C+的模版 “for each”循环 可变元参数 自动打包 元数据 枚举 静态导入 2006发布版本Java6.0(见word文档),主要内容,1.1 Java语言发展史 1.2 Java语言版本演化 1.3 Java语言的特点 1.4 Java与C+的比较 1.5 Java程序开发环境 1.6 Java源程序结构与编程规范,1.3 Java语言的特点,1)简单性:Java的语法比 C/C+简单 设计Java语言的目标就是简单,并尽量使程序 “bug free“ 没有指针 没有malloc(), free(), 也没有析构方法(删除了C+中极少被使用、不容易理解和令人混淆的功能) Java虚拟机采用了一种效率不是很高的垃圾回收机制 确保Java的“简单化”的另一特性在于“小而单纯”。,2) 面向对象 面向对象是一项很强的设计功能,因为它促成明确的接口定义,并允许发展者建立可重复使用的“软 件IC”,即可即插即用的组件。 Java的面向对象含义实质上就是C+,并包含Objective C的一些延伸,以提供更有动态的解决方案。 采用面向对象后的优点 容易设计 简单, 容易理解程序 易于软件代码的重用性 可以在一定程度上提高软件的健壮性,3)平台无关性 Java口号: Write Once, Run Anywhere,4)安全性 Java设计目的是要供使用于网络/分布式运算环境。为此,Java非常强调安全性,以确保建立无病毒且不会被侵入的系统。Java的验证技术是以公钥 (public - key)加密法为基础。 Java语言的安全机制基于“不存在可信任的代码”的概念。其运行环境提供了以下四级安全保障机制: 字节码校验器:当Java字节码进入Java解释器解释执行之前,首先必须经过字节码校验器的检查。 类装载器:类装载器负责把来自网络的类加载到单独的内存区域,类和类之间相互不会干扰。 运行时内存布局:Java解释器将决定程序中类的内存布局,这就意味着不怀好意的程序无法预先知道一个类的内存布局结构。 文件访问机制:客户端用户还可以限制从网络上加载的类只能访问某些被允许的系统,如文件和硬盘。,5)多线程 Java中的多线程处理非常便捷。只要OS支持,Java中的线程就可以利用多个处理器。 但在底层,主流平台的线程实现机制各不相同,Java并没有对此实现平台相关性。在不同的机器上,只是调用多线程的代码完全相同,Java仅是简单地把多线程的实现交给底层的OS去处理。 并行工作一般可以提高程序执行效率 但同时也增加了程序编写难度,6) 网络性 Java提供了包容广泛的例程库,可处理像HTTP和FTP这样的TCP/IP协议。Java应用程序可通过一个特定的URL来打开并访问对象,就像访问本地文件系统那样简单。 7) 鲁棒性 Java在编译和运行程序时都要对可能出现的问题进行检查 它提供自动垃圾收集来进行内存管理 面向对象的异常处理机制 8) 解释性 编译器 javac 将处理.java源文件生成类文件 类文件可通过名称为 java 的加载实用程序解释执行,将Java 字节码转换为机器可执行代码。 Java白皮书的关键字还有:分布式、高性能、动态性等,主要内容,1.1 Java语言发展史 1.2 Java语言版本演化 1.3 Java语言的特点 1.4 Java与C+的比较 1.5 Java程序开发环境 1.6 Java源程序结构与编程规范,1.4 JAVA与C+的比较,Java语言的设计过程中充分参考了C / C+的特性,但在很多地方有所不同。 1. 全局变量 Java程序不能定义程序的全局变量,而类中的公共、静态变量就相当于这个类的全局变量。 这样就使全局变量封装在类中,保证了安全性,而在C / C+语言中,由于不加封装的全局变量有时候会由于使用不当而造成系统的崩溃。,JAVA与C+的比较(续),2. 条件转移指令 C / C+语言中用goto语句实现无条件跳转。 Java语言没有goto语言,通过异常处理语句try、catch、finally来取代之,提高了程序的可读性,也增强了程序的鲁棒性。 3. 指针 指针是C/C+语言中最灵活,但也是最容易出错的数据类型。 用指针进行内存操作往往造成不可预知的错误。而且,通过指针对内存地址进行显示类型转换后,可以类的私有成员,破坏了安全性。 在Java中,程序员不能进行任何指针操作,同时Java中的数组是通过类来实现的,解决了数组越界这一C/C+语言中不做检查的问题。,JAVA与C+的比较(续),4. 内存管理 在C / C+语言中,程序员可以使用库函数分配和释放内存。 但管理不当反而会导致程序出错。 在Java中,所有的数据结构都是对象,通过运算符new分配内存并得到对象的使用权,但程序员无法控制内存何时回收,避免了内存管理不周而引起的系统崩溃。 但这样的内存管理机制也导致了Java在某些应用场合出现性能瓶颈,例如: 在高速数据库管理系统中,数据锁是非常珍贵的资源,Java的内存管理机制有可能使得数据锁无法及时释放而影响系统性能。,JAVA与C+的比较(续),5.数据类型的一致性 在C/C+语言中,不同的平台上,编译器对简单的数据类型如int、float等分别分配不同的字节数。例如:int类型的变量在IBM PC上为16位,在VAX-11上就为32位,导致了代码数据的不可移植。 在Java中,对数据类型的位数分配总是固定的,而不管是在任何的计算机平台上。因此就保证了Java数据的平台无关性和可移植性。 6. 类型转换 在C/C+语言中,可以通过指针进行任意的类型转换,具有相当高的安全风险。 而在Java语言中,系统要对对象的处理进行严格的相容性检查,防止不安全的转换。,7. 头文件 在C / C+语言中使用头文件声明类的原型和全局变量及库函数等,在大型系统中,维护这些头文件是非常困难的。 Java不支持头文件,类成员的类型和访问权限都封装在一个类中,运行时系统对访问进行控制,防止非法的访问。 同时,Java中使用import语句与其它类进行通信,以便访问其它类的对象。 8. 预处理 C / C+语言中有宏定义,而用宏定义实现的代码往往影响程序的可读性(考试中经常出现,并一度视为衡量C / C+程序员水平的尺度之一)。 而Java不支持宏定义。,1.4 Java与C+的比较,主要内容,1.1 Java语言发展史 1.2 Java语言版本演化 1.3 Java语言的特点 1.4 Java与C+的比较 1.5 Java程序开发环境 1.6 Java源程序结构与编程规范,1、Java开发过程,2、Java开发工具,Java IDE,Borland JBuilder,J2SDK,NetBeans Sun Java Studio,IBM Visual Age for Java Eclipse,Microsoft VJ+,Oracle JDeveloper,BEA WebLogic Workshop,JCreator,JDK是Java语言最基本的开发工具。(介绍) javac(Java编译器) java(Java解释器) javap(Java反汇编器) javadoc(Java文档管理器) appletviewer(Java Applet浏览器),Java 的编辑环境,JDK是有助于程序员开发Java 程序的 Java 开发工具包 包括: 类库 编译器 调试器 Java 运行时环境( JRE ),JDK 提供的常用工具,javac 是用来编译源代码的命令。 java 是用于执行类文件的命令,而类文件将在 Java 虚拟机中运行类。 appletviewer 命令允许在万维网浏览器的环境之外运行 Applet。,Java程序开发过程(使用JDK),开发程序前,进行开发环境配置 安装JDK(见本章附录) 选择安装开发工具 JDK记事本等文本编辑工具,可以直接使用JDK环境 JCreater、JBuilder、EClipes等集成开发环境 开发步骤 编写程序源文件 源文件类型名为.java 编译生成字节码文件 生成的字节码文件类型名为.class 运行 应用程序运行:通过Java虚拟机独立运行程序 小应用程序运行:嵌入浏览器中运行,JDK目录结构简介,JDK目录结构简介 bin javac: Java编译器,用来将java程序编译成字节码文件.class。 java: Java解释器,执行已经转换成字节码的java应用程序。 appletviewer : Java虚拟浏览器, 用来解释嵌到网页中的java小应用程序。 lib:Java类库 Jrelib:Java核心类库,JDK环境下程序编译与运行,编写Java应用程序源文件 在D盘创建工作目录exam1(不是必须的) 在工作目录下,使用记事体程序编写文件名为HelloWorld.java 输入程序代码 准备编译和运行程序(环境配置) 开始运行(cmd),打开命令窗口 输入set path=“c:program filesjavajdk1.5.0_11bin“并回车,设置Java命令的搜索路径 输入d:并回车,将当前盘转至D盘 输入cd exam1并回车,当前目录转至我们的工作目录 编译成字节码文件 输入javac HelloWorld.java并回车,将源文件编译成字节码文件 执行程序 输入java HelloWorld并回车,执行程序,一个Java Application程序基本结构,第一个 Java 程序,/这是名称为“HelloWorld.java”的简单程序 import java.io.*; class HelloWorld public static void main(String args ) System.out.println(“欢迎访问 Java 世界!“); ,导入 必要的包,在记事本编辑Java程序,单击 开始,依次选择 程序-附件 -记事本,/这是名称为“HelloWorld.java”的简单程序 import java.io.*; class HelloWorld public static void main(String args ) System.out.println(“欢迎访问 Java 世界!“); ,编译和运行,单击 开始,依次选择 程序-附件 -命令提示符,进入程序所 保存的目录,输入命令编译 HelloWorld,输入命令执行 HelloWorld,输出 结果,JAVA程序开发环境,1. NetBeans(见相关word文档) 2. Eclipse,3. JBuilder2007,1. NetBeans,安装过程: (1) 首先安装JDK: jdk-6u4-windows-i586-p.exe (2) 安装NetBeans:netbeans-6.0.1-ml-windows.exe (3) 选择JDK:,JAVA程序开发环境,1. NetBeans 2. Eclipse,3. JBuilder2007,2. Eclipse,安装过程: (1) 安装JDK. (2) 解压eclipse-java-europa-fall2-win32.zip。解压后即可使用,无需安装。 帮助文件:/help32/index.jsp,演示如何使用Eclipse创建一个工程。,JAVA程序开发环境,1. NetBeans 2. Eclipse,3. JBuilder2007,3. JBuilder2007,JBuilder2007基于Eclipse构建。 安装过程与一般软件无异。,JBuilder2007的大部分功能与Eclipse一致,但具有更加完善的工程管理、性能测试等功能,是一款相当成熟的商业化Java软件集成开发环境。,主要内容,1.1 Java语言发展史 1.2 Java语言版本演化 1.3 Java语言的特点 1.4 Java与C+的比较 1.5 Java程序开发环境 1.6 Java程序结构与编程规范,1.6 JAVA程序结构,例如:有一个java源程序可以是如下结构,该源程序命名为HelloWorldApp.java: package javawork.helloworld; /*把编译生成的所有.class文件放 到包javawork.helloworld中*/ import java.awt.*; /告诉编译器本程序中用到系统的AWT包 import javawork.newcentury; /*告诉编译器本程序中用到用户自 定义的包javawork.newcentury*/ public class HelloWorldApp /*公共类HelloWorldApp的定 义, 名字与文件名相同*/ class TheFirstClass /第一个普通类TheFirstClass的定义 class TheSecondClass /第二个普通类TheSecondClass的定义 /其它普通类的定义 interface TheFirstInterface /第一个接口TheFirstInterface的定义,java编程规范,包(package) 即目录,它能够将某一个类放入到某个目录当中,使得程序员能够更好地管理Java类(Class)和接口(Interface)。 import语句 如果在源程序中用到了除java.lang这个包以外的类(无论是系统的类还是自己定义的包中的类),都必须用import语句标识,以通知编译器在编译时找到相应的类文件。,Java命名规范,包名:包名是全小写的名词,中间可以由点分隔开,例如:java.awt.event; 类名:首字母大写,通常由多个单词合成一个类名,要求每个单词的首字母也要大写,例如:class HelloWorldApp; 接口名:命名规则与类名相同,例如:interface Collection; 方法名:往往由多个单词合成,第一个单词通常为动词,首字母小写,中间的每个单词的首字母都要大写,例如:balanceAccount,isButtonPressed 变量名:全部字母小写,一般为名词。例如:length; 常量名:习惯上应该全部字母大写,单词间用下划线“_”,分隔。 例如: MAX_SIZE, R_PG13, TERM_LIMIT,Java命名规范(续),参数的命名:参数的命名规范和方法的命名规范相同,而且为了避免阅读程序时
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 出租车安全夏天培训内容课件
- 急救知识培训考试试卷及答案
- 出海作业安全培训课件
- 2025合同范本合同法规定
- 《市场营销学》作业考核试题及答案
- 2025标准汽车租赁合同样本
- 道法考试试题分析模板及答案
- 2025《合同风险评估与控制》
- 冲焊部员工安全培训课件
- 高中化学必修第三章第四节基本营养物质
- 生物质颗粒购销合同
- 第01讲 意象、画面与意境 练习 中考语文复习
- 2025年湖南水利水电职业技术学院单招职业技能测试题库附答案
- 第四章药品调剂质量控制第二节用药错误管理课件
- 幼儿园酸奶牛奶采购合同
- 高中化学拔尖创新人才早期培养路径
- 2025年四川宽窄实业有限责任公司招聘笔试参考题库含答案解析
- 《中药提取物生产技术》课件-中药常用的粉碎方法
- Unit 1 完形填空训练8篇-2023-2024学年英语八年级上册单元冲刺满分题型训练(人教版)
- DB32/T 1086-2022 高速公路建设项目档案管理规范(修订)
- 教师资格证《教育知识与能力》中学-必背知识点
评论
0/150
提交评论