![01-Java编程概述_第1页](http://file3.renrendoc.com/fileroot_temp3/2022-1/14/34df0d2d-4618-49da-9968-dead0a7cf8a7/34df0d2d-4618-49da-9968-dead0a7cf8a71.gif)
![01-Java编程概述_第2页](http://file3.renrendoc.com/fileroot_temp3/2022-1/14/34df0d2d-4618-49da-9968-dead0a7cf8a7/34df0d2d-4618-49da-9968-dead0a7cf8a72.gif)
![01-Java编程概述_第3页](http://file3.renrendoc.com/fileroot_temp3/2022-1/14/34df0d2d-4618-49da-9968-dead0a7cf8a7/34df0d2d-4618-49da-9968-dead0a7cf8a73.gif)
![01-Java编程概述_第4页](http://file3.renrendoc.com/fileroot_temp3/2022-1/14/34df0d2d-4618-49da-9968-dead0a7cf8a7/34df0d2d-4618-49da-9968-dead0a7cf8a74.gif)
![01-Java编程概述_第5页](http://file3.renrendoc.com/fileroot_temp3/2022-1/14/34df0d2d-4618-49da-9968-dead0a7cf8a7/34df0d2d-4618-49da-9968-dead0a7cf8a75.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Java编程概述 Java发展简史 Java技术体系架构 JDK的安装和配置 编写一个Java应用程序 常见错误计算机语言的发展计算机语言的发展第一代语言第一代语言打孔机打孔机-纯机器语言纯机器语言直接由计算机的指令组成,指令、数据、地址都是以直接由计算机的指令组成,指令、数据、地址都是以0和和1的符合的符合串组成;可以被计算机直接执行。串组成;可以被计算机直接执行。第二代语言第二代语言汇编语言汇编语言-用容易理解和记忆的符号表示指令、数据以及寄存器等,用容易理解和记忆的符号表示指令、数据以及寄存器等,抽象层次很低,程序员需要考虑大量的机器细节。抽象层次很低,程序员需要考虑大量的机器细节。计算
2、机语言的发展计算机语言的发展第三代语言第三代语言 高级语言高级语言屏蔽了机器细节,提高了抽象层次接近于人的自然语言,提出了结构屏蔽了机器细节,提高了抽象层次接近于人的自然语言,提出了结构化数据和语句,数据和过程抽象等概念。化数据和语句,数据和过程抽象等概念。C面向过程面向过程C+面向过程面向过程/面向对象面向对象Java跨平台的纯面向对象的语言跨平台的纯面向对象的语言面向对象的语言与以往的各种语言的根本不同是,它的设计出发点就面向对象的语言与以往的各种语言的根本不同是,它的设计出发点就是为了能直接的描述问题域中客观存在的事物。是为了能直接的描述问题域中客观存在的事物。前面三种的语言都要自己控制
3、如何做怎么做。前面三种的语言都要自己控制如何做怎么做。计算机语言的发展计算机语言的发展第四代语言第四代语言SQL 只需要告诉机器我要什么,不管怎么得到结果的。只需要告诉机器我要什么,不管怎么得到结果的。第五代语言第五代语言自然语言自然语言计算机语言是朝着人更加容易理解的方向发展,而不是朝着计算机容计算机语言是朝着人更加容易理解的方向发展,而不是朝着计算机容易理解的方向发展易理解的方向发展.Java概述 Java的出生地:SUN Microsystems Inc. SUN:Stanford University Network Java之父:James GoslingJava发展简史 1991年
4、出现 1995年发布 最新推出 Java Platform, Standard Edition,v1.7,现在用得最广的是1.5Java技术体系架构Java技术体系架构J2ME(Java 2 Micro Edition) 微型版(致力于消费产品和嵌入式设备的最佳解决方案),提供了HTTP高级Internet协议,使移动电话能以Client/Server方式直接访问Internet的全部信息,不同的Client访问不同的文件,此外还能访问本地存储区,提供最高效率的无线交流。J2SE (Java 2 Standard Edition)标准版(桌面开发和低端商务应用的解决方案),提供CORBA标准的
5、ORB技术,结合Java的RMI支持分布式互操作环境。J2EE (JAEE)(Java 2 Enterprise Edition)企业版(以企业为环境而开发应用程序的解决方案),目前已经成为开发商创建电子商务应用的事实标准。Java 2 Platform Standard EditionJ2EE 三大组件1)Servlet -提供了基于组件、平台无关的方法用以构建基本Web的应用程序。2) JSP- JSP技术是servlet的扩展,代表Java服务器端页面。3) EJB-企业级的Java Bean,定义了服务器端组件是如何被编写以及提供了组件之间和服务器的标准架构协议。J2EE 服务和相关术
6、语4) JDBC-JDBC是对大范围关系型数据库提供了统一的访问。 JDBC2.0提供了数据库连接池的支持。5) RMI和和RMI-IIOP-RMI (remote method invocation)是一种远程方法调用的一种机制。 EJB依靠RMI作为同一机器或不同机器组件间会话的API。-IIOP-Internet Inter-ORB协议,RMI的扩展。6) JNDI-Java命名和目录接口(Java Naming and Directory Interface)。J2EE 服务7) JMS-Java消息服务(Java Messaging Service),异步通讯的实现。- 通过结合Ja
7、va技术于企业消息,JMS API提供了一个新的,强有力的工具以解决企业计算问题。通过定义一组消息概念和编程策略,JMS API提升了程序员的生产效率。8) JTA和和JTS- JTA Java Transaction API;-JTS Java Transaction Service;-JTA是高级别的传输API,允许应用程序和J2EE服务器管理事务;JTS表明了事务管理器的具体实现。J2EE 相关术语9) 安全安全 Security-J2EE访问控制包括鉴定(authentication)和授权(authorization)。10) 容器容器 Containers-每个组件运行于J2EE平
8、台提供商提供的容器内。-容器提供了特定的部署和运行服务(生命周期、安全,事务等)。11) Web容器和容器和EJB容器容器 -通过调用JSP和servlet来返回结果给客户端,Web组件提供给客户 端以运行时支持,如Tomcat。-EJB容器提供事务、EJB组件状态管理以及安全等方面的自动支持。 如Weblogic、Jboss。JVM (Java Virtual Machine) 在一台计算机上由软件或硬件模拟的计算机。Java虚拟机(JVM)读取并处理经编译过的平台无关的字节码class文件 。 Java编译器针对Java虚拟机产生class文件,因此是独立于平台的。 Java解释器负责将J
9、ava虚拟机的代码在特定的平台上运行。 Sun 目前采用的目前采用的JVM叫做叫做HotSpot。Java虚拟机虚拟机 (JVM)Java运行时环境(JRE) 它是运行Java应用程序所必须的。JRE包括JVM、Java核心类库(Java API)和若干支撑文件组成。 Java运行环境的三项主要功能: 加载代码:由class loader 完成; 校验代码:由bytecode verifier 完成; 执行代码:由 runtime interpreter完成。JDK JDK 是Java开发工具(Java Development Kit)的简称,这是为Java开发人员准备的,它除了包括JRE的全
10、部内容外,还包括编译、调试、文档生成等工具,这些工具对于开发Java应用程序和Java小程序(applet)都是必不可少的。作为Java开发者,学习和掌握JDK是必不可少的功课,目前最新的版本是JDK1.7。问题问题JRE和JVM是什么关系?答: 简单的说:JRE包含JVM,JVM是运行Java程序的核心,而运行Java程序不仅需要核心虚拟机,还需要其他的类加载器、字节码效验器以及大量的基础类库。JRE除了包含JVM之外,还包含运行Java程序的其他环境支持。Java的垃圾回收机制(GC) 不再使用的内存空间应回收-垃圾收集。 在C/C+ 等语言中,由程序员负责回收无用内存。 Java语言解除
11、了程序员回收无用内存空间的责任。它提供一种系统级线程跟踪存储空间的分配情况。并在JVM的空闲时,检查并释放那些可被释放的存储器空间。 垃圾收集在Java程序运行过程中自动进行,程序员无法精确控制和干预。 环境变量JAVA_HOME让诸如Tomcat等应用软件找到你Java的安装路径,因为他们需要用,而在启动Tomcat的时候,他直接引用了%JAVA_HOME%设置一个JAVA_HOME,环境变量指定JDK安装目录,很多服务器都需要这个变量的。 环境变量PATH 设置供操作系统去寻找和执行应用程序的路径。也就是说,如果操作系统在当前目录下没有找到我们想要执行的程序和命令时,操作系统就会按照pat
12、h环境变量指定的目录依次去查找,以最先找到的为准。Path环境变量可以存放多个路径,用分号(;)隔开。在Linux下用冒号(:)隔开。设置后可以在命令行用 set path 命令查看,该命令只对当前命令行有效。jdk的命令(工具)存放在JDK安装路径的bin目录下通常设置到jdk安装目录的bin目录下set path=c:javajdk_1.6.0_02bin思考你的cmd是如何直接启动notepad的.java -version javac -version环境变量CLASSPATH -Java在编译和运行时要找的class文件所在的路径。注意:1. CLASSPATH大写(为什么?) li
13、nux/Unix = 区分大小写2.如果不设置CLASSPATH,JVM默认会在你存放当前.java文件的路径去找.class文件,也就是说如果不设置CLASSPATH 那么他的默认值是 .,但是一旦设置了CLASSPATH,又没有设置.那么JVM就只去CLASSPATH指定的位置去找编译出来的.class文件。3.注意,指定CLASSPATH不是指定.class文件的具体位置,还要考虑包结构.;表示当前目录jar包的用法,也就是说JVM如果发现CLASSPATH当中有jar包,会自动读取包内内容,相当于在当前目录有包内内容。CLASSPATH的设置开发第一个Java应用程序 开发Java应用
14、的基本步骤: 编写源代码,生成 .java文件。 编辑Java文件写业务逻辑,用文本编辑工具即可;(EditPlus) 编译源代码,生成 .class文件;javac HelloWorld.java或javac *.java 运行该程序java HelloWorld开发Java应用编写程序public class HelloWorld/Java应用程序入口方法public static void main(String args) /向控制台打印一条信息System.out.println(Hello World!);开发Java应用编译程序 将上述程序内容保存为一个扩展名为.java的文件,
15、文件命名为HelloWorld.java。 进入到java源文件保存的目录,通过下列指令来编译这个java文件:javac HelloWorld.java 或者:javac *.java 编译同目录下所以java文件开发Java应用运行程序 在.java文件编译生成的.class文件所在的路径下,执行如下命令:java HelloWorld 然后回车问题问题为什么 java 命令不需要指定目标文件名?答:因为Java编译后生成的字节码文件有默认的文件名:文件名总是以源文件所定义的类的类名为主文件名,以.class为后缀名。这意味着如果一个源文件里定义了多个类,将编译生成多个字节码文件。Hell
16、oWorld应用要点1.Java中的程序必须以类(class)的形式存在,一个类要能被解释器直接启动运行,这个类必须有main函数,JVM运行时会首先调用这个类的main函数(执行入口)。Exception in thread main java.lang.NoSuchMethodError: main2.如果class前面没有public修饰符,源文件名可以是一切的合法的名称。而带有public修饰符的类名必须和文件名同名,但是与文件名同名的类却不一定要带有public修饰符。helloWorld.java中的类 HelloWorld 是公共的,应在名为 HelloWorld.java 的文
17、件中声明Java语言严格区分大小写。每个语句以分号( ; )结束。HelloWorld应用要点3.运行时输入的命令是java HelloWorld,而不是java HelloWorld.class。还要注意,java命令后跟的是类名,而不是文件名。4.关于java HelloWorld这个命令,对于Windows来说,java是一个命令,HelloWorld是命令的参数。对于java语言来说,java命令启动了一个虚拟机,而HelloWorld是这个JVM上能独立运行的一个java类。HelloWorld应用要点Java虚拟机按照classpath环境变量指定的目录顺序去查找一个类,以最先找到
18、的为准。Java虚拟机查找类的过程和Windows查找可执行文件exe是有区别的,不会在当前目录下查找,只找classpath指定的目录。Windows是会在当前目录下查找命令的。而Linux命令也不会在当前目录下查找命令,只在path指定的目录中查找。set classpath=可以看做Sun公司提供的JDK的一个bug如何让java虚拟机在任何情况下都去当前目录查找要使用的类呢?在classpath设置的时候加上一个点(.)就可以了。HelloWorld的运行HelloWorld的运行运行java字节码的工作是由解释器来完成的。共分三步:代码的装入、代码的校验和代码的执行。1.classL
19、oader负责装入运行一个程序需要的所有代码,包括代码中所继承的类和被调用的类。当classLoader装入一个类时,该类被放在自己的名字空间中。除了通过符号引用自己名字空间以外的类,类之间没有其他方法可以影响其他类。本台机器上的所有类都在同一地址空间内,而所有从外部引进的类,都有自己独立的名字空间。这使得本地类通过共享的名字空间获得较高的运行效率,同时又保证了它们与从外部引进的类不会相互影响。通过这种内存管理机制,java很好的解决了由于超类改变而使子类崩溃的问题,也有效的防止了代码对地址的非法访问。HelloWorld的运行2.被装入的代码有字节码校验器进行检查。校验器可以发现操作数栈溢出
20、、非法数据类型转化等多种错误。3.代码的执行:有两种方式: A.即时编译:解释器先将字节码编译成机器码,执行。 B.解释执行:解释器通过每次解释并执行一小段代码来完成java字节码程序的所有操作。 JVM通常采用的是B方式。这使得将字节码翻译为机器代码的工作具有较高的效率。对于那些运行速度要求较高的应用程序,解释器可将java字节码即时编译为机器码,从而很好的保证了java代码的可移植性和高性能。常见错误 编译时:HelloWorld.java:1: class helloworld is public, should be declared in a file named helloworl
21、d.java public class helloworld 1 error 运行时:Exception in thread main java.lang.NoSuchMethodError: main 运行时:Exception in thread main java.lang.NoClassDefFoundError: helloWorld (wrong name: HelloWorld)一次编译到处运行一次编译到处运行首先编写Java源代码,然后编译程序将Java源代码编译成JVM可执行的代码,即Java字节码。字节码文件相当于C源程序编译后Windows上的exe可执行文件,JVM的作
22、用类似Windows操作系统。在Windows上运行的是exe文件,在JVM上运行的是Java字节码文件,也就是.class文件。执行exe的过程,就是从exe文件中取出一条条计算机指令,交给CPU去执行。 执行class文件的过程,也是JVM从Java字节码文件中取出一条条的字节码指令交给“CPU”去执行。硬件与软件是可以互相转化的。执行字节码的“CPU”可以是硬件,也可以是某个系统上运行的一个软件,这个软件就被称为字节码解释程序(也就是Java虚拟机).由此可见,只要在特定的平台下实现了Java解释器程序,Java字节码就能通过解释器程序在该平台下运行,这就是Java跨平台的根本原理。Java应用程序运行机制应用程序运行机制计算机的高级编程语言类型: 编译型 解释型Java 语言是两种类型的结合;Java源程序、字节码文件,机器码指令。Java兼顾解释性与编译性语言的特点,Java源文件转换成class文件的过程是编译型的,class在操作系统上运行的过程是解释型的,Ja
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中国植物蛋白饮料行业市场运行动态及投资发展潜力分析报告
- 高中物理题型解题技巧之电磁学篇11 等效阻抗秒解变压器动态问题(原卷版)
- 2.2 长度与时间的测量(课件)2022-2023学年八年级物理上学期同步
- 二零二五年度装配式建筑造价工程师聘用协议4篇
- Module4 Unit2 The apples are falling down the stairs.教学课件-六年级英语下册课堂外研版三起
- 《甜津津的河水》课件
- 《高位胆管癌的护理》课件
- 《运动品牌标志》课件
- 02.冠词【知识精研】小学英语语法专项系列 (人教PEP版)
- 2025至2031年中国圆底计量罐行业投资前景及策略咨询研究报告
- 人教版(2025新版)七年级下册数学第七章 相交线与平行线 单元测试卷(含答案)
- 春节节后复工全员安全意识提升及安全知识培训
- 道路运输企业主要负责人和安全生产管理人员安全考核试题库(含参考答案)
- 贵州省贵阳市2023-2024学年高一上学期期末考试 物理 含解析
- 青岛版五四制五下数学课程纲要
- 稻盛和夫的哲学与阿米巴
- 冷库验证方案
- 行政事业单位会计实操
- 中国燃气建设工程竣工验收暂行规定
- 春尺蠖测报办法
- 岩海动测仪器及软件使用说明1
评论
0/150
提交评论