《JAVA程序设计》 语音答疑 辅导老师:高旻.

Slides:



Advertisements
Similar presentations
主要内容 Java 的常用包 Java 的常用包 “ == ” 和 “ equals ” 的用法 “ == ” 和 “ equals ” 的用法 基本数据类型与引用类型 基本数据类型与引用类型 String 和 StringBuffer String 和 StringBuffer 对象的克隆( clone.
Advertisements

软件编程基础 一、程序的编辑 Java 源程序是以 Java 为后缀的简单的文本文件,可以用各种 Java 集成开发环境中的源代码编辑器来编写,也可以用其他文 本编辑工具,如 Windows 中的记事本或 DOS 中的 EDIT 软件等。 利用文字编辑器编写下列程序 public class Hello.
第 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 多名技术支持人员和.
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 程序的调试 教学目标.
Java 程序设计(第二版) 普通高等教育 “ 十一五 ” 国家级规划教材 辛运帷等 编著 徐小平 主讲.
第四章 类、对象和接口.
3.2 Java的类 Java 类库的概念 语言规则——程序的书写规范 Java语言 类库——已有的有特定功能的Java程序模块
第1章 Java语言概述.
《 Java开发环境配置》 主讲人:耿力.
Java 2实用教程(第3版)教学课件 主讲教师:张国平
讓你的程式具有多工(Multitasking) 及多重處理(Multiprocessing)的能力
Java程序设计教程 第一讲 Java概述.
Java的程式架構與基本觀念 Java語言的歷史 Java程式的開發環境 Java程式的架構 輸出與輸入物件之使用 工具使用方法介紹
四資二甲 第三週作業 物件導向程式設計.
C#程序设计案例教程 第3章 程 序 结 构.
Hello小程序的运行和编译 Java AppletJava小程序的构成 1、关键字
北京科技大学天津学院 信息工程系 面 向 对 象 程 序 设 计 第1讲 Java初探 主讲:于静.
计算机学院计算机科学与技术系 中德联合软件技术研究所 李波
Java Applet的运行原理 在网页向Java Applet传值 在Java Applet中播放声音 在Java Applet中使用组件
第11章 Java多媒体技术.
第二章 JAVA语言基础.
第1章 java简介及环境搭建 第1章 Java简介及开发环境搭建.
第三章 控制结构.
Ch02 視窗Swing套件 物件導向系統實務.
程式設計實作.
2.1 基本資料型別 2.2 變數 2.3 運算式與運算子 2.4 輸出與輸入資料 2.5 資料型別轉換 2.6 實例
第5章 面向对象程序设计 本章要点 5.1 面向对象程序设计概述 5.2 Java语言的面向对象程序设计 5.3 方法的使用和对象数组
Ch07 Java Applets 物件導向系統實務.
Java语言程序设计 第七部分 多线程.
2018/11/20 第一章 Java概述 武汉大学计算机学院计算机应用系 2018/11/20 14:33.
程式敘述執行順序的轉移 控制與重複、方法 Lecturer:曾學文.
本單元介紹何謂變數,及說明變數的宣告方式。
程式撰寫流程.
2018/12/3 面向对象与多线程综合实验-网络编程 教师:段鹏飞.
Java程序设计 第9章 继承和多态.
2018/12/7 Java语言程序设计 教师:段鹏飞.
Java语言程序设计 第八部分 Applet小程序.
Java基础入门 第1章 Java开发入门 · Java语言的特点 · Java开发环境的搭建 · 环境变量的配置 · Java的运行机制.
實作輔導 3 日期: 4/14(星期六) 09:10~12:00、13:10~16:00
第一次课后作业 1. C/C++/Java 哪些值不是头等程序对象 2. C/C++/Java 哪些机制采用的是动态束定
9.1 程式偵錯 9.2 捕捉例外 9.3 自行拋出例外 9.4 自定例外類別 9.5 多執行緒
3.1 数据类型 3.2 标识符与关键字 3.3 常量 3.4 变量 3.5 运算符与表达式 3.6 一个编程实例
2019/1/16 Java语言程序设计-类与对象 教师:段鹏飞.
2019/1/17 Java语言程序设计-程序流程 教师:段鹏飞.
Java程序设计 第2章 基本数据类型及操作.
認識 Java.
C/C++/Java 哪些值不是头等程序对象
Multithread 多執行緒 以GUI為例了解物件以及Event
第1章 Java语言概述 学习目标 本章要点 上机练习 习 题.
JAVA 编 程 技 术 主编 贾振华 2010年1月.
第二章Java基本程序设计.
開發Java程式語言的工具 JDK.
第二章 Java基本语法 讲师:复凡.
Java程式初體驗大綱 大綱 在學程式之前及本書常用名詞解釋 Hello Java!程式 在Dos下編譯、執行程式
第二章 Java语法基础.
#include <iostream.h>
第二章 Java基本语法 讲师:复凡.
第6章 面向对象的高级特征 学习目标 本章要点 上机练习 习 题.
PPT注意事项: 当前PPT课件文件必须和提供的源代码文件夹“代码”在同一目录中即不要移动文件夹“代码”的默认位置。
第2章 Java语言基础.
第4讲 类和对象、异常处理 ggao.
判斷(選擇性敘述) if if else else if 條件運算子.
第二章 Java基础语法 北京传智播客教育
第二章 Java基本语法 讲师:复凡.
Summary
变量定位图形 Java中数据的类型分为四种:基本数据类型、数组类型、类类型以及接口类型。任何常量和变量都一定是上述四种数据类型中的一种。简单数据类型的实例化有两种:变量和常量。 变量名和常量名必须是Java语言中合法的标识符。 常量是在程序运行期间值不改变的量。 变量是在程序运行期间值可通过赋值改变的量,
Presentation transcript:

《JAVA程序设计》 语音答疑 辅导老师:高旻

一、JAVA程序设计开发工具及实例 Java已经不仅仅是一种编程语言,它同时还是一种开发环境和一种应用环境,因此我们对Java的掌握也不应该仅仅停留在一门语言的层次上,只有系统、完整地理解和应用Java,我们才能更好的驾御和把握它。  Java语言与C++都是一种面向对象的程序语言,但是它比C++更简单,省去了如运算符重载、多重继承等模糊的概念,并且通过实现自动垃圾收集简化了程序设计者的内存管理工作。   JAVA十个特点:简单、面向对象、分布性、鲁棒性、安全性、平台独立性、可移植性、解释执行、多线程、动态性

一、JAVA程序设计开发工具及实例 1、Java开发环境的相关概念: JDK主要组成: JDK(Java Development Kit): Java语言开发包,SUN公司发布,主要有JDK1.0,JDK1.1版。 SDK(Java Software Development Kit): Java软件开发包,SUN公司从JDK1.2开始就改名为SDK1.2,现在版本包括SDK1.3,SDK1.4。如果不作严格区分,可以把SDK和JDK都叫作JDK。 JDK主要组成: 由Java类库,Java语言编译器,Java调试工具,Java解释器,Java运行时环境(Java Runtime Environment), Java Applet浏览器等构成。

一、JAVA程序设计开发工具及实例 2、下载并设置软件 JDK可以在很多网站上(如http://Java.sun.com)下载 然后在“导学材料汇编”下载软件Jcreator。 这个软件不用再进Dos用命令行运行了! 而且也无需配置什么路径.....

一、JAVA程序设计开发工具及实例

一、JAVA程序设计开发工具及实例

一、JAVA程序设计开发工具及实例

一、JAVA程序设计开发工具及实例

一、JAVA程序设计开发工具及实例

一、JAVA程序设计开发工具及实例

一、JAVA程序设计开发工具及实例 3、JDK常用工具介绍 1) Javac.exe:Java编译器 2)Java.exe:Java解释器 负责将Java源文件(.java)编译为字节码文件(.class) 例javac c:\Java\test\ test1.Java 2)Java.exe:Java解释器 编译后的Java字节代码(.class)无法直接在机器上运行,需要由解释器对其解释执行。 例java c:\java\test\test1

