Java复习总结.docx

上传人:b****4 文档编号:13959151 上传时间:2023-06-19 格式:DOCX 页数:28 大小:125.78KB
下载 相关 举报
Java复习总结.docx_第1页
第1页 / 共28页
Java复习总结.docx_第2页
第2页 / 共28页
Java复习总结.docx_第3页
第3页 / 共28页
Java复习总结.docx_第4页
第4页 / 共28页
Java复习总结.docx_第5页
第5页 / 共28页
Java复习总结.docx_第6页
第6页 / 共28页
Java复习总结.docx_第7页
第7页 / 共28页
Java复习总结.docx_第8页
第8页 / 共28页
Java复习总结.docx_第9页
第9页 / 共28页
Java复习总结.docx_第10页
第10页 / 共28页
Java复习总结.docx_第11页
第11页 / 共28页
Java复习总结.docx_第12页
第12页 / 共28页
Java复习总结.docx_第13页
第13页 / 共28页
Java复习总结.docx_第14页
第14页 / 共28页
Java复习总结.docx_第15页
第15页 / 共28页
Java复习总结.docx_第16页
第16页 / 共28页
Java复习总结.docx_第17页
第17页 / 共28页
Java复习总结.docx_第18页
第18页 / 共28页
Java复习总结.docx_第19页
第19页 / 共28页
Java复习总结.docx_第20页
第20页 / 共28页
亲,该文档总共28页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

Java复习总结.docx

《Java复习总结.docx》由会员分享,可在线阅读,更多相关《Java复习总结.docx(28页珍藏版)》请在冰点文库上搜索。

Java复习总结.docx

Java复习总结

第一章

(1)Java语言的特点

(2)Java语言的移植性为什么比较高

1.基本数据类型长度一致与平台无关

2.源程序经过编译器编译后转化为字节码,然后再通过解释器在各种平台的JVM上运行

(3)Java程序的编辑、编译和解释执行过程

JavacHelloWorld.java

JavaHelloWorld

(4)Java不同版本

(5)

J2SE应用程序分类

1.Javaapplication

2.Javaapplet

(6)JVM、JRE和JDK及其关系

(7)Java程序的结构特点

第二章

(1)Java的词法规则

1.使用国际字符集(Unicode)

2.标识符是以字母、下划线_、美元符$开头,后面可以是字母、下划线、美元符、数字(0~9)

3.标识符区分大小写

4.标识符长度不限

(2)常见的Java关键字和保留字

1.数据类型:

booleanintlongshortbytefloatdoublecharclass

interface

2.值:

truefalsenull

3.流程控制:

ifelsedowhileforswitchcasedefaultbreak

continuereturntrycatchfinally

4.修饰符:

publicprotectedprivatefinalvoidstaticstrictfpabstract

transientsynchronizedvolatilenative

5.动作:

packageimportthrowthrowsextendsimplementsthissuper

instanceofnew

(3)Java的数据类型分类

1.基本数据类型:

整型、浮点、布尔、字符

2.整型常量缺省:

int

3.浮点常量缺省:

double

引用数据类型:

类、接口和数组

(4)Java的数据类型转换

隐型类型转换:

自动类型转换

显型类型转换:

强制类型转换

byte(8)≤short(16)≤char(16)≤int(32)≤long(64)≤float(32)≤double(64)

(5)变量

1.变量初始化

2.理解变量的值

3.变量默认值

4.变量作用域

类内部和方法内部

并行

嵌套

(6)常量

1.Java字面常量

2.Java符号常量:

final修饰的变量

(7)运算符和表达式

1.算术运算符包括+、-、*、/、%、++、--等。

算术运算原则:

先乘除、再加减,括号优先。

整数除法会直接砍掉小数,而不是进位。

与C语言不同,对取余(取模)运算符%来说,其操作数可以为浮点数。

如:

37.2%10=7.2。

Java对加运算符进行扩展,使+能够进行字符串的连接

整数取余规则:

a%b=a-(a/b)*b

浮点数取余规则:

a%b=a-(b*q),这里q=(int)(a/b)

++i;--i在使用i之前,使i的值加1,因此执行完++i后,整个表达式和i的值均为i+1

i++;i--在使用i之后,使i的值加1,因此执行完i++后,整个表达式的值为i,而i的值

变为i+1

2.关系运算符

关系运算符用来比较两个值,返回布尔类型的值true或false。

比较运算,计算结果true或false

优先级

(>、>=、<、<=)>(==、!

=)

关系运算符低于算术运算符

3.逻辑运算符

也称布尔运算符,操作数是布尔类型,计算操作数的逻辑关系,计算结果"true""false"

