好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

Java编程概述PPT课件.ppt

40页
  • 卖家[上传人]:cn****1
  • 文档编号:592799637
  • 上传时间:2024-09-22
  • 文档格式:PPT
  • 文档大小:679.50KB
  • / 40 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • Java编程概述编程概述n nJava发展简史n nJava技术体系架构n nJRE的安装n n编写一个Java应用程序n n新手常见错误 计算机语言的发展n n第一代语言第一代语言第一代语言第一代语言打孔机打孔机打孔机打孔机------纯机器语言纯机器语言纯机器语言纯机器语言直接由计算机的指令组成,指令、数据、地址都是以直接由计算机的指令组成,指令、数据、地址都是以直接由计算机的指令组成,指令、数据、地址都是以直接由计算机的指令组成,指令、数据、地址都是以"0""0"和和和和"1""1"的符合的符合的符合的符合串组成;可以被计算机直接执行串组成;可以被计算机直接执行串组成;可以被计算机直接执行串组成;可以被计算机直接执行n n第二代语言第二代语言第二代语言第二代语言汇编语言汇编语言汇编语言汇编语言-- --用容易理解和记忆的符号表示指令、数据以及寄存器等,用容易理解和记忆的符号表示指令、数据以及寄存器等,用容易理解和记忆的符号表示指令、数据以及寄存器等,用容易理解和记忆的符号表示指令、数据以及寄存器等,抽象层次很低,程序员需要考虑大量的机器细节抽象层次很低,程序员需要考虑大量的机器细节。

      抽象层次很低,程序员需要考虑大量的机器细节抽象层次很低,程序员需要考虑大量的机器细节 计算机语言的发展n n第三代语言第三代语言第三代语言第三代语言 高级语言高级语言高级语言高级语言屏蔽了机器细节,提高了屏蔽了机器细节,提高了屏蔽了机器细节,提高了屏蔽了机器细节,提高了 的抽象层次接近于人的自然语言,提出了结的抽象层次接近于人的自然语言,提出了结的抽象层次接近于人的自然语言,提出了结的抽象层次接近于人的自然语言,提出了结构化数据和语句,数据和过程抽象等概念构化数据和语句,数据和过程抽象等概念构化数据和语句,数据和过程抽象等概念构化数据和语句,数据和过程抽象等概念C C面向过程面向过程面向过程面向过程C++C++面向过程面向过程面向过程面向过程/ /面向对象面向对象面向对象面向对象JavaJava跨平台的纯面向对象的语言跨平台的纯面向对象的语言跨平台的纯面向对象的语言跨平台的纯面向对象的语言面向对象的语言与以往的各种语言的根本不同是,它的设计出发点就面向对象的语言与以往的各种语言的根本不同是,它的设计出发点就面向对象的语言与以往的各种语言的根本不同是,它的设计出发点就面向对象的语言与以往的各种语言的根本不同是,它的设计出发点就是为了能直接的描述问题域中客观存在的事物。

      是为了能直接的描述问题域中客观存在的事物是为了能直接的描述问题域中客观存在的事物是为了能直接的描述问题域中客观存在的事物前面三种的语言都要自己控制怎么做怎么做前面三种的语言都要自己控制怎么做怎么做前面三种的语言都要自己控制怎么做怎么做前面三种的语言都要自己控制怎么做怎么做 计算机语言的发展n n第四代语言第四代语言第四代语言第四代语言SQL SQL 只需要告诉机器我要什么,不管怎么得到结果的只需要告诉机器我要什么,不管怎么得到结果的只需要告诉机器我要什么,不管怎么得到结果的只需要告诉机器我要什么,不管怎么得到结果的n n第五代语言第五代语言第五代语言第五代语言自然语言自然语言自然语言自然语言计算机语言是朝着人更加容易理解的方向发展,而不是朝着计算机容计算机语言是朝着人更加容易理解的方向发展,而不是朝着计算机容计算机语言是朝着人更加容易理解的方向发展,而不是朝着计算机容计算机语言是朝着人更加容易理解的方向发展,而不是朝着计算机容易理解的方向发展易理解的方向发展易理解的方向发展易理解的方向发展. . Java概述概述n nJava的出生地:SUN Microsystems Inc.n nSUNSUN::Stanford University NetworkStanford University Networkn nJava之父:James Gosling Java发展简史发展简史•1991年出现•1995年发布•最新推出•Java Platform, Standard Edition,v1.5,现在用得最广的是1.4 Java技术体系架构技术体系架构 Java技术体系架构技术体系架构n nJ2SE J2SE ((Java 2 Standard EditionJava 2 Standard Edition))标准版标准版( (桌面开发和低端商务应用的解决方案桌面开发和低端商务应用的解决方案) ),提供,提供CORBACORBA标准的标准的ORBORB技术,结合技术,结合JavaJava的的RMIRMI支持分布式互操作环境。

      支持分布式互操作环境n nJ2EE (JAEE)J2EE (JAEE)((Java 2 Enterprise EditionJava 2 Enterprise Edition))企业版企业版( (以企业为环境而开发应用程序的解决方案以企业为环境而开发应用程序的解决方案) ),目前已经成为开,目前已经成为开发商创建电子商务应用的事实标准发商创建电子商务应用的事实标准n nJ2MEJ2ME((Java 2 Micro EditionJava 2 Micro Edition)) 微型版微型版( (致力于消费产品和嵌入式设备的最佳解决方案致力于消费产品和嵌入式设备的最佳解决方案) ),提供了,提供了HTTPHTTP高级高级InternetInternet协议,使移动能以协议,使移动能以Client/ServerClient/Server方式直接访问方式直接访问InternetInternet的全部信息,不同的的全部信息,不同的ClientClient访问不同的文件,此外还能访问本地存储访问不同的文件,此外还能访问本地存储区,提供最高效率的无线交流区,提供最高效率的无线交流 J2EE 三大组件三大组件1)1)ServletServlet -- --提供了基于组件、平台无关的方法用以构建基本提供了基于组件、平台无关的方法用以构建基本WebWeb的应用程序。

      的应用程序2) JSP2) JSP-- -- JSP JSP技术是技术是servletservlet的扩展,代表的扩展,代表JavaJava服务器端页面服务器端页面3) EJB3) EJB-- --企业级的企业级的Java BeanJava Bean,定义了服务器端组件是如何被编写以及提供了,定义了服务器端组件是如何被编写以及提供了在组件和管理它们的服务器和组件间的标准架构协议在组件和管理它们的服务器和组件间的标准架构协议 J2EE 服务服务4) JDBC4) JDBC--JDBC--JDBC对大范围关系型数据库提供了统一的访问对大范围关系型数据库提供了统一的访问, , JDBC2.0JDBC2.0提供了数据库连接池的支持提供了数据库连接池的支持5) RMI5) RMI和和和和RMI-IIOPRMI-IIOP-- -- RMI RMI代表远端方法调用代表远端方法调用(remote method invocation);(remote method invocation);--IIOP-Internet Inter-ORB--IIOP-Internet Inter-ORB协议,协议,RMIRMI的扩展。

      的扩展RMI--RMI是一种调用远端方法的一种机制是一种调用远端方法的一种机制EJBEJB依靠依靠RMIRMI作作为同一机器或不同机器组件间的一种会话为同一机器或不同机器组件间的一种会话API;API;6) JNDI6) JNDI-- --JavaJava命名和目录接口命名和目录接口(Java Naming and Directory (Java Naming and Directory Interface)Interface) J2EE 服务服务7) JMS7) JMS--Java--Java消息服务消息服务(Java Messaging Service)(Java Messaging Service),异步通讯的实现异步通讯的实现 -- 通过结合通过结合JavaJava技术于企业消息,技术于企业消息,JMS APIJMS API提供了一个新的,强有力提供了一个新的,强有力的工具以解决企业计算问题通过定义一组消息概念和编程策略,的工具以解决企业计算问题通过定义一组消息概念和编程策略,JMS APIJMS API提升了程序员的生产效率提升了程序员的生产效率 J2EE 相关术语相关术语8) JTA8) JTA和和和和JTSJTS-- -- JTA Java Transaction API; JTA Java Transaction API;--JTS--JTS Java Transaction Service;Java Transaction Service;--JTA--JTA是高级别的传输是高级别的传输APIAPI,允许应用程序和,允许应用程序和J2EEJ2EE服务器管理事务服务器管理事务;JTS;JTS表明了事务管理器的具体实现。

      表明了事务管理器的具体实现9) Security9) Security-- --J2EEJ2EE访问控制包括鉴定访问控制包括鉴定(authentication)(authentication)和授权和授权(authorization)(authorization)10) Containers10) Containers-- --每个组件运行于每个组件运行于J2EEJ2EE平台提供商提供的容器内平台提供商提供的容器内 --容器提供了特定的部署和运行服务容器提供了特定的部署和运行服务( (生命周期、安全,事务等生命周期、安全,事务等) )11) Web11) Web和和和和EJBEJB容器容器容器容器-- --通过调用通过调用JSPJSP和和servletservlet以及返回结果给客户端,以及返回结果给客户端,WebWeb组件提供给客户组件提供给客户端以运行时支持,如端以运行时支持,如TomcatTomcatEJB--EJB容器提供事务、容器提供事务、EJBEJB组件状态管理以及组件状态管理以及lookuplookup、安全等的自动支、安全等的自动支持如WeblogicWeblogic、、JbossJboss。

      JVM ((Java Virtual Machine))n n在一台计算机上由软件或硬件模拟的计算机在一台计算机上由软件或硬件模拟的计算机JavaJava虚拟机虚拟机(JVM)(JVM)读取并处理经编译过的平台无关读取并处理经编译过的平台无关的字节码的字节码classclass文件文件 n nJavaJava编译器针对编译器针对JavaJava虚拟机产生虚拟机产生classclass文件,因此是文件,因此是独立于平台的独立于平台的n nJavaJava解释器负责将解释器负责将JavaJava虚拟机的代码在特定的平台虚拟机的代码在特定的平台上运行n nSun Sun 目前采用的目前采用的目前采用的目前采用的JVMJVM叫做叫做叫做叫做HotSpotHotSpot Java运行时环境(运行时环境(JRE))n n它是运行Java应用程序所必须的JRE包括JVM(Java Virtual Machine,java虚拟机)、Java核心类库(Java API)和若干支撑文件组成n nJava运行环境的三项主要功能:n n加载代码:由加载代码:由class loader class loader 完成;完成;n n校验代码:由校验代码:由bytecodebytecode verifier verifier 完成;完成;n n执行代码:由执行代码:由 runtime interpreterruntime interpreter完成。

      完成 Java Development Kit ((JDK))n nJDK 是Java开发工具(Java Development Kit)的简称,这是为Java开发人员准备的,它除了包括JRE的全部内容外,还包括编译、调试、文档生成等工具,这些工具对于开发Java应用程序和Java小程序(applet)都是必不可少的作为Java开发者,学习和掌握JDK是必不可少的功课,目前最新的版本是JDK6 问题JRE和JVM的关系?答:简单的说:JRE包含JVM,JVM是运行Java程序的核心虚拟机,而运行Java程序不仅需要核心虚拟机,还需要其他的类加载器、字节码效验器以及大量的基础类库JRE除了包含JVM之外,还包含运行Java程序的其他环境支持 Java 2 Platform Standard Edition Java的垃圾回收机制的垃圾回收机制(GC)n n不再使用的内存空间应回收不再使用的内存空间应回收--------垃圾收集垃圾收集n n在在C/C++ C/C++ 等语言中,由程序员负责回收无用内存等语言中,由程序员负责回收无用内存n nJavaJava语言解除了程序员回收无用内存空间的责任。

      语言解除了程序员回收无用内存空间的责任它提供一种系统级线程跟踪存储空间的分配情况它提供一种系统级线程跟踪存储空间的分配情况并在并在JVMJVM的空闲时,检查并释放那些可被释放的的空闲时,检查并释放那些可被释放的存储器空间存储器空间n n垃圾收集在垃圾收集在JavaJava程序运行过程中自动进行,程序程序运行过程中自动进行,程序员无法精确控制和干预员无法精确控制和干预 环境变量环境变量JAVA_HOMEJAVA_HOME让诸如让诸如TomcatTomcat等应用软件找到你等应用软件找到你JavaJava的安装路径的安装路径, ,因为他们需要用因为他们需要用, ,而在启动而在启动TomcatTomcat的时候的时候, ,他直接引用了他直接引用了%JAVA_HOME%%JAVA_HOME%设置一个设置一个JAVA_HOMEJAVA_HOME,环境变量指定,环境变量指定JDKJDK安装目录,很多服务器都安装目录,很多服务器都需要这个变量的需要这个变量的 环境变量环境变量Path Path --------设置供操作系统去寻找和执行应用程序的路径也就是说,如果操设置供操作系统去寻找和执行应用程序的路径。

      也就是说,如果操作系统在当前目录下没有找到我们想要执行的程序和命令时,操作系作系统在当前目录下没有找到我们想要执行的程序和命令时,操作系统就会按照统就会按照pathpath环境变量指定的目录依次去查找,以最先找到的为准环境变量指定的目录依次去查找,以最先找到的为准PathPath环境变量可以存放多个路径,用分号环境变量可以存放多个路径,用分号(;)(;)隔开在LinuxLinux下用冒号下用冒号(:)(:)隔开设置后可以在命令行用设置后可以在命令行用setset;;pathpath命令查看,该命令只对当前命令行有命令查看,该命令只对当前命令行有效jdkjdk的命令的命令( (工具工具) )存放在存放在JDKJDK安装路径的安装路径的binbin目录下目录下通常设置到通常设置到jdkjdk安装目录的安装目录的binbin目录下目录下set path=c:\java\jdk_1.6.0_02\binset path=c:\java\jdk_1.6.0_02\bin思考你的思考你的cmdcmd是如何直接启动是如何直接启动notepadnotepad的的. .java -version java -version javacjavac -version -version 环境变量环境变量CLASSPATH ----JavaCLASSPATH ----Java在编译和运行时要找的在编译和运行时要找的classclass所在的路径所在的路径. .1. 1.注意注意CLASSPATHCLASSPATH大写大写( (为什么为什么) )linuxlinux/Unix ===> /Unix ===> 区分大小写区分大小写2. 2.如果不设置如果不设置CLASSPATH,JVMCLASSPATH,JVM默认会在你存放当前默认会在你存放当前.java.java文件的路径文件的路径去找去找.class.class文件文件, ,也就是说如果不设置也就是说如果不设置CLASSPATH CLASSPATH 那么他的默认值是那么他的默认值是 '. '.‘, ‘,但是一旦设置了但是一旦设置了CLASSPATH,CLASSPATH,又没有设置又没有设置. .那么那么JVMJVM就只去就只去CLASSPATHCLASSPATH指定的位置去找编译出来的指定的位置去找编译出来的.class.class文件文件. .3. 3.注意注意, ,指定指定CLASSPATHCLASSPATH不是指定不是指定.class.class文件的具体位置文件的具体位置, ,还要考虑包结还要考虑包结构构. .表示当前目录表示当前目录jarjar包的用法包的用法, ,也就是说也就是说JVMJVM如果发现如果发现CLASSPATHCLASSPATH当中有当中有jarjar包包, ,会自动读会自动读取包内内容取包内内容, ,相当于在当前目录有包内内容相当于在当前目录有包内内容 CLASSPATH的设置的设置 开发一个开发一个Java应用程序应用程序(案例案例1-1)n n开发开发JavaJava应用的基本步骤:应用的基本步骤:n n编写源代码,生成编写源代码,生成 .java.java文件。

      编辑文件编辑JavaJava文件,用文本编文件,用文本编辑工具即可;辑工具即可;n n编译源代码,生成编译源代码,生成 .class.class文件;文件;javacjavac HelloWorld.javaHelloWorld.java或或java *.javajava *.javan n运行该程序运行该程序java java HelloWorldHelloWorld 开发开发Java应用应用—编写程序编写程序public class public class HelloWorldHelloWorld{ {//Java//Java应用程序入口方法应用程序入口方法public static void public static void main(Stringmain(String argsargs[])[]){ {// //向控制台打印一条信息向控制台打印一条信息System.out.println("HelloSystem.out.println("Hello World!"); World!");} }} } 开发开发Java应用应用—编译程序编译程序n n将上述程序内容保存为一个扩展名为.java的文件,文件命名为HelloWorld.java。

      n n进入到java源文件保存的目录,通过下列指令来编译这个java文件:n njavacjavac HelloWorld.javaHelloWorld.java 开发开发Java应用应用—运行文件运行文件n n在.java文件编译生成的.class文件所在的路径下,执行如下命令:n njava java HelloWorldHelloWorld,然后回车,然后回车 问题为什么Javac命令不需要指定目标文件名?答:因为Java编译后生成的字节码文件有默认的文件名:文件名总是以源文件所定义的类的类名为主文件名,以.class为后缀名这意味着如果一个源文件里定义了多个类,将编译生成多个字节码文件 HelloWorld应用要点应用要点1.Java1.Java中的程序必须以类中的程序必须以类(class)(class)的形式存在,一个类要能被解的形式存在,一个类要能被解释器直接启动运行,这个类必须有释器直接启动运行,这个类必须有mainmain函数,函数,JVMJVM运行时运行时会首先调用这个类的会首先调用这个类的mainmain函数函数( (执行入口执行入口) )Exception in thread "main" Exception in thread "main" java.lang.NoSuchMethodErrorjava.lang.NoSuchMethodError: : mainmain2. 2.如果如果classclass前面没有前面没有publicpublic修饰符,源文件名可以是一切的合修饰符,源文件名可以是一切的合法的名称。

      而带有法的名称而带有publicpublic的类名必须和文件名同名,但是的类名必须和文件名同名,但是与文件名同名的类却不一定要带有与文件名同名的类却不一定要带有publicpublic修饰符HelloWorld.javaHelloWorld.java类类 helloWorldhelloWorld 是公共的,应在名为是公共的,应在名为 helloWorld.javahelloWorld.java 的文件中声明的文件中声明JavaJava语言严格区分大小写语言严格区分大小写每个语句以分号结束每个语句以分号结束 HelloWorld应用要点应用要点3. 3.运行时输入的命令是运行时输入的命令是java java HelloWorldHelloWorld, ,而不是而不是java java HelloWorld.classHelloWorld.class还要注意,注意,javajava命令后跟的是类名,而不是文件名命令后跟的是类名,而不是文件名4. 4.关于关于java java HelloWorldHelloWorld这个命令,从这个命令,从WindowsWindows来说,来说,javajava是一个命令,是一个命令,HelloWorldHelloWorld是命令的参数。

      从是命令的参数从javajava来说,来说,javajava命令启动了一个虚拟机,命令启动了一个虚拟机,而而HelloWorldHelloWorld是这个是这个JVMJVM上能独立运行的一个上能独立运行的一个javajava类 HelloWorld应用要点应用要点JavaJava虚拟机按照虚拟机按照classpathclasspath环境变量指定的目录顺序去查找一个类,环境变量指定的目录顺序去查找一个类,以最先找到的为准以最先找到的为准JavaJava虚拟机查找类的过程和虚拟机查找类的过程和WindowsWindows查找可执行文件查找可执行文件exeexe是有区别的,不是有区别的,不会在当前目录下查找,只找会在当前目录下查找,只找classpathclasspath指定的目录指定的目录WindowsWindows是会在当前目录下查找命令的是会在当前目录下查找命令的而而LinuxLinux命令也不会在当前目录下查找命令,只在命令也不会在当前目录下查找命令,只在pathpath指定的目录中查找指定的目录中查找Set Set classpathclasspath= =可以看做可以看做SunSun公司提供的公司提供的JDKJDK的一个的一个bugbug如何让如何让javajava虚拟机在任何情况下都去当前目录查找要使用的类呢?虚拟机在任何情况下都去当前目录查找要使用的类呢?在在classpathclasspath设置的时候加上一个点设置的时候加上一个点(.)(.)就可以了。

      就可以了 HelloWorld的运行的运行 HelloWorld的运行的运行运行运行javajava字节码的工作是由解释器来完成的字节码的工作是由解释器来完成的共分三步:代码的装入、代码的校验和代码的执行共分三步:代码的装入、代码的校验和代码的执行1.classLoader1.classLoader负责装入运行一个程序需要的所有代码,包括代码中所负责装入运行一个程序需要的所有代码,包括代码中所继承的类和被调用的类当继承的类和被调用的类当classLoaderclassLoader装入一个类时,该类被放在自装入一个类时,该类被放在自己的名字空间中除了通过符号引用自己名字空间以外的类,类之间己的名字空间中除了通过符号引用自己名字空间以外的类,类之间没有其他方法可以影响其他类本台机器上的所有类都在同一地址空没有其他方法可以影响其他类本台机器上的所有类都在同一地址空间内,而所有从外部引进的类,都有自己独立的名字空间这使得本间内,而所有从外部引进的类,都有自己独立的名字空间这使得本地类通过共享的名字空间获得较高的运行效率,地类通过共享的名字空间获得较高的运行效率,同时又保证了它们与同时又保证了它们与从外部引进的类不会相互影响。

      通过这种内存管理机制,从外部引进的类不会相互影响通过这种内存管理机制,javajava很好的很好的解决了由超类改变而使子类崩溃的问题,也防止了代码对地址的非法解决了由超类改变而使子类崩溃的问题,也防止了代码对地址的非法访问 HelloWorld的运行的运行2. 2.被装入的代码有字节码校验器进行检查校验器可以发被装入的代码有字节码校验器进行检查校验器可以发现操作数栈溢出、非法数据类型转化等多种错误现操作数栈溢出、非法数据类型转化等多种错误3. 3.代码的执行:代码的执行:有两种方式:有两种方式: A. A.即时编译:解释器先将字节码编译成机器码,执行即时编译:解释器先将字节码编译成机器码,执行 B. B.解释执行:解释器通过每次解释并执行一小段代码来解释执行:解释器通过每次解释并执行一小段代码来完成完成javajava字节码程序的所有操作字节码程序的所有操作 JVM JVM通常采用的是通常采用的是B B方式这使得将字节码翻译为机器代方式这使得将字节码翻译为机器代码的工作具有较高的效率对于那些运行速度要求较高的码的工作具有较高的效率对于那些运行速度要求较高的应用程序,解释器可将应用程序,解释器可将javajava字节码即时编译为机器码,从字节码即时编译为机器码,从而很好的保证了而很好的保证了javajava代码的可移植性和高性能。

      代码的可移植性和高性能 新手常见错误新手常见错误n n编译时:编译时:HelloWorld.java:1: class HelloWorld.java:1: class helloworldhelloworld is public, should is public, should be declared in a file named be declared in a file named helloworld.javahelloworld.javan npublic class public class helloworldhelloworldn n ^ ^n n1 error1 errorn n运行时:运行时:Exception in thread "main" Exception in thread "main" java.lang.NoSuchMethodErrorjava.lang.NoSuchMethodError: main: mainn n运行时:运行时:Exception in thread "main" Exception in thread "main" java.lang.NoClassDefFoundErrorjava.lang.NoClassDefFoundError: : helloWorldhelloWorld (wrong name: (wrong name: HelloWorldHelloWorld) ) 一次编译到处运行一次编译到处运行 一次编译到处运行一次编译到处运行n n首先编写首先编写JavaJava源代码,然后编译程序将源代码,然后编译程序将JavaJava源代码编译成源代码编译成JVMJVM可执行可执行的代码,即的代码,即JavaJava字节码。

      字节码文件相当于字节码字节码文件相当于C C源程序编译后源程序编译后WindowsWindows上上的的exeexe可执行文件,可执行文件,JVMJVM的作用类似的作用类似WindowsWindows操作系统在操作系统在WindowsWindows上上运行的是运行的是exeexe文件,在文件,在JVMJVM上运行的是上运行的是JavaJava字节码文件,也就是字节码文件,也就是.class.class文件n n执行执行exeexe的过程,就是从的过程,就是从exeexe文件中取出一条条计算机指令,交给文件中取出一条条计算机指令,交给CPUCPU去执行JVMJVM执行执行classclass文件的过程,也是文件的过程,也是JVMJVM从从JavaJava字节码文件字节码文件中取出一条条的字节码指令交给中取出一条条的字节码指令交给“ “CPU”CPU”去执行硬件与软件是可以去执行硬件与软件是可以互相转化的执行字节码的互相转化的执行字节码的“CPU”“CPU”可以是硬件,也可以是某个系统上可以是硬件,也可以是某个系统上运行的一个软件,这个软件就被称为字节码解释程序运行的一个软件,这个软件就被称为字节码解释程序( (也就是也就是JavaJava虚拟虚拟机机). ).n n由此可见,只要在特定的平台下实现了由此可见,只要在特定的平台下实现了JavaJava解释器程序,解释器程序,JavaJava字字节码就能通过解释器程序在该平台下运行,这就是节码就能通过解释器程序在该平台下运行,这就是JavaJava跨平台的根本跨平台的根本原理。

      原理 Java应用程序运行机制n n计算机的高级编程语言类型计算机的高级编程语言类型: :n n编译型编译型n n解释型解释型n nJava Java 语言是两种类型的结合;语言是两种类型的结合;n nJavaJava源程序、字节码文件,机器码指令源程序、字节码文件,机器码指令n nJavaJava兼顾解释性与编译性语言的特点,兼顾解释性与编译性语言的特点,JavaJava源文件转换成源文件转换成classclass文件的文件的过程是编译型的,过程是编译型的,classclass在操作系统上运行的过程是解释型的,在操作系统上运行的过程是解释型的,JavaJava虚虚拟机充当了解释器的作用拟机充当了解释器的作用 Java常用命令java ==> java ==> 执行执行javajava程序程序; ;javacjavac ==> ==> 编译编译.java.java文件文件, ,生成生成.class.class文件文件javadocjavadoc ===> ===> 生成生成javajava的帮助文档的帮助文档; ;jar ===> jar ===> 打包成一个打包成一个javajava的压缩文件的压缩文件; ;jar -jar -cvfcvf [jar [jar名字名字] [] [打包的类型文件打包的类型文件] ] 打入打入jarjar包包jar -jar -cvfcvf hello.jarhello.jar HelloWorld.classHelloWorld.class编译的时候编译的时候: :javacjavac -d . *.java ===> -d . *.java ===> 这样就会自动地生成具体的包结构这样就会自动地生成具体的包结构; ;生成生成目录目录; ;运行的时候运行的时候:java [:java [包结构包结构].[].[类名类名] ==> ] ==> 运行运行javajava程序程序; ; API文档什么是什么是APIAPI文档?有什么作用呢?文档?有什么作用呢?答:开发一个大型的软件时,需要定义成千上万的类,而且需要很多人答:开发一个大型的软件时,需要定义成千上万的类,而且需要很多人一起开发。

      每个人都会开发一些类,并在类里面定义一些属性、方法一起开发每个人都会开发一些类,并在类里面定义一些属性、方法完成特定的功能,提供给大家使用但其他人如何知道这些类的方法完成特定的功能,提供给大家使用但其他人如何知道这些类的方法的用途呢?这时候就需要提供一份详细的说明文档了当其他人使用的用途呢?这时候就需要提供一份详细的说明文档了当其他人使用一个类或方法的时候,无需关心具体实现,只要知道这个类或方法的一个类或方法的时候,无需关心具体实现,只要知道这个类或方法的功能就可以了,然后使用这个类或方法来实现具体的目的,这就是通功能就可以了,然后使用这个类或方法来实现具体的目的,这就是通过调用应用程序接口过调用应用程序接口(API)(API)来编程APIAPI文档就是用以说明这些应用程序接口的文档对于文档就是用以说明这些应用程序接口的文档对于javajava语言而言,语言而言,APIAPI文档通常详细说明了每个类、每个方法的功能,用法文档通常详细说明了每个类、每个方法的功能,用法APIAPI是是JavaJava程序员不可缺少、经常使用的文档程序员不可缺少、经常使用的文档 小结小结n nJava技术的发展历史n nJava技术架构n nJava虚拟机的作用及其特点n nJava运行环境的安装和配置n n开发并运行简单的Java应用程序 。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.