一、JAVA程序设计开发工具及实例 4、JDK开发和运行Java程序的基本过程 利用编辑器编写 Java源程序 我们可以采用任何文本编辑工具(如Notepad)编写Java的源程序,也可以采用专门的Java开发工具 利用编译器将源程序编译成类文件 利用javac命令,可以很容易的做到。但如果该过程中编译器指示任何语法错误,则我们需要根据错误提示重新修改源文件,再进行编译,直至产生正确的class文件。 运行 获得的class文件可以在本地或通过网络传给任何其它Java虚拟机执行。

Java平台包括两个组件 Java虚拟机(JVM)和Java应用程序接口(Java API) Java虚拟机(JVM) 是在一台在物理计算机上由软件模拟实现的假想计算机,从结构上分析,它由一些抽象的部件组成:包括指令集,寄存器集、堆栈、存储区等。 Java是一种通用的高级语言和功能强大的软件平台。 通过使用功能强大的Java API(Application Program Interface),可以实现各种程序。

二、重点运算符 自增运算符”++”和自减运算符”--” 单目运算符,只能用于变量,不能用于表达式,表示使运算数据加1或减1。 有前缀和后缀两种形式,当是前缀形式(即++、--符号出现在变量的左侧)时,对变量实施的运算是”先增值后使用”; 当是后缀形式(即++、--符号出现在变量的右侧)时,对变量实施的运算是”先使用后增值”。 例如:x=5;y=++x ;表示先将x加1(得6) 然后将结果(6)赋给y,所以x,y的值都为6。  x=5; y=x++;表示将x的值(5)先赋给y 然后再将x加1(得6),所以y的值为5,而x的值为6。

