Java语言程序设计 马 皓 mah@pku.edu.cn.

Slides:



Advertisements
Similar presentations
软件编程基础 一、程序的编辑 Java 源程序是以 Java 为后缀的简单的文本文件,可以用各种 Java 集成开发环境中的源代码编辑器来编写,也可以用其他文 本编辑工具,如 Windows 中的记事本或 DOS 中的 EDIT 软件等。 利用文字编辑器编写下列程序 public class Hello.
Advertisements

Java 大学实用教程 ( 第 3 版 ) 主讲:程继洪 第 1 章 Java 语言概述  本章导读 Java 语言的诞生Java 语言的诞生 学习 Java 的必要性 学习 Java 的必要性 Java 的特点及与 C/C++ 之关系Java 的特点及与 C/C++ 之关系.
第 2 章 Java 运行环境搭建 2.1 Java 的运行系统 2.1 Java 的运行系统 2.2 JDK 的安装与配置2.2 JDK 的安装与配置 2.3 Java 开发工具包 2.4 Java 源文件编辑环境的选择 2.5 Application 和 Applet 程序的编写与运行.
1 Java 语言程序设计 计算机系 鲍金玲. 2 引子 甲骨文 甲骨文是全球最大的信息管理软件及服务供应商,成立于 1977 年,公司总部 设在美国加利福尼亚州的红木城( Redwood Shores ),全球员工达 名, 包括 名开发人员、 7500 多名技术支持人员和.
1 Java 程序设计 Java 程序设计 Java Programming Fall, 2013.
Java 程序分类 Java Application :是完整程序,需要独立的解 释器解释运行;以 “.java” 为后缀的文件,以 main() 方法作为程序入口,由 java 编译器编译生 成字节码,由 Java 解释器加载执行字节码。 Java Applet 没有 main() 方法作为程序入口,是嵌在.
第一章 Java 程序设计技术 概述  什么是 Java 语言  一个简单的 Java 程序  程序的编译和运行  常见错误  使用 Java 核心 API 文档.
程序设计语言基础 软件工程系 秦晓燕. 课程目标 了解面向对象程序设计的思想,以及软件 开发流程。 学习 Java 语言的基本概念和编程方法,基 本掌握 Java 类库的使用。 能够利用所学的方法开发简单的小型应用 程序.
Java 程序设计 案例教程 北京大学出版社 第 01 章. Java 程序设计案例教程 第 01 章 Java 语言与面向对象程序设计 Java 语言的历史 Java 语言的特点 Java 程序的分类 Java 环境配置 Eclipse 的安装 Java 程序的调试 教学目标.
深入浅出 JVM—— 入门 第 1 讲 JVM 概述 讲师:葛一鸣 微博: QQ 群:
软件编程基础 Java Applet 是另一类非常重要的 Java 程序, 虽然它的源代码编辑与字节码的编译生成过程与 Java Application 相同,但它却不是一类可以独立运 行的程序,相反,它的字节码文件必须嵌入到另一 种语言 HTNI 的文件中并由负责解释 HTML 文件的 WWW 浏览器充当其解释器,来解释执行.
JAVA 概述 主讲:张雷. J2ME API 地址: 广东科贸信息工程 张雷学习要求 了解各种程序设计语言及其特点 了解各种程序设计语言及其特点 了解 JAVA 的发展史和其特点 了解 JAVA 的发展史和其特点.
Java 程序设计(第二版) 普通高等教育 “ 十一五 ” 国家级规划教材 辛运帷等 编著 徐小平 主讲.
淮海工学院 计算机课程 第 1 章 Java 入门 1.1 Java 的起源与发展 1.2 Java 程序开发与运行环境 1.3 Java 程序设计步骤 1.4 Java 程序的构成 一个小游戏.
第1章 Java语言概述.
《 Java开发环境配置》 主讲人:耿力.
Java 2实用教程(第3版)教学课件 主讲教师:张国平
第1章 Java语言概述.
1.2 Java程序开发与运行环境 Java程序文件类型 根据计算结构的不同,Java程序可以划分为:
第八章:网络应用制作技术 本章介绍网络各种应用中所涉及的基本概念和制作技术,包括HTML、网页的制作、Java、Java Script语言的初步基础,VRML语言的基本功能,以及网络环境下分布式数据库系统和客户服务体系的构造方法及技术。
Java程序设计教程 第一讲 Java概述.
Java的程式架構與基本觀念 Java語言的歷史 Java程式的開發環境 Java程式的架構 輸出與輸入物件之使用 工具使用方法介紹
Hello小程序的运行和编译 Java AppletJava小程序的构成 1、关键字
JAVA程序设计.
《Java程序设计之网络编程》 教学课件 重庆大学计算机学院
面向对象程序设计(Java) 徐志红
北京科技大学天津学院 信息工程系 面 向 对 象 程 序 设 计 第1讲 Java初探 主讲:于静.
動畫與遊戲設計 遊戲開發工具 程于芳 老師
计算机学院计算机科学与技术系 中德联合软件技术研究所 李波
第1章 java简介及环境搭建 第1章 Java简介及开发环境搭建.
J2EE与中间件技术 ——Lab.
Microsoft .NET 第4組 十月15, 2002 B 陳東傑 B 蔣佳勳
JSP程式設計 基本概論 歐陽芳泉 Fang-Chuan Ou Yang
第17章 使用B4J建立跨平台應用程式 17-1 認識B4J整合開發環境 17-2 下載與安裝B4J開發環境
JDK的安裝.
Java Applet 介绍.
王耀聰 陳威宇 國家高速網路與計算中心(NCHC)
Introduction on Smartphone Platform
2018/11/20 第一章 Java概述 武汉大学计算机学院计算机应用系 2018/11/20 14:33.
武汉大学国际软件学院 面向对象程序设计 武汉大学国际软件学院
第一章 電腦、程式與JAVA.
Android 课程讲义 智能手机开发
CH09 套件 物件導向程式設計(II).
鄭士康 國立台灣大學 電機工程學系/電信工程研究所/ 資訊網路與多媒體研究所
第一章 認識Java Java 程式設計入門(I).
2018/12/7 Java语言程序设计 教师:段鹏飞.
Java语言程序设计 第八部分 Applet小程序.
Java基础入门 第1章 Java开发入门 · Java语言的特点 · Java开发环境的搭建 · 环境变量的配置 · Java的运行机制.
Visual Studio Team System 简介
臺北市立大學 資訊科學系(含碩士班) 賴阿福 CS TEAM
第4章 商务逻辑层及其技术.
第一讲 J2EE基础 博和利初级培训 —开发技能.
3.1 数据类型 3.2 标识符与关键字 3.3 常量 3.4 变量 3.5 运算符与表达式 3.6 一个编程实例
認識 Java.
C/C++/Java 哪些值不是头等程序对象
第 1 章 Java 簡介.
两种不同类别的软件: 功能预定义软件;用户驱动的软件。他们对软件工程方法有不同的需求
01.Java语言概述 讲师:复凡.
Unit 11.Operating System 11.1 What’s OS 11.2 Related Courses
第1章 Java语言概述 学习目标 本章要点 上机练习 习 题.
面向对象 程序设计语言基础 马骏
《JAVA程序设计》 语音答疑 辅导老师:高旻.
C语言程序设计 主讲教师:陆幼利.
開發Java程式語言的工具 JDK.
程式設計 老師:蘇炳煌 助教:楊斯竣.
Java程式初體驗大綱 大綱 在學程式之前及本書常用名詞解釋 Hello Java!程式 在Dos下編譯、執行程式
JSP实用教程 清华大学出版社 第2章 JSP运行环境和开发环境 教学目标 教学重点 教学过程 2019年5月7日.
第6章 面向对象的高级特征 学习目标 本章要点 上机练习 习 题.
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
Applet.
Presentation transcript:

