《Java语言与Java开发常用工具、版本管理工具详解.ppt》由会员分享,可在线阅读,更多相关《Java语言与Java开发常用工具、版本管理工具详解.ppt(84页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、汇报大纲nJAVA语言讲解程序设计语言JAVA语言的特点JDK安装及环境变量的设置JAVA类库介绍第一个JAVA程序nJAVA开发工具Eclipse & myeclipse接口调用数据库的配置Web server配置Web应用程序开发n版本管理工具VSS 、SVN & CVS服务器的安装及配置客户端的安装及使用n作业内容JAVA语言讲解n程序设计语言nJAVA语言的特点nJDK安装及环境变量的设置nJAVA类库介绍n第一个JAVA程序程序设计语言程序设计语言程序设计语言的种类:q 机器语言:机器指令,直接执行q 汇编语言:符号化,汇编器(Assembler)q 高级程序设计语言(编译型)q 高
2、级程序设计语言(解释型)程序设计语言程序设计语言高级程序设计语言高级程序设计语言编编 译译 过过 程程 对于“解释执行” 方式,人们实现了一种称为“解释器”(Interpreter)的软件来完成转换工作。解释器在工作方式上与编译器不同,它不对源程序进行翻译,而是直接对源程序的语句进行分析和解释,实现源程序所描述的功能。1、程序设计语言、程序设计语言高级程序设计语言高级程序设计语言解解 释释 过过 程程OOP基础 Object Oriented ProgrammingOOP的三大特征nNo. 1:封装性 隐藏实现开/关Light内部实现Light接口Light类类外部系统OOP的三大特征nNo.
3、 2:继承性 接口的重用开/关白炽灯类Light接口Light类型类型外部系统荧光灯类OOP的三大特征nNo. 3:多态性 对象互换的魔法几何形状draw()圆draw()矩形draw()直线draw()OOP总结nOOP是一种新的编程方法,它比其它方法更接进问题领域nOOP三大特征封装性继承性多态性nOOP的编程语言C+C#JavaJava = “ C+ ” “ 复杂性和奇异性复杂性和奇异性 ” + “安全性和可移植性安全性和可移植性”q Java语言是一个完全面向对象的语言,并且对软件工程技术有很强的支持q Java语言的设计集中于对象及其接口,它提供了简单的类机制以及动态的接口模型。q
4、对象中封装了它的状态变量以及相应的方法,实现了模块化和信息隐藏;q 类提供了一类对象的原型,并且通过继承机制,子类可以使用父类所提供的方法,实现了代码的复用。3、Java语言特点语言特点 (1) 面向对象面向对象q 严格的语言定义:没有“依据机器的不同而不同” 或“由编译器决定”等字眼,最后的目标码都是一致的。q Java解释器生成与体系结构无关的字节码指令,只要安装了Java运行时系统,Java程序就可在任意的处理器上运行。这些字节码指令对应于Java虚拟机中的表示,Java解释器得到字节码后,对它进行转换,使之能够在不同的平台运行。3、Java语言特点语言特点 (2)平台无关性平台无关性用
5、Java源程序先被编译、后被解释 一次编写,处处运行源源程程序序Java编译器编译器SPARCpentiumPowerpc中间码中间码PowerpcpentiumSPARC二进制二进制源源程程序序SPARCPowerpcpentiumPowerpcpentiumSPARC编译器编译器二进制二进制Java解释器解释器编译型和解释型语言的工作模式编译型和解释型语言的工作模式类、类库装载(库)链接编译编译,没有绝对地址没有绝对地址调入包含、继承所调入包含、继承所用到的所有类用到的所有类, 内存内存分配确定分配确定,变成真正变成真正可执行的机器码可执行的机器码 Java源程序源程序(.java文件文件
6、)Java编译器编译器Java Bytecode(.class文件文件)系统执行平台系统执行平台Bytecode 解释器解释器Bytecode 载入器载入器字节码校验器字节码校验器不存在伪造的指针不存在伪造的指针不违反访问权限不违反访问权限不非法访问对象不非法访问对象不导致操作栈溢出不导致操作栈溢出 Java的编译与执行的编译与执行JavainterpreterJust-in-timecompilerRuntime SystemOperating SystemHardware不同的操作系统有不同的虚不同的操作系统有不同的虚拟机。拟机。它类似一个小巧而高效的它类似一个小巧而高效的CPU。Byte
7、code代码是与平台无关的代码是与平台无关的是虚拟机的机器指令。是虚拟机的机器指令。Java字节代码运行的两种方式字节代码运行的两种方式:Interpreter(解释方式解释方式)Just-in-time(即时编译即时编译):有代码有代码生成器将字节代码转换成本机生成器将字节代码转换成本机的机器代码,然后可以以较高的机器代码,然后可以以较高速度执行速度执行.Java虚拟机虚拟机Java是在网络环境下使用的语言,一个安全的网络至少要防止以下几种破坏的可能性:n 毁灭系统资源n 消耗系统资源n 挖掘系统或个人机密n 骚扰正常工作的进行3、Java语言特点语言特点 (3)安全问题安全问题Java源程
8、序源程序(.java文件文件)Java编译器编译器Java Bytecode(.class文件文件)Bytecode 载入器载入器Bytecode 解释器解释器系统执行平台系统执行平台语言定义语言定义publicprotectedprivatefinal取消指针取消指针自动回收自动回收垃圾垃圾Bytecode检查检查限定对象的限定对象的存取权限存取权限系统堆栈溢出系统堆栈溢出参数类型一致参数类型一致程序执行系统程序执行系统WWW浏览器浏览器限制限制Java小应用程序小应用程序的不正当使用的不正当使用Java的安全措施的安全措施q 单线程程序一个时刻只能做一件事情,多线程程序允许在同一时刻同时做
9、多件事情。q 其它大多数高级语言,包括C,C+等,都不支持多线程,只能编写顺序执行的程序(除非有操作系统API的支持)。q Java提供现成的类Thread,只要继承这个类就可以编写多线程的程序。q 多线程机制使应用程序能够并行执行,而且同步机制保证了对共享数据的正确操作。q 通过使用多线程,程序设计者可以分别用不同的线程完成特定的行为,而不需要采用全局的事件循环机制,这样就很容易地实现网络上的实时交互行为。3、Java语言特点语言特点 (4)多线程多线程(5) 可移植性(6) 分布性(7) 高性能(相对于其他解释型语言)(8) 健壮性3、Java语言特点语言特点 其他其他 不再有全局变量 不
10、再有#include 和#define 等预处理功能 不再有structure、union及typedef等 不再有函数、不再有指针、不再有多重继承 不再有goto语句 不再有操作符重载(Operatior Overloading) 取消自动类型转换,要求强制转换 自动进行内存管理3、Java语言特点语言特点 (9)与与C及及C+的区别的区别JDK安装及环境变量设置nJDK安装nhttp:/ nhttp:/ n环境变量的设置【控制面板】|【系统】|【高级】|【环境变量】%java_home%=jdk;Class=%java_home%binClasspath=.; %java_home%lib
11、dt.jar; %java_home%tools.jarJava-versionnJava程序由各种类(class)组成n你自己编写的类n(Java class librariesJava API)nJDKJava Development Kitn独立软件供应商、免费软件/共享软件n几点提示n使用类库可以 提高软件重用/提高效率/提高移植性n网络上有许多开放的Java源码资源5、Java类库类库Java Packages (1)nLanguagejava.langClasses that contain the main core of the Java language. nUtilitie
12、sjava.utilSupport for utility data structures. nI/Ojava.ioSupport for various types of input/output. nTextjava.textLocalization support for handling text, dates, numbers, and messages. nMathjava.mathClasses for performing arbitrary-precision integer and floating-point arithmetic. nAWT java.awtUser i
13、nterface design and event-handling. nSwingjavax.swingClasses for creating all-Java, lightweight components that behave similarly on all platforms. Java Packages (2)nJavaxjavax Extensions to the Java language. nAppletjava.applet Classes for creating applets. nBeansjava.beans Classes for developing Ja
14、vaBeans. nReflectionjava.lang.reflect Classes used to obtain runtime class information. nSQLjava.sql Support for accessing and processing data in databases. nRMIjava.rmi Support for distributed programming. nN Classes that support development of networking applications. nSecurityjava.securitySupport
15、 for cryptographic securityJava程序结构:程序结构: package语句:零个或多个,必须放在文件开始 import语句:零个或多个,必须放在所有类定义之前 public ClassDefinition:零个或一个 ClassDefinition:零个或多个 InterfaceDefinition:零个或多个类个数:至少一个类,最多只能有一个public类源文件命名:若有public类,源文件必须按该类命名标识符:区分大小写6、Java程序程序 类库支持:引用其他类。 类定义:定义程序所需的类及接口,包括其内部的变量、方法等。 main()方法:应用程序的入口,与
16、标准C中main()函数的地位是一样的。一个应用程序有且只有一个main()方法,main()方法必须包含在一个类中,该类即为应用程序的外部标志。 程序注释:与C类似,/*/ /6、Java程序程序Java应用程序(应用程序(Java Application)n编辑存盘:文件名和公共类名(用public声明)要一致 HelloWorldApp.javan编译程序:javac HelloWorldApp.javan运行程序:java HelloWorldAppn运行结果:Hello World!public class HelloWorldApp public static void main(
17、String args) System.out.println(“Hello World!”); 6、Java程序程序第一个第一个Java应用程序应用程序 声明一个类:public class HelloWorldApp,类名第一个字母大写。 一个类中可有很多方法, main方法是运行程序的第一个方法,方法名的第一个字母小写。 System.out.println是向屏幕输出,相当于C中的printf()。6、Java程序程序第一个第一个Java应用程序应用程序public class HelloWorldApp public static void main(String args) Sys
18、tem.out.println(“Hello World!”); 321.1.2 Java平台nJava SE(Java Platform,Standard Edition)。它允许开发和部署在桌面、服务器、嵌入式环境和实时环境中使用的 Java 应用程序。Java Foundation Classes(Swing)GUI 和图形化库。Java Native Interface(JNI):使 JVM 中运行的 Java 代码可以与用其他编程语言编写的应用程序和库进行互操作。Java 2D API:二维图形库Java Database Connectivity(JDBC):数据库连接库Java
19、Secure Socket Extensions(JSSE):安全通信Java API for XML Processing(JAXP):XML文档处理1.1.2 Java平台nJava EE(Java Platform,Enterprise Edition)。开发和部署可移植、健壮、可伸缩且安全的服务器端 Java 应用程序,可以用来实现企业级的面向服务体系结构(service-oriented architecture,SOA)和 Web 2.0 应用程序。Enterprise JavaBeans(EJB):使用一个组件模型来简化中间件应用程序的开发JavaMail:邮件处理:邮件处理Ja
20、vaServer Pages(JSP):允许 Web 开发人员快速地开发和轻松地维护动态的独立于平台的 Web 页面Java Servlets: 提供一种基于组件的独立于平台的方法,可以构建基于 Web 的应用程序1.1.2 Java平台nJava ME(Java Platform,Micro Edition)。Java ME 为在移动设备和嵌入式设备(比如手机、PDA、电视机顶盒和打印机)上运行的应用程序提供一个健壮且灵活的环境。Connected Limited Device Configuration:组成资源有限的移动信息设备的 Java 运行时环境的两种配置之一Mobile Info
21、rmation Device Profile:组成资源有限的移动信息设备的 Java 运行时环境的两种配置之一Mobile 3D Graphics API for J2ME(M3G)是一种轻量的交互式 3D 图形 API,1.1.2 Java平台1.2 Java程序设计环境1.2.1 Java开发工具包nJava开发工具集JDK-Java Development Kits nJava编译器:javac.exenJava运行时解释器:java.exenJava应用程序编程接口:APInJava文档化化工具:javadoc.exen其它工具及资源:如用于程序打包的jar,验证class文件的pre
22、verify等。n简单开发工具:文本编辑器、Ultraedit. EditplusEclipse & myeclipsenEclipse 下载nEclipse 界面熟悉n创建JAVA projectn程序调试n生成JARn生成javadocn外部JAR包的调用n数据库视图的配置nWeb服务器的配置nWeb project的创建nWeb project的部署及调试Eclipse下载n下载地址http:/www.eclipse.org/downloads1、Eclipse启动2、选择一个workspace启动3、创建一个新工程 Filenewproject4、输入工程名(如Test),点击fini
23、sh5、创建、创建java类:点击工程名类:点击工程名Test右键右键newClass6、在、在Name输入框输入类名,如输入框输入类名,如Helloword7、编辑、运行、调试n运行Java应用程序:RunRun AsJava Applicationn若用外面参数传入main方法的args参数,则RunRunn若要调试,则RunDebug具体见调试方法运行时传入参数:run ,选中Arguments,在Program arguments输入框中输入参数设置断点调试:双击需设置断点的行的左边框设置断点调试:双击需设置断点的行的左边框Rundebug调试技巧n单步调试按F6,按F8结束运行n鼠标
24、移至某一变量,则会显示该变量当前的值n在Variables的显示框(若没出现,则选windowshow view Variables)查看各变量的变化情况n在windowshow viewExpressions输入表达式查看计算结果调试快捷键nF5 单步跳入nF6 单步跳过nF7 单步返回nF8 继续 跳到下一个断点8、添加外部的类库9、改变工作目录fileswitch workspace10、导入已存在工程:fileimport11、选择已存在的工程目录12、选中已存在的工程后点击finish常用快捷键作用域 功能 快捷键 Java编辑器 格式化 Ctrl+Shift+F Java编辑器 组
25、织导入 Ctrl+Shift+O Java编辑器 生成代码Alt+Shift+S 全局查找并替换Ctrl+F全局打开资源 Ctrl+Shift+R什么是Jar包?nJAR(Java Archive,Java 归档文件)是与平台无关的文件格式,它允许将许多文件组合成一个压缩文件。 nJAR 文件格式以流行的 ZIP 文件格式为基础。与 ZIP 文件不同的是,JAR 文件不仅用于压缩和发布,而且还用于部署和封装库、组件和插件程序,并可被像编译器和 JVM 这样的工具直接使用。 利用Eclipse打jar包n利用命令打jar包:jar cvf jar-file input-file.n利用Eclip
26、se打jar包:选中想要打jar包的文件或者文件夹右键-Export-JAR file 什么是war包?nWAR(Web Archive file)网络应用程序文件是与平台无关的文件格式,它允许将许多文件组合成一个压缩文件。 利用Eclipse打war包n利用命令打war包:jar cvf jar-file input-file.n利用Tomcat插件打war包:n选中工程-Properties-Tomcat-Export To War Settings什么是Javadoc?nJavadoc是Sun公司提供的一个技术,它从程序源代码中抽取类、方法、成员等注释形成一个和源代码配套的API帮助文档
27、。也就是说,只要在编写程序时以一套特定的标签作注释,在程序编写完成后,通过Javadoc就可以同时形式程序的开发文档了。 利用Eclipse生成n利用命令生成javadoc包:javadoc 选项 软件包名称 源文件 filen选中想要生成javadoc的文件或者文件夹右键-Export-JavadocJAR包引用Web server配置Web应用程序开发数据库视图的配置版本管理nVSS 、SVN & CVSn服务器的安装及配置n客户端的安装及使用Clearcase、VSS 、SVN & CVSnVisual SourceSafe微软的版本控制工具仅支持Windows操作系统。虽然简单好用但是
28、仅适用于团队级开发不能胜任企业级的开发工作。nClearcaseIBM旗下Rational公司(2003年被IBM收购)的一款重量级的软件配置管理(SCM Software Configuration Managemen)工具。与CVS和VSS不同Clearcase涵盖的范围包括版本控制、建立管理、工作空间管理和过程控制。从最初的软件配置计划到配置项的确立从变更控制到版本控制Clearcase贯穿于整个软件生命周期。 Clearcase支持现有的绝大多数操作系统但它的安装、配置、使用相对较复杂并且需要进行团队培训。nCVSConcurrent Versions System。CVS 是有着三十
29、年以上的时间的考验。CVS是开放源代码软件世界的一个伟大杰作由于CVS功能强大跨平台支持并发版本控制而且免费所以它在全球中小型软件企业中得到了广泛使用。CVS最大的遗憾就是缺少相应的技术支持许多问题的解决需要自已寻找资料甚至是研究源代码。CVS是一个典型的服务器/客户端软件有UNIX版本的CVS 、Linux版本的CVS和WINDOWS版本的CVS。CVS支持远程管理项目组分布开发时一般都采用CVS。 nSVNSubversion。采用了更先进的分支管理系统它的设计目标就是取代CVSCVS纵然易用但也有一些与生俱来的缺点比如CVS不支持文件改名只对文件控制版本而没有针对目录的管理等。之后CVS
30、 的创始人之一在其现任公司的资助下开发了SVN用以针对CVS 的一些弱点进行改进svn的简介nSubversion 是一个开源的版本控制系統, 也就是说 Subversion 管理着随时间改变的数据。 这些数据放置在一个中央资料档案库 (repository) 中。nSvn分为服务器端和客户端。 服务器端的安装可参照提示安装,然后建立项目的版本库,配置权限即可使用;(用户可以配置读或读写权限,或者没有任何权限) 客户端的安装也是按照安装提示安装,重启机器即可使用。SVN服务器的安装及配置n1.从http:/subversion.tigris.org/files/documents/15/441
31、02/svn-win32-1.5.4.zip下载subversion;n2.将下载好的zip包进行解压,例如解压到:E:svn-win32-1.5.4;n3.在MS-DOS中切换到E:svn-win32-1.5.4bin中;n4.创建版本库:n 1: svnadmin create E:svndemorepositoryn5.配置用户和权限:n到E:svndemorepositoryconf文件夹中找到svnserve.conf文件,将password-db = passwd这一行的注释取消掉,然后在该目录下的passwd文件中加入用户名和密码,格式为 用户名=密码n6.启动svn服务器:n
32、1: svnserve -d -r E:svndemorepositoryn注意不要关闭窗口。n设置为windows服务:n 1: sc create svnservice binPath= E:svn-win32-1.5.4binsvnserve.exe -service -r E:svndemo DisplayName= SvnService depend= Tcpip start= auton删除服务:se delete svnservicen7.svn地址为:nsvn:/localhost/n其他pc访问时要将localhost改为ip地址:nsvn:/192.168.1.101nsv
33、n默认的端口号:3690二、svn的常见用法1、导入(添加)n1)如果没有将项目导出到本地:选中导入的文件夹右键TortoiseSVNimport就可将 文件夹导入svn中。n注意:此命令只能导入文件夹内的文件,不能将文件夹本注意:此命令只能导入文件夹内的文件,不能将文件夹本身导入,并且此命令只能导入文件夹,不能导入文档。身导入,并且此命令只能导入文件夹,不能导入文档。n2)如果svn中的项目在本地有工作拷贝,则将要导入的文件放到相应的目录下,选中导入的文件夹或文档add,然后再右键SVN Commit,提交成功。n2、检出n1)右键svn check out,填写好要检出项目在svn的详细路
34、径和在本地的保存路径,点击“OK”按钮即可。n2)打开要存放检出文件的文件夹,右键 TortoiseSVNRepo-browser,填写svn的路径,选中要检出的文件夹或文档,点击“OK”,然后在右键svn check out,所选文件就会被检出。n3、导出 右键单击 TortoiseSVNExport 用此命令,指定路径导出的是一个干净的目录树,所谓“干净的”是指导出的文件不受svn的版本控制。默认导出的是当前版本的目录内容,当然也可以导出你想要的版本。n4、删除: 选择要删除的文档或文件夹,右键 TortoiseSVNdelete,然后再空白处点击右键,选择svn commit,则所选文档
35、或文件夹被删除。n5、更新(已将svn上的项目检出到本地) 右键选择svn update,则在本地的工作拷贝就会更新和服务器同步。注意:为了保证本地的工作拷贝和版本库中是同步的注意:为了保证本地的工作拷贝和版本库中是同步的,所以每所以每次做其他操作前都要将本地的次做其他操作前都要将本地的svn更新更新n6、版本库浏览n右键Repo-browser,可以浏览svn上的所有的项目的具体的文档。n7、查看日志(在本地有svn的下载) 右键show log,显示所有的日志文件n8、恢复历史版本n打开在本地的工作拷贝,右键 TortoiseSVNupdate to revision,点击页面上的show
36、 log,选择要恢复的版本,点击“OK”,则svn服务器上恢复到选择的版本。n9、本地恢复n在本地编辑完成,但是还没有提交到svn的服务器,执行revert操作可以将当前操作撤销。n10、重命名n选中要重新命名的文档或文件夹,右键 TortoiseSVN rename,填写新的名称,点击“OK”按钮,然后右键svn commit。n注意:注意: 1)修改完成后一定要)修改完成后一定要commit,否则服务器上的名,否则服务器上的名称没有改变,本地下载称没有改变,本地下载 也会显示错误。也会显示错误。n2)重命名后要提示相应的开发人员)重命名后要提示相应的开发人员update,否则提交时找,否则
37、提交时找不到路径不到路径。n11、锁定修改解锁n1)执行get lock操作,则用户可以单独对此文件进行编辑,其他用户只能读文件;n2)编辑锁定的文件n3)执行release操作,将锁定的文件释放,其他用户可以对其进行读写操作。n这一系列操作是为了防止不同用户同时编辑同一文件,提交时发生冲突。n12、分支与合并n1)分支:n右键 TortoiseSVN branch/tag,可以建立分支。n分支的操作不影响主干线,多个分支可以并行工作,互不干扰,独立开发。n在服务器端,选中一个目录后,右键点击,选择nCope to 在弹出的页面填入分支的地址也可建立分支。n2)合并n合并可以从主干合并到分支,
38、也可以从分支合并到主干n如从分支合并到主干上,在分支的本地拷贝中右键单击 TortoiseSVN merger,显示的页面如下图,点击页面上的merger变可将合并信息保存到本地分支工作拷贝的目录下。n从主干到分支的合并类似。作业内容n1.新建一个JAVA项目,定义好接口,导出为JAR包,同时生成JAVADOC。写明操作文档。n2.新建一个web项目,配置好web server,调用作业1中生成的jar包接口,并部署到配置好的web server上,写明操作文档。n3.在本机搭建SVN服务器,并作业1中相应的文件及操作文档,上传SVN服务器;安装SVN客户端,并将上传服务器的文件下载到本地,写明详细的操作文档。