JAVA程序 class test{ public static void main(String args[]) { int j=5; int I=1; do if (I>--j) I++; }while(I<5); System.out.println("i="+I+ “j="+j); }

例 class test { public static void main(String args[]) { int i=1; int j=i++; if (i==++j || i++ == j ) { i+=j; System.out.println(i); } 答案: 4

例 class test{ public static void main(String args[]){ int x=2,j=0; switch(x){ case 1: j++; break; case 2: j++; case 3: j++; break; case 4: j++; default: j++; } System.out.println(j); 答案:2

条件运算符“ ?:” 三元运算符,它的一般形式为: 表达式1 ? 表达式2: 表达式3 其中表达式1的值为布尔型,如果该值为true,则执行表达式2,否则执行表达式3,而且表达式2和表达式3需要返回相同的数据类型,且该类型不能是空(void) 例result= (condition==0 ? 0 :1); 该例中,如果condition==0为真,则result=0,否则result=1

三、面向对象的基本思想 类和对象 对象可以是现实世界中的任何事物,包括可见和不可见的实体,如人、动物、桌椅、规则、事务等。 类是对具有相同基本特征对象的一种抽象。 如现实世界中的各种小车、卡车、客车等 ,可以抽象出“汽车”这一个类 。 一个类可以生成多个不同的对象,具有不同的属性值。 类是一个抽象的概念,而对象是一个具体的实体。

定义一个类圆 对象具有属性和行为。与之相对应,类在定义时,需要声明类的变量(数据)和方法。 class Circle {   String color;       //颜色   int length;         //半径   Void expand() {}     //方法:放大   Void reduce() {}     //方法:缩小 } Circle c1=new Circle()   //生成类Circle的实例c1 对象具有属性和行为。与之相对应,类在定义时,需要声明类的变量(数据)和方法。

传递消息 单个对象完成的功能十分有限,实际系统中通常需要多个对象配合才能完成一个复杂的功能。那么对象之间如何通讯呢?所有这一切都只能通过传递消息来实现。 一般发送的消息包含三个部分: 接受消息的对象 接受消息的对象应执行的方法 方法所需要的参数

继承性 继承性是指一个新的类继承原有类的基本特征,并可增加新的特性。 原有的类称为父类或基类,新的类称为子类或派生类。由父类生成子类的过程称为类的派生。在子类中,不仅包含父类的数据和方法,还可增加新的数据和方法。 Java中只支持单继承。

封装 封装是一种信息隐蔽技术,它将类的基本成员(数据和方法)封装在类体中,使用者只能看到被封装对象界面上的信息,而对象内部对使用者是隐藏的。 将这种思想借鉴到类的实现中,将类的数据与方法封装起来。如将数据说明为私有的,它的实现细节由开发者进行,使用者无须了解也不能访问这些数据。同时将一些方法说明为公共的,这些方法不仅可以操作对象内的数据,而且作为使用者访问的界面(接口),用户可以通过它操纵内部的数据。

多态性 多态性是指一个名称对应有多种不同的功能,或者相同的接口有多种实现方法。Java中,类的多态性主要通过方法的重载,覆盖和接口来实现 1)方法重载是指多个方法具有相同的名称,但每个方法的参数表不同 ,即参数类型和参数数量不同。 例如,定义一个求和的方法,它有三种不同类型的参数: int Add(int i,int j) float Add(float i,float j) double Add(double i,double j) 系统调用Add方法时,系统根据实际参数的类型和数量等自动调用相应的方法,如Add(1,2),Add(1.2f,3.4f),Add(1.2,3.4)。

多态性 2)方法覆盖是指在类的继承过程中,子类与父类的方法不仅名称相同,而且参数也完全相同,但方法体(方法的具体实现)不同。这时子类中的方法覆盖了父类中同名的方法。 例:对public float test(int a) {…}方法的重载方法应返回( ) A) void B) int C) float D) 任何类型 例:在某个类A中存在一个方法:void Get(int x),以下能作为这个方法的重载的声明的是(  )。  A void Get(float x)    B int Get(int y) C double Get(int y)    D void get(int x,int y)

习题 以下由do-while语句构成的循环执行的次数是( B )。 int k = 0; do { ++k; }while ( k < 1 ); A 一次也不执行 B 执行1次 C 无限次 D 有语法错,不能执行 提示: 参考课本P26-27 do-while语句执行的特征是:先循环,后判断。与while语句相区别,它的循环体至少会被执行一次,因为执行过程中,它将循环条件的判断放在了循环体的后边。

习题 下列语句执行后,a的值是( D )。 int a=13; a%=a/5; 提示: 参考课本P17 A 3 B 13 C 169 D 1 提示: 参考课本P17 a%=a/5相当于a=a%(a/5) =13%(13/5) %:取余。

习题 下列类头定义中,错误的是( B )。 A class x B public x extends y { .... } { .... } { .... } { .... } C public class x extends y D class x extends y implements y1 提示: 参考课本P40 6.1.1类声明 在类的声明中必须含有关键字class

习题 设 i,j 为类 x 中定义的 double 型变量名,下列 x 类的构造函数中不正确的是( A )。 A double x(double k ){ i=k; return i; } B x(double m, double n ){ i=m; j=n; } C x( ){i=0;j=0 } D x(double k ){ i=k; } 提示: 参考课本P46 6.1.6构造方法 构造方法具有和类相同的名称,而且不返回任何返数据类型。

习题 以下程序boolean a=false; boolean b=true; boolean c=(a&&b)&&(!b); int result=c==false?1:2;执行完后,c与result的值是( A ): A c=false;result=1; B c=true;result=2; C c=true;result=1; D c=false;result=2; 提示: 1、boolean c=(a&&b)&&(!b); a为false, b为true, 所以(a&&b)为false; b为true,所以!b为false c=(a&&b)&&(!b) 所以c为false 2、result=c==false?1:2 c为false,所以c==false为真,所以c==false?1:2的结果为1 所以result的结果为1

习题 有一函数(写一程序,给定 x 值,输出 y 值): x (x<1) y= 3x-2 (1≤x<10) 4x (x≥10 ) 程序:public class p3_3{ public static void main(String[]args) { int x=17; if(x<1) System.out.println("y="+x); else if(x<10) System.out.println("y="+(3*x-2)); else System.out.println("y="+(4*x)); } }

四、线程等难点 1、线程的概念 一般把正在运行中的一个程序,称为进程。线程和这个进程很相像。从概念上讲,一个线程是一个程序内部的顺序控制流。 虽然线程和进程都是顺序执行的指令序列,但是又有很多不同点: 进程:每个进程都由独立的代码和数据空间,进程切换的开销大。 线程:轻量的进程,同一类线程共享代码和数据空间,每个线程有独立的运行栈和程序计数器 (PC),线程切换的开销小。 多进程:在操作系统中,能同时运行多个任务 (程序)。 多线程:在同一应用程序中,有多个顺序流同时执行。

线 程 2、JAVA中的线程 很多程序语言都需要外部的软件包来实现多线程,而Java则内在支持多线程,它的所有类都是在多线程的思想下定义的。 每个线程都是通过特定对象的run()方法来完成操作的。方法run()成为线程体。通常run()方法是一个循环。

线 程 3、线程的状态 在一个线程的生命周期中,它总是处于某一个状态中。线程的状态表示了线程正在进行的活动以及线程能完成的任务。 线程的状态分为:创建态,可运行态,不可运行态,死亡状态等4种状态

线 程 A.创建态( new Thread ) 当新生成一个线程时,生成的线程就处于创建态。 例如,我们定义一个类MyThreadClass继承Java.io.Thread  Thread t = new MyThreadClass() 线程没有启动,属于创建态,仅仅是空的线程对象,系统没有为它分配资源。 处于这一状态,只能启动和终止线程,即调用start()或者stop()方法,调用其他方法都会失败,引起非法状态处理( IllegalThreadStateException)。 例:线程一旦被创建就处于可运行状态。(错)

线 程 B.可运行态(Runnable) 当执行t.start()后,产生了运行这个线程所需的系统资源,安排其运行,并调用线程体run()方法,这样使线程处于可运行态。 需要说明的是,可运行态并不是运行中(running)状态,因为,也许线程并未实际运行。由于很多计算机都是单处理器的,同一时刻运行所有的处于可运行态的线程是不可能的,Java的运行时系统必须实现调度来保证这些线程共享处理器。 当一个线程正在运行时,它是处于可运行态的。

线 程 C.不可运行态(Not Runnable) 出现下面四种情况时,线程就处于不可运行态。 1、调用了sleep()方法 2、调用了suspend()方法。 3、为等候一个条件变量,线程调用wait()方法。 4、I/O发生线程阻塞。 例如: 调用 t. sleep(1000)后,线程休止1秒,1秒后,线程t又处于可运行态。

线 程 D.死亡状态( Dead ) 死亡状态就是线程的消亡状态,可以有两种方法实现:自然撤销,被停止(stop)。 自然撤销是线程的 run() 方法正常退出。 线程体run()方法中有一个循环语句,10次循环完毕后,run()方法执行完毕,线程自然终止。 调用 stop ()终止线程,如下面的程序 t.start ()  // t是一个线程 ......    //省略了一些语句 t.stop (); //调用stop()终止线程 stop()是一种强制终止方式,它不会保存和程序运行有关的信息,在复杂程序中一般不建议使用

线 程 E.非法状态处理 isAlive()方法 对于任何状态,如果调用的方法和状态不符,都会引起非法状态处理。 比如:线程刚创建后,只能调用 start ()或者 stop ()方法,如果调用其它方法就会引起非法状态处理。 isAlive()方法 在类Thread中提供了方法isAlive(),如果线程已经启动,但是未终止,返回true,反之,返回 false,表示该线程未启动,或者已终止。 如果isAlive()方法返回true,不能区分是可运行态(runnable)还是不可运行态(not runnable)。

线 程 4、构造线程体有两种方式: 定义一个线程类,它继承Thread类,并重写其中的run()方法。直接生成这个类的对象就可以构造一个线程。 提供一个实现接口 Runnable的类作为线程的目标对象。在构造线程对象时,通过方法 Thread(Runnable target,String name)把目标对象传给这个线程实例。 例:如何构造一个线程(两种方法)(多次考察)?

线 程 5、基本的线程控制(终止、暂停和恢复) a、终止线程 线程终止后,其生命周期就结束了,也就是进入了死亡状态,终止后的线程不能再被调度执行。在下面的一些情况下,线程进入终止态。   1、线程执行完线程体run()方法后,自然终止。 在前面的例子中,线程都是执行完run()方法后自然终止的,可以参考例11.1的程序。   2、通过调用线程的实例方法stop()后,终止线程。

线 程 例:下列哪种情况无法使当前线程停止执行( ) A. 线程执行过程中的异常被抛出发生 B. 线程执行了sleep()方法. C. 产生了一个新线程 D. 具有更高优先级的线程准备就绪

线 程 b、线程的暂停和恢复 1、sleep()方法 2、suspend()和resume() 3、join()方法

线 程 例 关于线程的下列说法正确的是(D )  A. 线程只能通过继承类Thread创建。 B. 执行suspend方法将使线程停止并不能被重新start。 C. 线程与进程实际是同一个概念。 D. 线程的终止可以通过两种方式实现:自然撤销或被停止。 A、有两种方法构造线程体 B、执行suspend方法将使线程挂起,可以用resume方法恢复线程的执行。 C、虽然线程和进程都是顺序执行的指令序列,但线程和进程不同。

Java Applet Applet就是用Java编写的一段代码,可以在浏览器中运行。   与Application 的主要区别是执行方式不同,Application从main()方法开始执行,而Applet 在浏览器中运行,比较复杂 Applet在浏览器中运行,必须创建一个html文件,把Applet嵌入到html中,在浏览器中给出html文件的URL地址即可。 例.什么是Applet,如何运行一个Applet

Java Applet Applet是一个AWT组件,具有一般AWT组件图形绘制功能。这些方法是由Component类提供的。主要的方法有:paint(),update(),repaint()方法。 详细说明见下页 Java有其自己的AWT绘图系统控制何时和怎样进行绘画。 当repaint()方法被调用时,AWT调用成员的update()方法,update()调用paint()。 AWT有时可以直接调用paint()方法。比如被其它窗口覆盖。

Java Applet 例:进行AWT绘制时,需要程序员重写repaint()方法(错) 2、update( )   用于更新图形,先清除背景、前景,再调用paint() 3、repaint( )   用于重绘图形,在组件外形发生变化,即大小改变或位置移动时,repaint( )方法立即被系统自动调用。有几种不同的重载形式,可以实现局部重绘,延时重绘等。 例:进行AWT绘制时,需要程序员重写repaint()方法(错)

Java Applet 例 paint()方法使用 ( ) 作为起输入参数。  A.  Graphics         B.  Graphics2D   C.    String              D.  Color  Graphics可以支持两种绘图,一种是基本的,如画线,画矩形,另一类是画图像,主要用于动画制作。

Java Applet 例题:Applet中方法init(),start(),stop()和destroy()的作用? (多次被考到) Init()方法在applet被首次载入时执行,作用是在applet被执行前执行一些必要的初始化操作。 Start()方法是applet的主体,由系统调用,其作用是执行或启动必要的任务或线程。 Stop()方法的作用是停止applet中一些耗费系统资源任务的执行。 Destroy()方法用于清除无用的applet,释放相关的资源。

五、作业简答题 简答题之-简述Java具有可移植性的原因? Java虚拟机(JVM)是在一台在物理计算机上由软件模拟实现的假想计算机,从结构上分析,它由一些抽象的部件组成:包括指令集,寄存器集、堆栈、存储区等。指令集采用与平台无关的字节码形式,寄存器集包括计数器、堆栈指针等,堆栈用于存放传递的参数和运行结果等,存储区则存放字节码。对不同的硬件平台Java虚拟机提供了不同的编译代码规范,该规范可以屏蔽机器硬件的差异,使Java软件独立于操作平台。

简答题之-简述Java中方法重载和方法重写的区别? 方法重载是指多个方法具有相同的名称,但每个方法的参数表不同 ,即参数类型和参数数量不同。方法覆盖是指在类的继承过程中,子类与父类的方法不仅名称相同,而且参数也完全相同,但方法体(方法的具体实现)不同。这时子类中的方法覆盖了父类中同名的方法。 (方法重写又称方法覆盖)

简答题之-说明Java Application与Java Applet有何区别? (1)运行方式不同。Java Application是完整的程序,可以独立运行;Java Applet程序不能单独运行,它必须嵌入到用HTML语言编写的Web页面中,通过与Java兼容的浏览器来控制执行。 (2)运行工具不同。Java Application程序被编译以后,用普通的Java解释器就可以使其边解释边执行,而Java Applet必须通过网络浏览器或者Applet观察器才能执行。 (3)程序结构不同。每个Java Application程序必定含有一个并且只有一个main方法,程序执行时,首先寻找main方法,并以此为入口点开始运行。含有main方法的那个类,常被称为主类,也就是说,Java Application程序都含有一个主类。而Applet程序则没有含main方法的主类,这也正是Applet程序不能独立运行的原因。尽管Applet没有含main方法的主类,但Applet一定有一个从 java.applet.Applet派生的类,它是由Java系统提供的。 (4)受到的限制不同。Java Application程序可以设计成能进行各种操作的程序,包括读/写文件的操作,但是 Java Applet 对站点的磁盘文件既不能进行读操作,也不能进行写 操作。然而,由于 Applet的引入,使Web页面具有动态多媒体效果和可交互性能,这使由名为超文本、实为纯文本的HTML语言编写成的Web页面真正具有了超文本功能,不但可以显示文本信息,而且还可以有各种图片效果和动态图形效果,从而使页面显得生动美丽;另外,Applet使Web页面增加了按钮等功能,从而增加了交互性。

简答题之-关键字this和super在成员方法中的主要作用是什么? 如果对重载构造方法,如果需要,可以用super调用父类的构造方法,用this调用当前对象的构造方法。

简述Java的异常处理机制? Java的异常处理机制分为两部分:抛弃异常(throw)和捕获异常(catch)。 抛弃异常在Java程序的执行过程中,如果出现了异常事件,就会生成一个异常对象。这个对象可能是由正在运行的方法生成,也可能由Java虚拟机生成,其中包含一些信息指明异常事件的类型,以及当异常发生时程序的运行状态等。生成的异常对象传递给Java运行时系统(Java Runtime System),这一异常对象的产生和提交过程称为抛弃(throw)异常。 捕获异常 Java运行时系统得到一个异常对象时,它将会寻找处理这一异常的代码。寻找的对象从生成异常对象的代码块开始,沿着方法的调用栈逐层回溯,直到找到一个方法能够处理这种类型的异常为止。然后运行时系统把当前异常对象交给这个方法进行处理。这一过程称为捕获(catch)异常。

简答题之-String类与StringBuffer类的主要区别是什么? JAVA平台提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据。这个String类提供了数值不可改变的字符串。而这个StringBuffer类提供的字符串进行修改。当你知道字符数据要改变的时候你就可以使用StringBuffer。如频繁的修改字符串值,可以使用StringBuffer

简答题之-什么是静态方法和静态变量,他们同普通的成员方法和变量有什么区别? 静态变量 按照是否静态的对类成员变量进行分类可分两种:一种是被static修饰的变量,叫静态变量或类变量;另一种是没有被static修饰的变量,叫实例变量。两者的区别是: 对于静态变量在内存中只有一个拷贝(节省内存),JVM只为静态分配一次内存,在加载类的过程中完成静态变量的内存分配,可用类名直接访问(方便),当然也可以通过对象来访问(但是这是不推荐的)。 对于实例变量,没创建一个实例,就会为实例变量分配一次内存,实例变量可以在内存中有多个拷贝,互不影响。 静态方法 静态方法可以直接通过类名调用,任何的实例也都可以调用,因此静态方法中不能用this和super关键字,不能直接访问所属类的实例变量和实例方法(就是不带static的成员变量和成员成员方法),只能访问所属类的静态成员变量和成员方法。因为实例成员与特定的对象关联。

使用socket进行通讯的基本步骤是什么? 无论一个socket通信的功能多么齐全、程序多么复杂,其基本步骤都是一样的,都包括以下四个基本的步骤: 1、创建socket 首先创建ServerSocket,在客户端创建Socket后,连接服务器,在服务器端创建一个和它对应的一个Socket。 2、打开连接到socket的输入/出流在客户端和服务器端分别用Socket创建输入流和输出流,把客户端的输入流和服务器的输出流连接起来,客户端的输出流和服务器端的输入流连接起来。 3、按照一定的协议对socket进行读/写操作每个程序都可能不同。 4、关闭socket 使用Socket的close()方法。

简述Applet中方法paint(),update(),repaint()方法的关系? paint()方法中进行绘图具体操作,但是Component类只提供了paint()方法的架子,并未实现任何操作,即实际上只进行了空操作,而没有在组件中绘制具体图案。update()方法用于更新图形,它首先清除背景,然后设置前景,再调用paint()方法完成组件中的具体绘图。 repaint()方法主要用于重绘图形。在组件发生变化,即大小改变或位置移动时,repaint()方法立即被系统自动调用。它调用update()方法以实现对组件的更新。repaint()方法有几种重载的方法,分别调用不同的repaint()方法,可实现对组件的局部进行重绘、延时重绘。

什么是线程,Java中线程由哪几部分组成? 线程与进程相似,是一段完成某个特定功能的代码,是程序中单个顺序的流控制;但与进程不同的是,同类的多个线程是共享一块内存空间和一组系统资源,而线程本身的数据通常只有微处理器的寄存器数据,以及一个供程序执行时使用的堆栈。所以系统在产生一个线程,或者在各个线程之间切换时,负担要比进程小的多,正因如此,线程被称为轻负荷进程(light-weight process)。一个进程中可以包含多个线程。 线程的模型是由CPU、程序代码和数据封装体组成的集合 1、虚拟的 CPU(Virtual CPU),封装在Java.lang.Thread类中。 2、CPU所执行的代码(Code),传递给Thread类。 3、CPU所处理的数据(Data),传递给Thread类。

使用缓冲区输出流有什么作用? BufferedOutputStream这两个类实现了带缓冲的过滤流,由于提供了缓冲机制,把任意的输入流或者输出流“捆绑”到缓冲流上会获得性能的提高。 在初始化BufferedOuputSream时,除了要指定所连接的输出流外,还可以指定缓冲区的大小。缺省使用32字节大小的缓冲区。通常程序中指定的缓冲区大小应是内存页或磁盘块等的整数倍,最优的缓冲区大小常依赖于主机操作系统、可使用的内存空间、机器的配置等。一般可选8192字节或者较小的缓冲区以提高性能。 在使用BufferedOutputStream进行输出时,数据首先写入缓冲区,当缓冲区满时,其中的数据写入所连接的输出流。

讨论时间 欢迎大家共同讨论问题!