&&:

and||:

or

4.位运算符

按位与运算(&)

参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0。

按位或运算(|)

参与运算的两个值,如果两个相应位都是0,则该位结果为0,否则为1。

按位异或运算(^)

参与运算的两个值,如果两个相应位的某一个是1,另一个是0,那么按位异或(^)

该位的结果为1。

也就是说如果两个相应位相同,输出位为0,否则为1。

按位取反运算(~)

按位取反运算(~)属于一元运算符,它只对一个自变量进行操作(其他所有运算符都是二

元运算符)。

按位取反生成与输入位的相反的值——若输入0,则输出1;输入1,则

输出0。

左移位运算符(<<)

运算符<<执行一个左移位。

作左移位运算时,右边的空位补0。

在不产生溢出的情况

下,数据左移1位相当于乘以2。

右移位运算符(>>与>>>)

运算符>>执行一个右移位(带符号),左边按符号位补0或1

5.赋值运算符

简单赋值运算符=

复合赋值运算符

+=、-=、*=、/=、%=

<<=、>>=、&=、^=、|=

6.三目运算符

x?

y:

z;

7.其他运算符

()和[]

括号运算符()的优先级是所有运算符中最高的,所以它可以改变表达式运算的先后顺序

序。

方括号运算符[]是数组运算符。

.运算符

.运算符用于访问对象实例或者类的类成员函数

new运算符

new运算符用于创建一个新的对象或者新的数组。

instanceof运算符

对象运算符instanceof用来判断一个对象是否是某一个类或者其子类的实例

如果对象是该类或者其子类的实例,返回ture;否则返回flase。

(8)数组

1.数组定义和初始化

语法1:

类型数组名[];

例如:

inta[];//数组定义,inta[3]在Java属于语法错误

a=newint[3];//数组初始化

语法2:

类型[]数组名;

例如:

int[]b;//数组定义

b=newint[3];//数组初始化

语法3:

类型[]数组名=new类型[数组长度];

例如:

int[]c=newint[3];//数组定义+数组初始化

语法4:

类型[]数组名={数组数据列表};

枚举法定义数组

int[]d={1,2,3};//数组定义+数组初始化+数组元素赋值

2.数组元素初始化(数组元素是引用数据类型)

A[]a;//定义数组

a=newA[2];//初始化数组

a[0]=newA();//初始化数组元素

a[1]=newA();//初始化数组元素

3.多维数组:

数组的元素是数组

int[][]a;//数组定义

a=newint[2][];//初始化数组

a[0]=newint[3];//初始化数组元素

a[1]=newint[4];//初试化数组元素

第三章

(1)面向对象的基本概念

(2)面向对象的三大特征

1.封装:

将一组相关的数据和数据上的操作集合在一起,形成一个封装体。

2.继承:

现实世界遗传关系的直接模拟,它表示类之间的内在联系以及对属性和操作的共享

3.多态:

使用相同方法名称,调用(动态绑定)不同的方法实现

重载方法名称相同,方法参数不同

覆盖方法名称相同,方法参数也相同

类继承extends接口实现implements

(3)对象的三大要素:

属性、行为和标识

状态:

对象的静态属性,通常使用成员变量来表示对象内部的各种信息

面向对象语言:

使用对象的成员变量来实型

行为:

对象的动态属性,通常使用成员方法

面向对象语言:

使用对象的成员方法来实型

标志:

区分同一类对象的标志符

面向对象语言:

唯一标识对象的成员变量

(4)类的定义

1.[类的修饰符]class类名[extends父类名]implements[接口名]

{

类型成员变量1;

类型成员变量2;

………………

类型成员方法1(参数1,[参数2,…]){

方法体;

}

类型成员方法2(参数1,[参数2,…]){

方法体;

}

………………

}

2.类的访问控制符

public:

完全友好类

无访问修饰符:

包内友好类

3.成员(变量或者方法)的访问控制符

public:

公共成员

无访问控制符:

包内友好成员

protected:

子孙友好

private:

类内私有

(5)对象

1.在创建子类对象时,不仅需要对自身成员变量初始化,还要对继承的父类中成员变量

初始化

2.构造方法是不能被继承的,但是可以在子类的构造方法中调用父类的构造方法(super)

3.类中没有定义构造方法,系统自动提供一个不带参数的默认构造方法

4.在用户自定义的构造方法中,可以用this调用本类的其它构造方法,可以用super调用

父类的构造方法

5.当子类this和super都不用时,系统会自动加上super()调用父类的不带参数的构造方法

6.子类显式调用this或者super语句必须放在第一条语句,且this和super最多只能调用其