Java语言程序设计 马 皓 mah@pku.edu.cn

课程提纲 Java语言概述 Java语言语法基础 面向对象的特征 Applet及其应用 图形用户界面设计 异常 线程 集合操作 网络编程

参考资料 Java语言程序设计,吕凤翥、马皓编著,清华大学出版社 Java编程思想,第2版,候捷译,计算机科学丛书,机械工业出版社 The Java Tutorial, a practical guide for programmers, http://java.sun.com/docs/books/tutorial Thinking in Java, 2nd edition, Revision 11, 2000, Bruce Eckel, http://www.mindview.net Thinking in Java, 3rd Edition Revision 4.0, Bruce Eckel The Java Language Specification, 2nd Edition, James Gosling, Bill Joy, Guy Steele, Gilad Bracha

第一章 Java语言概述 Java的发展 什么是Java? Java程序介绍 Java程序运行环境

Java的发展 早期的历史 1991年,Sun Microsystems公司建立“the Green Project”(Secretly),13个成员,目的开发消费电子类产品市场(嵌入式设备),初始选择C++语言 1992年夏天,*7设备,运行在一种全新的、对立于处理器的语言“Oak”,潜在的市场有线电视 Green TeamFirstPerson Team(70人),电视机顶盒/video-on-demand,市场不成熟  ? ? ? James Gosling, Bill Joy, and Eric Schmidt …  “why not the Internet?" 在Mosaic浏览器的基础上开发“WebRunner”,“Hollywood-meets-Silicon-Valley”的两个演示(3D动态分子、线排序)

