java复习资料.docx
- 文档编号:9632084
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:14
- 大小:62.75KB
java复习资料.docx
《java复习资料.docx》由会员分享,可在线阅读,更多相关《java复习资料.docx(14页珍藏版)》请在冰豆网上搜索。
java复习资料
可能简答题:
类库含义:
•java.lang(语言核心)
•java.util(低级实用工具)
•java.io(输入输出)
•(网络)
•java.awt(用户界面)
•java.applet(java小程序)
Application程序特点:
★一个文件中可以有多个类
★最多只有一个public类——主类
★文件名与类名(public类)相同
★main方法作为程序入口点
基本数据类型
布尔型,整型,浮点型,字符型
引用数据类型
数组,类,接口
标示符:
•变量、常量、方法、对象、类的名字
•字母、数字和下划线、美元符号组成
•不能以数字开头
•区分大小写
JAVA语言特点:
①Java是定位于网络计算的计算机语言
②Java集中体现和充分利用了若干当代软件技术新成果。
对象(object):
现实世界的实体。
属性:
状态/数据,静态特性的描述。
方法:
行为/操作,动态特性的描述。
类(class):
对象的特性描述(抽象描述)
Ø一堆对象的特性描述
Ø对某种对象的抽象描述
Ø建立对象的模版
Ø是一种抽象的数据类型
消息(message)
一个对象调用了另一个对象的某个方法
继承(Inheritance)
分类:
将性质相似的东西归为一类
有层次
低层次的分类具备高层次分类的特性
遗传:
下一代具有上一代的某些特性
下一代还具备自己特有的特性
如何进行数组的复制?
使两个引用变量str1,str2都指向同一数据块,即两个数组共享同一内存空间。
System.arraycopy(来源数组,来源起始位置,目的数组,目的起始位置,数组长度)
域变量与局部变量的区别?
<考>
如何进行参数传递?
1、实参与形参的结合
2、对于基本数据类型,参数传递为值传递
3、对于引用数据类型,参数传递为地址传递
继承对系统开发的意义
1、使用继承的优点:
①便于管理系统中的对象:
基类的修改直接反映到子类上
②系统的扩充更加容易:
从基类继承即可
2、程序代码的重用(softwarereuse)
加快开发速度
减少程序错误
上溯造型(Upcasting),父类与子类对象的转换<考>
1、子类对象可以被视为其父类的一个对象
2、父类对象不能当作其某一个子类的对象
3、形参为父类对象,实参可以是子类对象
4、如果父类对象引用指向的实际是一个子类对象,那么这个父类对象的引用可以强制转换为子类对象的引用。
多态<考>
1、相同的名字表示不同的含义
2、多态的多种情况
子类对父类的覆盖
重载
动态绑定(虚方法调用)
3、作用
提高抽象程度
降低耦合性
虚方法调用(动态绑定)<考>
1、Java运行时系统根据调用方法的实例的类型来决定选择那个方法调用
2、对于子类的实例,如果子类覆盖了父类的方法,则运行时调用子类的方法
3、对于子类的实例,如果子类未覆盖父类的方法,则运行时调用父类的方法
线程有哪些状态,画出状态转换图<考>
构造方法的执行过程<考>
1、调用本类的构造方法或父类的构造方法。
2、执行域的初始化赋值。
3、执行构造方法中的各语句。
流:
实际上指在计算机的输入与输出之间运动的数据的序列
通过URL读取网络文件内容:
(1)创建一个URL类型的对象
(2)利用URL的OpenStream(),获得对应的InputStream类的对象
(3)通过InputStream来读取内容
使用控组件,遵循的步骤?
创建对象,指定其属性
将该组件加入到容器中
为该组件注册事件监听器
覆盖隐藏和重载的区别?
<考>
override(重写)
1、方法名、参数、返回值相同。
2、子类方法不能缩小父类方法的访问权限。
3、子类方法不能抛出比父类方法更多的异常(但子类方法可以不抛出异常)。
4、存在于父类和子类之间。
5、方法被定义为final不能被重写。
overload(重载)
1、参数类型、个数、顺序至少有一个不相同。
2、不能重载只有返回值不同的方法名。
3、存在于父类和子类、同类中。
JAVA异常分几类,分别是?
<考>
Java语言对大多数常见的异常都定义了异常类。
这些异常类可以分为两大类:
Error类和Exception类
Error(错误)类和Exception(异常)类的区别在于:
错误指的是系统异常或运行环境出现的异常,这些异常一般是很严重的异常,即使捕捉到通常也无法处理,例如Java虚拟机异常。
Exception类的异常指的是一般的异常,例如,输入/输出(I/O)异常、数据库访问(SQL)异常等。
对这些异常应用程序可以进行处理
面向对象开发过程?
OOA,OOD,OOP
oop的优点:
1、消除了数据与操作分离的弊端
2、将私有数据与公有数据分开
3、对象易于复用、扩充和维护
4、消息和接口实现了信息隐藏
5、继承可以实现应用扩展和代码重用
结构化程序设计的三种基本流程
①顺序结构
②分支结构
③循环结构
This()和super()的区别:
<考>
1、范围:
Super是由子类访问父类的内容,this直接访问本类中的内容;
2、访问属性:
Super.父类属性,如果属性没有被覆写,则也可以不写super,this本类属性;
3、访问方法:
Super.()父类方法(),如果方法没有被覆写,则可以不用,加super也表示调用父类中的方法,this.父类方法(),可以不写this,也表示调用本类的
4、访问构造:
Super是访问父类中的构造方法,必须放在首行,this是访问本类中的其他构造,必须放在首行
构造函数特点<考>
▲与类同名的方法
▲无返回值
▲主要完成对象的初始化工作
▲不用显式调用,用new来调用
▲对象创建时会自动调用构造方法
▲如果没有定义任何构造方法,系统会自动产生一个构造方法
构造函数作用
对类的成员变量进行初始化操作,因此构造方法都是在创建类的对象时自动执行
接口作用:
1、实现不相关类的相同行为
2、可以指明多个类需要实现的方法
3、通过接口可以了解对象的交互界面,而无需了解对象所对应的类
抽象abstract方法
①为所有子类定义一个统一的接口
②只需声明,不需实现,只能位于abstract类。
③子类必须实现父类中的abstract方法,否则仍为abstract类。
④abstract方法必须位于abstract类中
异常
Try{}catch{}(Exceptione){}finally{}
不论try块中是否发生异常,finally块总要执行
创建线程的两种方法<考>
1、通过继承Thread类
从Thread类派生出一个新类
覆盖run()方法
创建派生类的对象,调用start()方法
2、通过传递Runnable对象
定义一个类如MyTask,它实现了Runnable接口
创建一个MyTask对象
将该对象作为Thread构造方法的参数
复写run()方法
调用任何synchronized方法时,对象被锁定
只能有一个线程调用特定对象的一个synchronized方法
套接字:
socket(ip地址,port接口)
可能程序题:
//简单流操作,键盘输入一个数,并显示,第三种方法;
importjava.io.*;
publicclassIn{
publicstaticvoidmain(Stringarg[]){
intx;
System.out.print("请输入一个数:
");
try{
x=System.in.read()-'0';
System.out.println("你输入的是:
"+x);
}catch(IOExceptione){
e.printStackTrace();
}
}
}
//简单流操作,键盘输入一个字符,并显示;
importjava.io.*;
publicclassIn{
publicstaticvoidmain(Stringarg[]){
charx;
System.out.print("请输入一个数:
");
try{
x=(char)System.in.read();
System.out.println("你输入的是:
"+x);
}catch(IOExceptione){
e.printStackTrace();
}
}
}
//求30!
publicclassCalculate{
publicstaticvoidmain(String[]args){
intx=1;
for(inti=1;i<=30;i++){//这里的30就表示求的30!
x=x*i;
}
System.out.println("30!
="+x);
}
}
//Applet小程序,简单显示一句话,考的可能性不大
importjava.applet.Applet;
importjava.awt.Graphics;
publicclassappletextendsApplet{
publicvoidpaint(Graphicsg){
g.drawString("hello",20,20);
}
}
//多态性,继承,第二个实验,我写的有点难,可能不考这么复杂
classPerson{
Stringname;
intage;
Person(Stringn,inta){
this.name=n;
this.age=a;
}
voidsayHello(){
System.out.println("Hello,Mynameis"+name);
}
}
classStudentextendsPerson{
Stringschool;
Student(Stringn,Stringschool,inta){
super(n,a);
this.school=school;
}
voidsayHello(){
super.sayHello();
System.out.println("Myschoolis"+school+",Myageis"+age);
}
}
classKkxx{
publicstaticvoidmain(Stringargs[]){
Personp=newPerson("kkxx",23);
p.sayHello();
Studentss=newStudent("kkxxGO","KD",23);
ss.sayHello();
}
}
//售票系统
publicclassHcp{
publicstaticvoidmain(String[]args){
HcpThreadh=newHcpThread();//五个线程共享同一资源
Threadt1=newThread(h);
Threadt2=newThread(h);
Threadt3=newThread(h);//创建五个线程,相当于五个售票窗口
Threadt4=newThread(h);
Threadt5=newThread(h);
t1.start();
t2.start();
t3.start();
t4.start();
t5.start();
}
}
classHcpThreadimplementsRunnable{
inttickets=100;//定义总票数
Stringstr=newString();
publicvoidrun(){//HcpThread必须实现继承的抽象方法Runnable.run()
while(true)
{
synchronized(str)//同一时间只允许一个线程进入
{
if(tickets>0)
{
try{Thread.sleep(100);}catch(Exceptione){}System.out.println(Thread.currentThread().getName()+"号窗口正在卖"+this.tickets--+"号票");
}
}
}
}
}
//复制文件并显示文件,将每个字符读入,并写入令一个文件,同时显示出来
importjava.io.*;
publicclassFileCopyByChar{
publicstaticvoidmain(String[]args){
try{
FileReaderinput=newFileReader("FileCopyByChar.java");
FileWriteroutput=newFileWriter("temp.txt");
intc=input.read();
while(c!
=-1){
output.write(c);
System.out.println((char)c);
c=input.read();
}
input.close();
output.close();
}catch(IOExceptione){
System.out.println(e);
}
}
}
//复制文件并显示文件,将每个字符读入,并写入令一个文件,同时显示出来,使用readLine(),使它读入一行字符
importjava.io.*;
publicclassFileCopyByLine{
publicstaticvoidmain(String[]args){
try{
FileReaderinput=newFileReader("FileCopyByChar.java");
BufferedReaderbr=newBufferedReader(input);
FileWriteroutput=newFileWriter("temp.txt");
BufferedWriterbw=newBufferedWriter(output);
Strings=br.readLine();
while(s!
=null){
bw.write(s);
bw.newLine();
System.out.println(s);
s=br.readLine();
}
br.close();
bw.close();
}catch(IOExceptione){
System.out.println(e);
}
}
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 复习资料