480 likes | 901 Views
︳ Java 程序设计. 第 1 讲 Java 入门. 1. Java 语言特点. 2. Java 的发展及版本. 3. Java 程序编译执行. 4. Java 程序设计规范. 目 录. 精简的系统,力图用最小的系统实现足够多的功能。无需强大的硬件环境,在小型的机器上便可以良好地运行. 对编程人员, Java 非常友善的,无需进行复杂深奥钻研,只要理解一些基本的概念,就能编写出合适的应用程序. 类似 C ++ 的语法。 易于学习,而又比 C ++ 简单.. Java 语言的特点. 简单性 面向对象技术 分布性 健壮性 安全性
E N D
︳Java程序设计 第1讲 Java入门
1 Java 语言特点 2 Java的发展及版本 3 Java程序编译执行 4 Java程序设计规范 目 录 第1讲 Java入门
精简的系统,力图用最小的系统实现足够多的功能。无需强大的硬件环境,在小型的机器上便可以良好地运行.精简的系统,力图用最小的系统实现足够多的功能。无需强大的硬件环境,在小型的机器上便可以良好地运行. • 对编程人员,Java非常友善的,无需进行复杂深奥钻研,只要理解一些基本的概念,就能编写出合适的应用程序. • 类似 C ++的语法。 易于学习,而又比C ++简单. Java 语言的特点 • 简单性 • 面向对象技术 • 分布性 • 健壮性 • 安全性 • 体系结构中立 • 可移植性 • 解释执行 • 高性能 • 多线程 第1讲 Java入门
采用了面向对象技术并更加彻底,所有的Java程序和Java applet均是对象 • 实现了模块化和信息隐藏 • 继承性实现了代码的复用, 使用户可以建立自己的类库 Java 语言的特点 • 简单性 • 面向对象技术 • 分布性 • 健壮性 • 安全性 • 体系结构中立 • 可移植性 • 解释执行 • 高性能 • 多线程 第1讲 Java入门
通过Java提供的类库可以方便地处理TCP/IP协议,用户的应用程序可以通过URL地址访问网络上的其他对象,就像访问本地文件一样简单.通过Java提供的类库可以方便地处理TCP/IP协议,用户的应用程序可以通过URL地址访问网络上的其他对象,就像访问本地文件一样简单. Java 语言的特点 • 简单性 • 面向对象技术 • 分布性 • 健壮性 • 安全性 • 体系结构中立 • 可移植性 • 解释执行 • 高性能 • 多线程 第1讲 Java入门
Java程序在编译及运行程序时,都要进行严格的检查,以消除错误发生的可能性.Java程序在编译及运行程序时,都要进行严格的检查,以消除错误发生的可能性. • 作为一种强类型语言, Java 在编译和连接时都进行大量的类型检查,防止不匹配问题的发生. Java 语言的特点 • 简单性 • 面向对象技术 • 分布性 • 健壮性 • 安全性 • 体系结构中立 • 可移植性 • 解释执行 • 高性能 • 多线程 第1讲 Java入门
作为网络语言, Java 提供足够的安全保 障,并且要防止病毒的侵袭. • 严格检查其访问数据的权限. • 不允许网络应用程序修改本地数据 • 下载到用户计算机中的字节代码在执行前要经过工具核实. • 由Java运行时的解释器来执行,解释器通过阻止对内存的直接访间来进步提高Java的安全性. • 不能使用指针,应用程序便不能计算来非法访问对象的私有成员. Java 语言的特点 • 简单性 • 面向对象技术 • 分布性 • 健壮性 • 安全性 • 体系结构中立 • 可移植性 • 解释执行 • 高性能 • 多线程 第1讲 Java入门
网络上充满了各种不同类型的机器和操作系统.网络上充满了各种不同类型的机器和操作系统. • 为使 Java 程序能在网络的任何地方运行,解释器生成与体系结构无关的字节码结构的文件格式,他们只需提供相应的Java 运行系统,便能在任何种类的处理器上运行. Java 语言的特点 • 简单性 • 面向对象技术 • 分布性 • 健壮性 • 安全性 • 体系结构中立 • 可移植性 • 解释执行 • 高性能 • 多线程 • Java 语言产生的动机! 第1讲 Java入门
体系结构中立使得Java程序具有可移植性. • 同时,Java的类库也具有可移植性,可以在不同平台下使用. • 另外,Java的编译器由Java语言实现,运行器由标准C实现,因此Java本身也具有可移植性. Java 语言的特点 • 简单性 • 面向对象技术 • 分布性 • 健壮性 • 安全性 • 体系结构中立 • 可移植性 • 解释执行 • 高性能 • 多线程 第1讲 Java入门
Java解释器直接对Java字节码解释执行,字节码本身包含了许多编译时产生的信息,使连接过程更加简单.Java解释器直接对Java字节码解释执行,字节码本身包含了许多编译时产生的信息,使连接过程更加简单. Java 语言的特点 • 简单性 • 面向对象技术 • 分布性 • 健壮性 • 安全性 • 体系结构中立 • 可移植性 • 解释执行 • 高性能 • 多线程 第1讲 Java入门
尽管是解释执行,但具有非常高的性能,在些特定的CPU上,Java 字节码可极快速地转换成机器码,让人几乎无法感觉到它是在解释执行. • 由于Java 字节码格式的设计针对着机器码的转换,实际转换时相当简便,自动的寄存器分配与编译器对字节码的一些优化可使之生成高质量的代码. Java 语言的特点 • 简单性 • 面向对象技术 • 分布性 • 健壮性 • 安全性 • 体系结构中立 • 可移植性 • 解释执行 • 高性能 • 多线程 第1讲 Java入门
多任务操作系统->多线程 • 多线程是这样一种机制,它允许在程序中并发执行多个指令流,每个指令流都称为一个线程,彼此间互相独立. • 多个线程的执行是并发的,也就是在逻辑上“同时”,而不管是否是物理上的“同时”. • 多线程和传统单线程程序设计最大的区别在于,由于各个线程的控制流彼此独立,使得各个线程之间的代码是乱序执行的,由此带来的线程调度,同步等问题,将在以后探讨. Java 语言的特点 • 简单性 • 面向对象技术 • 分布性 • 健壮性 • 安全性 • 体系结构中立 • 可移植性 • 解释执行 • 高性能 • 多线程 第1讲 Java入门
Java 语言的特点 – 总结 平台无关性 Java 特点 完全的面向对象 多线程 第1讲 Java入门
JAVA和C/C++ 的差异 第1讲 Java入门
1 Java 语言特点 2 Java的发展及版本 3 Java程序编译执行 4 Java程序设计规范 目 录 第1讲 Java入门
程序设计语言的发展 • 程序设计语言的发展阶段: • 第一代语言 (1GL) : 二进制机器代码 • 第二代语言 (2GL) : 汇编语言 (Low Level Language LLL) • 第三代语言 (3GL): 高级语言 (HLL) • 面向过程语言:结构化程序设计 • C, PASCAL … • 面向对象语言:也称第四代语言(4GL) • C++, VB, Delphi, Java … • 第五代语言:(?) 第1讲 Java入门
Java 的诞生与发展 • 1995年5月23日,Java语言诞生 • 1996年1月,第一个JDK-JDK1.0诞生 • 1997年2月18日,JDK1.1发布 • 1998年12月8日,JAVA2企业平台J2EE发布 • 1999年6月,SUN公司发布Java的三个版本:标准版、企业版和微型版(J2SE、J2EE、J2ME) • 2000年5月8日,JDK1.3发布 • 2000年5月29日,JDK1.4发布 • 2002年2月26日,J2SE1.4发布,自此Java的计算能力有了大幅提升。 • 2004年9月30日,J2SE1.5发布,是Java语言的发展史上的又一里程碑事件。为了表示这个版本的重要性,J2SE1.5更名为J2SE5.0 • 2005年6月,Java的各种版本已经更名以取消其中的数字“2”:J2EE更名为Java EE, J2SE更名为Java SE,J2ME更名为Java ME • 2006年12月,Java SE 6.0 发布 • 2009年4月20日,Oracle宣布以74亿美元收购Sun • http://tech.sina.com.cn/focus/ibm_sun/index.shtml • Java 7于今年7月28日开始提供下载,这是Oracle收购Sun之后Java平台的首次发布 第1讲 Java入门
Java主要版本的介绍 • JDK 5 • 泛型、For-each循环、可变参数、基本类型数据与包装类自动互转… • Reached the End Of Service Life (EOSL) on November 3, 2009 • http://www.java.com/en/download/faq/java_5_eol.xml • JDK 6 • 性能、稳定性和安全性的改进;对Windows7和Vista的支持;对老版 本提供更好的兼容;提供自动更新… • 对脚本语言的支持、Http Server API、AWT新增加了两个类:Desktop和SystemTray… • http://www.java.com/en/download/help/why_upgrade.xml • JDK 7 • 没在java.com公布,目前只在Oracle.com上提供下载(为了更好地验证其稳定性) • 在JDK6的基础上进行更多的功能性改进 • JVM的非Java语言支持 • Unicode 6.0.0 支持 • switch语句包含了对字符串的支持 • http://download.oracle.com/javase/7/docs/index.html 第1讲 Java入门
1 Java 语言特点 2 Java 语言的发展及版本 3 Java程序编译执行 4 Java程序设计规范 目 录 第1讲 Java入门
Java 编程环境 - JDK • 最基本的开发工具JDK: • http://www.oracle.com/technetwork/java/javase/downloads/index.html网站免费下载 • JAVA程序要进行运行必须有JRE和API • JRE: Java Runtime Envirnment • JVM: Java Virtual Machine • API: Application Program Interface 第1讲 Java入门
Java SE平台 • Java SE API 文档,开发时必备!!! 第1讲 Java入门
Java 编程环境 - 环境变量 • 系统环境变量Path 值的设置 • 环境变量PATH JDK平台提供的Java编译器(javac.exe)和Java解释器(java.exe)等位于Java安装目录的bin文件夹中,为了能在任何目录中使用编译器和解释器,应在系统特性中设置Path • 环境变量CLASSPATH SDK的安装目录的jre文件夹中包含着Java应用程序运行时所需要的Java类库,这些类库被包含在jre\lib目录下的压缩文件rt.jar中 . 第1讲 Java入门
环境变量设置 • 对于Win2k、Win2k3、WinXP,用鼠标右键点 击“我的电脑”,弹出菜单,然后选择属性,弹出“系统特性”对话框,再单击该对话框中的高级选项,然后点击按钮“环境变量”,添加如下的系统环境变量 第1讲 Java入门
Java程序编辑器 • JAVA源程序的编辑 • 由任意一种文字编辑器如windows的写字板 • 开源 Eclipse • Sun NetBeans • JCreator • Borland JBuilder 第1讲 Java入门
Java程序的执行流程 第1讲 Java入门
Java的编译过程 • 与其他程序设计语言有很大的不同 • 例如像C++这样的语言在编译时,与机器的硬件平台信息密不可分。编译程序通过查表将所有对符号的引用转换为特定的内存偏移以以保证程序运行,编译结果是可执行的代码。 • Java 编译器不将对变量和方法的引用编译为数值引用.也不确定程序执行过程中的内存布局.而是将这些符号引用信息保留在一种扩展名为.class 的字节码文件中。 • 这种文件的最大特点就是不包含硬件的信息.因此这种字节码文件还不能在机器上执行. 第1讲 Java入门
Java的编译过程 - 2 • 传统的解释性语言如 BASIC 在解释执行的时候.是直 接将源程序一条一条的通过解释器进行词法分析、语法分析等过程最终翻译为本地的机器指令,并真正在CPU上执行 • Java解释过程是通过Java虚拟机读取Java宇节码文件,然后将其转换成和系统硬件相关的本地指令,最终在CPU上执行 • Java虚拟机是使字节码文件具有跨平台能力的核心结构,包含了对Java字节码进行翻译的解释器。该解释器解释执行字节码的过程分为三步进行代码的装入、代码的校验和代码的执行 • 因为特殊的编译和解释过程,使得Java 这种语言具有了平台无关性和安全性。这些特性的关键就在于Java字节码的设计 第1讲 Java入门
Java的编译过程 - 3 • 编译当创建了Hello.java这个源文件后,就要 使用Java编译器(javac.exe)对其进行编译。 • D:\javacode\>javac HelloWorld.java • 运行Java应用程序必须通过Java虚拟机中的Java解释器(java.exe)来解释执行其字节码文件。Java应用程序总是从主类的main方法开始执行。因此,必须如下运行Java应用程序: • D:\javacode\>java HelloWorld 第1讲 Java入门
Java 程序 两类Java程序 • Java Application 和 Java Applet Java Applet -- Java小程序 Java Application -- Java应用程序 第1讲 Java入门
Java Application • Java Application是可以在控制台上 直接运行 的程序,同使用C/C++编制的应用程序类似。 第1讲 Java入门
Java Applet • Applet是Java的小应用程序,它是动态、安全、 跨平台的网络应用程序。Java Applet嵌入HTML(超文本标记性语言)语言,通过主页发布到Internet。 第1讲 Java入门
Java的各种应用模式 A 单机:简单 、 不支撑复杂系统、灵活、速度快 B 主机-终端:数据集中、 功能集中 、I/O在终端 、运算在主机 、负荷重 C 客户端/服务器 C/S 客户端和服务器分别编写程序 D 浏览器/服务器 B/S: 客户端只需安装浏览器软件 只做服务器编程 第1讲 Java入门
First Java Program - Application • public class HelloWorld • { • public static void main (String [ ] args) • { • System.out.println(" HelloWorld, Welcome to Java! "); • } • } 第1讲 Java入门
First Java Program - Applet • import java.applet.*; • import java.awt.*; • public class Boy extends Applet • { • public void paint(Graphics g) • { g.setColor(Color.blue); • g.drawString("我一边喝着咖啡,一边学Java", 5, 30); • g.setColor(Color.blue); • g.drawString("我学得很认真",10,50); • } • } 第1讲 Java入门
编译运行Applet • 编译 C:\javac Boy.java • 运行 Java Applet由浏览器来运行,因此我们必须编写一个超文本文件 (含有applet标记的web页)通知浏览器来运行这个Java Applet。以下是一个简单的html文件:Boy.html <applet code=Boy.class height=100 width=300></applet> • 如果浏览器不支持Java Applet程序,你也可以使用SDK提供的appletviewer来调试小程序,如,在DOS命令行执行: C:\appletviewer Boy.html 第1讲 Java入门
1 Java 语言的特点 2 Java的发展及版本 3 Java程序编译执行 4 Java 程序设计规范 目 录 第1讲 Java入门
走近Java程序 • Java 程序结构 • |包 • |----文件 • |----------类 • |----------------成员(成员变量,方法) • |-------------------------语句 • |-------------------------------------表达式 • package • import • 类和接口声明 第1讲 Java入门
走近Java程序 • 程序示例: 一个java源程序可以是如下结构,该源程序命名为HelloWorld.java:package cn.edu.tzc; /*包声明,编译生成的所有.class文件放到包 cn.edu.tzc中*/import java.util.Date; import …; //引入程序中用到的所有类public class HelloWorldApp{......} /*公共类HelloWorld的定义,类名必须与文件名相同*/class MyClassA{......} //第一个普通类MyClassA的定义...... //其它普通类的定义interface MyInterfaceA{......} /*第一个接口 MyInterfaceA的定义*/...... //其它接口定义 第1讲 Java入门
走近Java程序—package语句 • Java类编译生成字节码文件(.class) • 类 HelloWorld HelloWorld.calss • 重名? • Package 包 • 目录结构组织,如:java.util • 功能相似的类放在一起 • 带package语句的程序编译及运行 • java.hello.HelloWorld • 编译:在hello目录下javac –d [路径] HelloWorld.java • 运行:在包外目录下java java.hello.HelloWorld 第1讲 Java入门
走近Java程序—import语句 • 引入类 • 例如:Date • java.util.Date • java.sql.Date • sun.util.calendar.BaseCalendar.Date • … • 用于通知编译器在编译时找到相应的类文件 • java.lang包中的所有类无须使用import声明 • 其余所有的非java.lang包中的类都必须使用import语句声明,否则编译时报错 • Import时若包不在classpath中,同样会报错 第1讲 Java入门
走近Java程序 • 类定义 • 在java中所有方法和变量都存在于类中,java不支持全局的变量和方法 • 定义: 关键字 类名 class HelloWorld 第1讲 Java入门
走近Java程序 • 主方法main() • 一个java application程序的入口. public static void main(String[] args) • 一个java application程序必须包含的一部分. • public指明这个 main 方法可以被所有的对象使用 (can be called by any object) • static指明这个 main 方法是一个类方法. • void指明这个 main 方法不返回任何值. • 参数String[] args是一个命令行参数. 第1讲 Java入门
走近Java程序 • 注释 Java application中的注释有三种 • /* text */ 编译器忽略从 /*到 */的所有文字. • /** documentation */ 用于自动生成代码说明文档,编译器忽略文档documentation注释的所有文字. • // text 编译器忽略//之后本行的所有文字. 第1讲 Java入门
走近Java程序 • 关键字(保留字) • Java语言中已经被赋予特定意义的一些单词 • 不可以把这类词作为变量名或方法名来用 • true、false、null都是小写,C++中大写 • 无sizeof运算符:所有数据类型的长度和表示是固定的,与平台无关 • goto和const是Java中保留的没有意义的关键字 • 参考:http://download.oracle.com/javase/tutorial/java/nutsandbolts/_keywords.html • 标识符 Identifier • 名字,识别记号:计算机中的变量、常量、方法、类都是用名字来加以识别的,这种名字就是标识符 • 起名:由一个字母或者一串以字母开头由字母、数字或符号组成的字符串 • 符号只允许下划线_和美元$符号 • 名字长度不限 • 注意英文字母大小写代表不同含义 • 取名应遵循易于理解、便于记忆的原 • 例:Lotus_1, money$ , 3com, my-name, d?d[哪些是合法的?] 第1讲 Java入门
走近Java程序 • Case insensitive ! • 标识符命名约定 • 包名:包名是全小写的名词,中间可以由点分隔开 • java.awt.event; • 类/接口名:首字母大写,通常由多个单词合成一个类/接口名,要求每个单词的首字母也要大写 • class HelloWorldApp, interface Collection; • 方法名:往往由多个单词合成,第一个单词通常为动词,首字母小写,中间的每个单词的首字母都要大写 • getText, isButtonPressed; • 变量名:全小写,一般为名词; 当需要由多个单词合成时与方法名的命名方式相同 • length, name, firstPerson • 常量名:基本数据类型的常量名为全大写,由多个单词构成时可用下划线隔开,如YEAR,WEEK_OF_MONTH;如果是对象类型的常量,则是大小写混合,由大写字母把单词隔开。 第1讲 Java入门
总结 • Java 语言概述 • Java 特点 • Java vs C++ • Java 程序编译运行过程 • Java 开发环境配置与工具使用 • 简单Java 程序实例 • Java关键字与标识符 第1讲 Java入门
思考与练习 • JAVA 语言有哪些特点? • JAVA平台是什么?其运行原理与一般的操作平台有何不同? • 何为字节码?采用字节码的最大好处是什么? • 如何建立和运行JAVA程序? • 编写并运行一个JAVA程序,使其输出:I like Java very much. 第1讲 Java入门