Java的发展 早期的历史 Java面世 1995年3月,“1.0a” 7/8份二进制拷贝,“1.0a2”源代码公布在Internet 下载数量和反馈邮件剧增 On May 23, 1995, John Gage, director of the Science Office for Sun Microsystems, and Marc Andreessen, cofounder and executive vice president at NetscapeTM, stepped onto a stage and announced to the SunWorld audience that JavaTM technology was real, it was official, and it was going to be incorporated into Netscape NavigatorTM, the world's portal to the Internet.

Java的发展 历史记录 - Who James Gosling: Green Team original, FirstPerson employee, original member Java Products Group, lead engineer and key architect of Java technology Bill Joy: Cofounder and vice president, Sun Microsystems, Inc., principal designer of the University of California, Berkeley, version of the UNIX operating system Eric Schmidt: Former Sun Microsystems chief technical officer, Former Novell chairman and CEO, Chairman of the Board and CEO, Google Inc.

Java的发展 历史记录 * 7: A new SPARC based, handheld wireless PDA, with a 5" color LCD with touchscreen input

Java的发展 java.sun.com的主页

Java的发展 五年回顾(1996-2000) 1995年 1996年 May 23, Java technology launched Jan 23, JDK 1.0 software release May 29, first JavaOne developer conference (JavaBeans, Java Media APIs, servlets, etc) July 10, 50,000 people attend Sun Java Day in Tokyo Aug 16, Sun/Addison-Wesley (The Java Tutorial and the first Java Language Specification) Sep, 83,000 Web pages have incorporated Java technology Oct 25, Sun announces first Just-In-Time (JIT) compiler for Java platform Oct 29, Java Card API announced Dec 9, JDK 1.1 beta software released