一个

7.构造方法可以重载但是没有继承

(6)成员方法的定义

[修饰符列表]返回类型方法名称(参数列表)[throws异常名]

{

方法体;

}

static:

静态方法

属于类的方法

final:

最终方法

不能被子类重新定义的方法

abstract:

抽象方法

只有方法说明,没有具体实现

synchronized:

同步方法(后面线程介绍)

用于多线程程序中的协调和同步

第五章

(1)容器组件:

可包含其它组件的组件(基类Container)

窗口:

Window

对话框:

Dialog

面板:

Panel

(2)非容器组件:

必须被包含在容器中的组件(基类Component)

按钮:

Button

单行文本框:

TextField

复选框:

Checkbox

单选框:

Choice

(3)常用AWT组件

标签Label

按钮Button

单行文本框TextField

复选框Checkbox

单选按钮组CheckboxGroup

下拉列表List

多行文本框TextArea

菜单Menu

(4)常用Frame成员方法

publicvoidsetTitle(Strings):

设置框架的标题

publicvoidsetSize(intwidth,intheight):

设置框架大小

publicvoidsetVisible(booleanb):

设置框架可见

publicvoidsetMenuBar(MenuBarmb):

将此窗体的菜单栏设置为指定的菜单栏

publicComponentadd(Componentcomp,Objectconstraints):

将指定组件(comp)添加到此容器

的给定位置(constraints)上