Java的发展 五年回顾(1996-2000) 1997年 Feb 18, JDK 1.1 release ships Mar 4, Java Web Server beta and Java Servlet Developers Kit software released Mar 10, Java Naming and Directory Interface (JNDI) API introduced Mar 11, More than 220,000 downloads of JDK 1.1 software in just three weeks Apr 2, JavaOne conference (10,000 attendees, the world's largest developer conference), Enterprise JavaBeans technology Aug 5, Java Media and Communication APIs released Aug 5, More than 100,000 downloads of JavaBeans Development Kit software Sep 23, Java Developer Connection program has 100,000+ members

Java的发展 五年回顾(1996-2000) 1998年 Jan 20, JDK 1.1 software release downloads top 2 million Mar 24, JavaOne conference draws 15,000 Mar 31, Ericsson, Sony, Siemens, BEA, OpenTV and others license Java technology June 3, Visa launches world's first smart card based on Visa's Open Platform and Sun's Java Card technology Nov 5, Sun works with Linux Community on Java 2 software port to Linux Dec 8, Java 2 platform ships

Java的发展 五年回顾(1996-2000) 1999年 Jan 13, Major consumer electronics manufacturers support Java technology for digital television Feb 24, Java 2 platform source code released Mar 4, XML support for Java platform unveiled Mar 27, Java HotSpot performance engine unveiled June 2, JavaServer Pages technology unveiled June 15, JavaOne developer conference draws 20,000 June 15, Sun announces three editions of Java platform: J2SE, J2EE, J2ME June 29, J2EE Reference Implementation Alpha ships Aug 25, J2SE version 1.3 beta software released Aug, The JavaPhone API specification included in an approved GSM standard by the European Telecommunications Standards Institute

Java的发展 五年回顾(1996-2000) 1999年 Sep 30, J2EE beta software released Dec 8, J2EE platform ships Dec 8, J2SE platform on Linux ships 2000年 Apr 19, J2EE platform licensed to Art Technology Group, BEA Systems, Compaq, Hitachi, SilverStream, Sybase, .. May, Membership in Java Developer Connection program tops 1.5 million May 8, Sun to work with Chinese TV industry to define interactive digital TV spec for China TV May 8, J2SE v. 1.3 platform released May 17, J2SE v 1.3 platform gains industry support from Apple with Mac OS X

第一章 Java语言概述 Java的发展 什么是Java? Java程序介绍 Java程序运行环境

什么是Java? Java Technology 编程语言(Programming Language) 运行平台(Platform)

什么是Java? Java编程语言的特点 简单(Simple) 面向对象(Object oriented) 解释性(Interpreted) 平台独立和可移植(Architecture neutral & Portable) 鲁棒和安全(Robust & Secure) 多线程(Multithreaded) 分布式(Distributed) 高性能(High performance) 动态(Dynamic)

什么是Java? Java编程语言的特点 简单(Simple) 面向对象(Object oriented) 解释性(Interpreted) 简单易学 不存在指针、单一继承、内存空间自动回收 面向对象(Object oriented) 类和对象数据和方法的封装 封装、继承、多态性 注重于数据和操作数据的方法,而不是流 解释性(Interpreted) Java编译器生成字节码,Java解释器执行字节码 链接过程简单,仅仅将新的类装载(load)入运行环境

什么是Java? Java编程语言的特点 平台独立(Architecture neutral)和可移植(Portable) Java编译器产生的字节码(bytecode)可运行在异种网络环境中(不同的硬件系统和不同的操作系统) Java程序在不同的平台中行为一致,不存在数据类型的不一致等现象

什么是Java? Java编程语言的特点 鲁棒/健壮(Robust)和安全(Secure) 取消了指针的不安全性,增强了程序的健壮性 内存管理简单,“new”构造对象,对象释放(automatic garbage collection) 可靠的语言: compile-time checking和run-time checking 网络环境的应用不会产生恶意行为,为Java程序构造一个个(Sandbox,具有安全策略的限制),提高了安全性

什么是Java? Java编程语言的特点 多线程(Multithreaded) 分布式(Distributed) 例: 浏览器应用中,播听音乐/拖动页面/后台下载页面 线程类: java.lang.Thread/Runnable/ThreadGroup等 原语支持: synchronized、wait()、notify() 分布式(Distributed) 支持网络应用, java.net.* URL类 Socket类、ServerSocket类 DatagramSocket类、DatagramPacket类

什么是Java? Java编程语言的特点 高性能(High performance) 动态(Dynamic) 解释性的语言,没有C语言快 “Just-In-Time” JIT编译器,在运行时将Java字节码转变为机器码 Java HotSpot Compilers 动态(Dynamic) Java语言在执行的链接(link)阶段是动态的 class类仅在需要时被链接 被链接的代码模块可以有不同的来源,从本地或从网络

什么是Java? 平台(Platform) Java运行平台(Platform) 程序运行的硬件和软件环境 操作系统平台-Windows 2000、Linux、Solaris、MacOS 操作系统与硬件的结合 Java运行平台(Platform) Java虚拟机(Java Virtual Machine, Java VM) Java解释器-Java开发工具或可运行applet的Web浏览器 Java应用编程接口(Java Application Programming Interface, Java API)

什么是Java? Java运行平台(Platform) J2SE Platform (Java 2 Standard Edition) Java Runtime Environment (JRE) -Java虚拟机、库函数、运行Java应用程序和Applet所必须文件 Java 2 SDK (Development Kit)-JRE的超集,包含编译器和调试器等用于程序开发的文件 Java虚拟机、Java应用编程接口和系统平台的关系

什么是Java? Java平台的发展 Java Development Kit Java 2 SDK 1.0.2 1.1.1  1.1.6  1.1.7  1.1.8 1.2.1 Java 2 SDK 1.2.2 1.3.0  1.3.1 1.4.0  1.4.1 1.4.21.5.0 Java平台的三个版本(1999.6): J2SE/J2EE/J2ME http://java.sun.com/products/archive/index.html

什么是Java? Java可以做什么? 基本: Objects, strings, threads, numbers, input and output, data structures, system properties, date and time等 Applets应用 网络应用: 实现基于URL/TCP/UDP的网络应用 国际化应用: 实现程序的本地化,并以适当的语言显示 安全应用: 电子签名、公钥和私钥管理、访问控制和用户证书等 软件构件: JavaBeans 对象串行化: 实现远程方法执行(Remote Method Invocation,RMI) Java数据库连接(Java Database Connectivity, JDBC): 提供统一的方式访问关系型数据库

什么是Java? 为什么选择Java? 简单易学 (Get started quickly) 写较少的代码 (Write less code) 写更好的代码 (Write better code): garbage collection (防止内存泄漏),面向对象、JavaBeans构件机制、其他API复用代码,减少bugs 开发程序更快 (Develop programs more quickly) 避免平台依赖性 (Avoid platform dependencies with 100% Pure Java) 编写一次,随处运行 (Write once, run anywhere) machine-independent bytecodes 发布软件更容易 (Distribute software more easily): 指对软件的更新,利用动态加载功能,一处改动,自动更新,不用重新编译整个程序

第一章 Java语言概述 Java的发展 什么是Java? Java程序介绍 Java程序运行环境

Java程序的种类 Java小应用程序(Java Applet) Java应用程序(Java Application) 在Web浏览器中运行(内嵌Java虚拟机) 特定标记 <APPLET CODE="HelloWorld.class" WIDTH=150 HEIGHT=25> </APPLET> Java应用程序(Java Application) 独立的Java程序 程序入口方法: public static void main(String[] args) { … } Java Script 嵌入在HTML文件中的脚本语言 <script language=javascript> … </script> Netscape引入javascript

简单的Java应用程序 Java源程序-文件扩展名为“.java” Java字节码程序-文件扩展名为“.class” /** * Exam1_1 class实现一个应用 * 将特定的字符串显示到标准输出 */ public class Exam1_1 { public static void main(String[] args) { System.out.println(“This is a Java Application Program."); }

简单的Java应用程序 定义类文件 关键词public -修饰符 关键字class-表示要定义一个类(模板),包含数据变量和方法 关键字import-表示引入程序外部定义的类 /** * Exam1_1 class实现一个应用 * 将特定的字符串显示到标准输出 */ import java.lang.System; public class HelloWorld1 { public static void main(String[] args) { System.out.println(“This is a Java Application Program.”); }

简单的Java应用程序 定义类文件 类名称与Java源程序名一致 class MyClass { . . . } 注意: 大小写敏感 所保存的文件为: MyClass.java 注意: 大小写敏感

简单的JAVA应用程序 注解方式(Comments) /** ~~~ */-文档注解 /* ~~~ */ -程序内的任意位置 //-对本行注解 /** * Exam1_1 class实现一个应用 * 将特定的字符串显示到标注输出 */ public class Exam1_1 { public static void main(String[] args) { System.out.println(“This is a Java Application Program."); }

简单的Java应用程序 主方法(main Method) 每个Java应用程序必须有且只能有的一个方法,程序执行的入口 格式固定 /** * Exam1_1 class实现一个应用 * 将特定的字符串显示到标注输出 */ public class Exam1_1 { public static void main(String[] args) { System.out.println(“This is a Java Application Program."); }

简单的Java应用程序 类和变量的引用 所有的Java类默认都引入java.lang.* 类(java.lang.System),System类的一个变量out 变量out是PrintStream类的一个实例,PrintStream类实现标准输出流 引用实例out的方法println() 变量和方法的引用通过“.”实现 public class Exam1_1 { public static void main(String[] args) { System.out.println(“This is a Java Application Program."); } 所有的Java类默认都引入java.lang.*

简单的Java应用程序 书写规范 花括号对“{}”-类,方法 语句分号“;”结尾 对齐和缩进 区分大小写 /** * Exam1_1 class实现一个应用 * 将特定的字符串显示到标准输出 */ public class Exam1_1 { public static void main(String[] args) { System.out.println(“This is a Java Application Program."); }

简单的Java小程序(Applet) 引入类和包 引入特定的类(Class) 引入整个包(Package) import java.applet.Applet; import java.awt.Graphics; public class HelloWorld extends Applet { public void paint(Graphics g) { g.drawString("Hello world!", 50, 25); } 引入整个包(Package) import java.applet.*; import java.awt.*;

简单的Java小程序(Applet) 类的定义 定义一个公共类HelloWorld 该类是Applet类的子类,关键词“extends” import java.applet.Applet; import java.awt.Graphics; public class HelloWorld extends Applet { public void paint(Graphics g) { g.drawString("Hello world!", 50, 25); }

简单的Java小程序(Applet) 方法定义 重写父类Applet的paint方法 参数g是Graphics类的一个实例,表示当前作画的上下文 引用g的方法drawString(),在坐标(50, 25)处输出字符串 import java.applet.Applet; import java.awt.Graphics; public class HelloWorld extends Applet { public void paint(Graphics g) { g.drawString("Hello world!", 50, 25); }

第一章 Java语言概述 Java的发展 什么是Java? Java程序介绍 Java程序运行环境

Java程序运行环境 Java开发工具(Java Development Kit, JDK), J2SDK Java API 工具集 基本工具 (javac, java, javadoc, appletviewer, jar, jdb, javah, javap, extcheck) 远程方法调用工具 (Remote Method Invocation, RMI) (rmic, rmiregistry, rmid, serialver) 国际化工具 (native2ascii) 安全工具 (keytool, jarsigner, policytool) Java IDL和RMI-IIOP工具 (tnameserv, idlj, orbd, servertool) Java插件工具 (Plug-in)

Java程序运行环境 获得 J2SDK http://java.sun.com/products/archive/ 安装 j2sdk-1_4_1-windows-i586.exe 系统环境变量设置 路径设置 (path) Windows 95/98,autoexec.bat,添加“path c:\windows;c:\windows\command;c:\j2sdk1.4.1\bin” Windows NT/2000,控制面板系统高级环境变量,编辑path选项添加“c:\j2sdk1.4.1\bin” 类路径设置(classpath) Windows 95/98,autoexec.bat,添加“set classpath= c:\j2sdk1.4.1\jre\lib\rt.jar;.” Windows NT/2000,控制面板系统高级环境变量,添加classpath选项添加“.”,表示在当前目录寻找class文件 注: rt.jar -- the bootstrap classes (the RunTime classes that comprise the Java platform's core API).

Java程序运行环境 检查Java运行环境设置 C:\>java C:\>javac C:\>java –version Usage: java [-options] class [args...] (to execute a class) or java -jar [-options] jarfile [args...] (to execute a jar file) C:\>javac Usage: javac <options> <source files> … … … … C:\>java –version java version "1.4.1_01" Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.1_01-b01) Java HotSpot(TM) Client VM (build 1.4.1_01-b01, mixed mode)

Java程序运行环境 Java应用程序的编译和运行 编写源文件Exam1_1.java(内容如前) 保存到D盘根目录 编译: D:\>javac Exam1_1.java 生成Exam1_1.class文件 运行: D:\>java Exam1_1 This is a Java Application Program. 问题: (classpath的路径设置) Exception in thread "main" java.lang.NoClassDefFoundError: …

Java程序运行环境 Java小程序的编译和运行 编写源文件 HelloWorld.java (内容如前) 保存到D盘根目录 编译 D:\>javac HelloWorld.java 生成HelloWorld.class文件 编写HTML文件 “Test.html”,保存到D盘根目录 <Html> <Head> <Title> A Simple Program </Title> </Head> <Body> Here is the output of my program: <Applet code="HelloWorld.class" WIDTH=150 HEIGHT=25> </Applet></Body> </Html>

Java程序运行环境 Java小程序的编译和运行 运行 用浏览器打开Test.html文件 appletviewer Test.html

第一章 结束 !