(5内部类

内部类:

类内部或者方法内部定义的类叫内部类,包含内部类的类称为外部类。

作用

实现隐藏(不希望除了外部类的其他类了解内部类实现细节)

权限后门(内部类拥有外部类的所有成员的访问权限)

语法特点

内部类可以声明public、protected、private等访问限制

内部类可以实现特定的接口

内部类可以声明为abstract

内部类可以声明为final

importjava.awt.*;

importjava.awt.event.*;

publicclassHelloWorldFrame4extendsFrame{

privateButtonokButton=newButton("ok");

privateTextFieldtext=newTextField(20);

//定义内部类进行事件处理

classButtonClickimplementsActionListener{

//事件处理方法

publicvoidactionPerformed(ActionEvente){

//设置单行文本框内容

text.setText("helloworld");

}

}

//构造方法

publicHelloWorldFrame4(){

FlowLayoutlayout=newFlowLayout();

this.setLayout(layout);

this.add(okButton);

this.add(text);

//新建按钮事件对象

ActionListenerlistener=newButtonClick();

//注册动作事件侦听者

okButton.addActionListener(listener);

}

publicstaticvoidmain(String[]args){

HelloWorldFrame4frame=newHelloWorldFrame4();

frame.setSize(400,300);

frame.setVisible(true);

frame.setTitle("firstexample");

}

}

(6)例子:

用一个事件侦听类同时侦听两个按钮

importjava.awt.*;

importjava.awt.event.*;

publicclassTwoButtonsFameextendsFrame{//自定义Fame类

privateButtonbtn1=newButton("1");

privateButtonbtn2=newButton("2");

//定义一个私有内部类侦听ActionEvent

privateclassButtonListenerimplementsActionListener{

publicvoidactionPerformed(ActionEvente){

System.out.println(e.getSource().equals(btn1));

System.out.println(e.getSource().equals(btn2));

}

}

publicTwoButtonsFame(){//构造方法

this.setLayout(newFlowLayout());//定义布局

this.add(btn1);//加入按钮1

this.add(btn2);//加入按钮2

ActionListenerlistener=newButtonListener();//初始化事件侦听者

btn1.addActionListener(listener);//同时注册listener

btn2.addActionListener(listener);//同时注册listener

}

publicstaticvoidmain(String[]args){

TwoButtonsFameframe=newTwoButtonsFame();

frame.setSize(400,300);

frame.setVisible(true);

}

}

(7)动作事件类(java.awt.event.ActionEvent)

用户在用户界面组件上触发一个动作

典型事件源:

按钮(Button)按下

事件侦听接口:

java.awt.event.ActionListener

抽象事件处理方法:

voidactionPerformed(ActionEvente)

如何处理ActionEvent事件?

新建事件侦听类MyActionListener实现ActionListener接口,实现actionPerformed方法(填充事件处理代码)

新建事件侦听者类MyActionListener的对象listener,listener可以作为ActionEvent事件的侦听者;

事件源(例如button)调用注册方法addActionListener注册事件侦听者listener

当事件源发生ActionEvent事件时,事件侦听者的事件处理方法actionPerformed(ActionEvent)被调用

(8)窗口事件类(java.awt.event.WindowEvent)

典型事件源:

当打开、关闭、激活、停用、图标化或取消图标化Window对象时,或者焦点转移到Window内或移出Window时,由Window对象生成此低级别事件

事件侦听接口:

java.awt.event.WindowListener

voidwindowActivated(WindowEvente):

当窗口设置为活动Window时调用。

voidwindowClosed(WindowEvente):

因对窗口调用dispose而将其关闭时调用。

voidwindowClosing(WindowEvente):

用户试图从窗口的系统菜单中关闭窗口时调用。

voidwindowDeactivated(WindowEvente):

当Window不再是活动Window时调用。

(9)小结:

AWT处理事件关键步骤

选择某个组件(例如按钮)作为事件源;

新建事件侦听类(例如ButtonClick)实现某个事件侦听接口(例如ActionListener),实现那些抽象方法(填充事件处理代码);

新建事件侦听类(例如ButtonClick)的对象(listener)作为事件侦听者;

事件源(例如按钮)使用相应的侦听者注册方法(addActionListener)注册事件侦听者(例如listener)

(10)常用布局设计管理器

FlowLayout:

容器从上到下,从左到右放置组件(掌握)

BorderLayout:

将容器划分成东西南北中

CardLayout:

将容器划分成一个卡片栈

GridLayout:

容器分成相同尺寸的网格,组件从上到下,从左到右放到网格

(11)例子:

Window和Frame

importjava.awt.*;

importjava.awt.event.*;

publicclassWindowExam1extendsFrame{

privateButtonbtn=newButton("open");

classClickButtonimplementsActionListener{

publicvoidactionPerformed(ActionEvente){

Windowwindow=newWindow(WindowExam1.this);

Labellab=newLabel("helloworld");

window.add(lab);

window.setSize(300,200);

window.setBackground(Color.pink);

window.setVisible(true);

}

}

publicWindowExam1(){

this.setLayout(newFlowLayout());

this.add(btn);

ClickButtonlistener=newClickButton();

btn.addActionListener(listener);

}

publicstaticvoidmain(String[]args){

WindowExam1frame=newWindowExam1();

frame.setSize(400,300);

frame.setVisible(true);

}

}

(12)对话框

构造方法

Dialog(Frameowner):

构造一个初始时不可见、无模式的Dialog,带有空标题和指定的所有者框架。

Dialog(Frameowner,Stringtitle):

构造一个初始时不可见、无模式的Dialog,带有指定的所有者框架和标题。

Dialog(Frameowner,Stringtitle,booleanmodal):

构造一个初始时不可见的Dialog,带有指定的所有者框架、标题和模式。

主要成员方法

StringgetTitle():

获得dialog的标题。

voidsetTitle(Stringtitle):

设置Dialog的标题。

voidsetModal(booleanb):

指定此dialog是否应该是有模式的。

booleanisModal():

判断dialog是否为有模式的。

第六章

(1)Java的显式异常处理机制

try{

读入光盘内容(可能发生异常代码)

}

catch(Exceptione){//异常发生

光驱异常处理代码(异常处理代码)

}finally{//无论异常发不发生

 关闭光驱(总是要执行的代码)

}

(2)Java错误分类

编译时错误:

主要是语法错误

运行时错误

错误(Error):

致命错误,程序不能简单地恢复执行,程序员无法干预

例子:

内存空间不足、断电

异常(Exception):

非致命错误,程序在修正后可恢复执行

第七章

(1)线程概念

线程(thread):

一个进程中一段连续的控制流程或者执行路径,程序自身执行和调度的实体。

线程不能独立存在,必须依附于某个进程,共享进程的某些资源(代码、数据、文件)

线程可以独享某些资源(堆栈、程序计数器)

线程的维护代价比进程小,可以称为轻量级进程(lightweightprocess:

LWP)

(2)主线程

主线程:

在任何Java程序启动时,一个线程立刻运行(main方法对应的线程),该线程通常称为程序的主线程

它是产生其他子线程的线程

它不一定是最后完成执行的线程,子线程可能在它结束之后还在运行

(3)Java自定义并发线程类的两种方法

继承Thread类(Thread类本身实现Runnable接口)

publicclassMyThreadextendsThread{

//线程索引

privateintthreadIndex;

//构造方法,初始化线程索引

publicMyThread(intindex){

this.threadIndex=index;

}

//覆盖Thread类的run方法,定义并发执行代码

publicvoidrun(){

System.out.println("Thread"+threadIndex+"begin");

try{

Thread.sleep(50);//正在执行线程休眠,伪装耗时操作

}

catch(InterruptedExceptione){

e.printStackTrace();

}

System.out.println("Threa

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2