java必备知识要点.docx
- 文档编号:9648400
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:26
- 大小:26.28KB
java必备知识要点.docx
《java必备知识要点.docx》由会员分享,可在线阅读,更多相关《java必备知识要点.docx(26页珍藏版)》请在冰豆网上搜索。
java必备知识要点
第1章Java语言概述
1、JDK、JRE、JVM分别指什么及其作用;
JDK(JavaDevelopmentKit):
Java软件开发工具包。
JDK是Java的核心,包括Java运行环境、一系列java开发工具和java基础的类库
JVM(javavirtualmachine):
Java虚拟机
负责对本地*.class文件解释执行。
包含类加载器、字节码确认器、以及JIT实时编译器。
JRE(JavaRuntimeEnvironment):
Java运行环境。
运行Java程序所需要的环境的集合。
包含JVM标准实现及java核心类库
2、Java的三个版本;标准版,企业版,微型版
3、JDK的安装及环境变量设置;
下载最新的jdk安装包
安装后配置环境变量:
假设安装在F:
\jdk1.6.0
(1)添加JAVA_HOME,值为:
F:
\jdk1.6.0
(2)在Path环境变量添加:
;%JAVA_HOME%\bin
(3)添加CLASS_PATH,值为:
.;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\jre\lib\rt.jar
4、Java源程序文件是什么?
字节码文件是什么文件?
如何在命令提示符下编译源程序?
编译后如何运行?
5、如何编译及运行Applet?
applet不能独立运行,必须嵌入在html文件中HelloJava.html
第2章Java语言基础
1、标识符命名规则,即可以知道哪些可作为标识符,哪些不可;
标识符:
用来表示变量、方法或类等的名字。
定义的规则如下:
1只能使用字母、数字、下划线和美元符($)。
2只能以字母、下划线和美元符开头。
3严格区分大小写,没有长度限制。
注意:
(1)一般类名首字母大写;方法与变量名首字母小写;第二个单词首字母大写。
(2)java支持Unicode标准字符集
2、基本数据类型有哪些,记住;字符型,数值类型,布尔类型
3、基本类型的自动转换与强制转换;
自动类型转换:
低优先级的数据自动会转换为高优先级的数据。
强制类型转换:
优先级高的数据转换为优先级低的数据。
例如:
doubled=3.14159;inta=(int)d;
4、算术运算符及逻辑运算符,尤其是&、&&,|、||的区别;
5、赋值运算符尤其是+=这类运算符;
复合赋值运算符:
+=(加等于),-=(减等于),*=(乘等于),/=(除等于),/=(模除等于
如:
a=100;a+=1;//此时a为101
第3章控制结构
1、if语句的使用;在if语句的所有形式中,布尔表达式总应该用括号括起来。
如:
if((i>=0)&&(j<=10))
if(i>=0&&j<=10)
if(i>0)&&(j<=10)错
2、switch语句的使用,注意switch关键字后表达式的类型,Case语句后break的作用,default子句作用;switch(表达式){//表达式必须为byte,short,int或char类型
case常量值1:
语句(组);
break;
case常量值2:
语句(组);
break;
case常量值N:
//常量值必须是与表达式类型兼容,且不能重复,break跳出switch语句
语句(组);
break;
default:
//若所有的case都不匹配,则可去执行default语句
语句(组);
3、while、do-while、for循环;
while循环
while(条件)
{语句组;}
2、do-while循环
do
{语句组;}
while(条件);
注意:
两者的区别,1先判断条件,成立才执行。
2先执行再判断条件。
4、在循环中break、continue的作用。
break
无标号:
跳出本层循环
有标号:
跳出指定循环
continue
无标号:
跳出本层循环的本次循环
有标号:
跳出指定循环的本次循环
第4章类和对象
1、面向对象的三个特征;封装,继承,多态
2、如何定义类、成员变量、方法;
[类修饰符]class类名{//类名(自定义的标识符)
typevariable1;//成员变量(对象属性)
…
typevariableN;
typemethodname1(parameter-list){//成员方法(对象行为或操作)
//方法体
}
…
typemethodnameN(parameter-list){
//方法体
}
}
3、方法如何调用:
static修饰及无static修饰;
方法名(参数列表)---成员方法调用成员方法
类.方法名(参数列表)---调用static修饰的方法
对象.方法名(参数列表)---调用无static修饰的方法
4、构造方法的定义;与类名相同,无返回值类型,创建对象时自动调用,不显示调用
classRect{
doublew,h;
publicRect(doublea,doubleb){
w=a;h=b;
}
doublecomputeArea(){
returnw*h;
}
}
5、对象使用new关键字创建,及构造方法的调用;对象名=new类名([参数]);//创建对象例:
r=newBox
(2);//调用构造方法
6、访问控制修饰符public、private、protected、default对访问权限的控制,同一包与不同包;源程序文件名必须与public类类名相同;
Ø若类声明为public,表示同一包中的类可自由访问此类,而别的包中的其他类可通过import引入。
❑一个程序文件里最多只能有一个类被修饰为public
❑源文件的文件名,必须是用public修饰的类名
❑若程序文件中没有任何public类,且文件名是程序中的一个类名,则该类被视作public
Ø若成员变量、成员方法声明为public,表示此成员变量、成员方法可被该类的实例或继承该类的子类访问。
其它包的类也可以通过引入共有类,访问共有类中的public成员。
❑一般,成员方法定义为public,提供其他程序访问的接口
❑若成员变量声明为public,其他类的方法可以直接访问它,但这样破坏了封闭性
Øprotected不能修饰类
protected修饰成员变量和成员方法,表示被该类中的方法、同一包中类或被其子类(可在不同包)所访问
Øprivate不能修饰类
private修饰的成员变量和成员方法只能被同一类中的其他成员访问
访问控制
本类
同一包
中的类
其他包
中子类
其他包
中的类
public
protected
×
(default)
友好
×
×
private
×
×
×
访问权限:
public>protected>default>private
7、非访问控制修饰符掌握static、final、abstract,尤其是final修饰符;
final修饰类,表示为“终极”、“最终”类,别的类不能继承此类。
final修饰成员变量,表示该成员变量是一个常量,不能被修改。
final修饰成员方法,表示该成员方法不能被重写
final与public联用,表示只能被访问,不能被继承或重写。
如,java.lang.System类即被修饰为final类
8、静态初始化static{}语句块的作用,与构造方法执行的顺序;
静态初始化:
一种在类加载时,做一些起始动作的程序块
第5章继承和接口
1、继承关键字extends的使用,注意Java只支持单继承;
[修饰符]class子类名extends父类名
{//类体
}
注意:
没有extends,默认父类为java.lang.Object
只能有一个父类,即单继承
子类可以继承父类的成员
2、子类访问父类的public、private、protected、default成员变量与成员方法在同一包与不同包的情况;
子类和父类在同一包中的继承性
•继承父类非private的成员变量和方法
子类和父类不在同一包中的继承性
•继承父类中protected和public的成员变量和方法
•不继承友好(default)变量和方法
3、继承中的super关键字的作用;
使用super调用父类的构造方法
•子类构造方法的第一条语句:
super(参数);
•缺省时默认为super(),即调用父类的无参构造方法,若父类不提供无参构造方法,出错。
使用super操作父类被隐藏的成员
•super.父类成员变量
•super.父类成员方法()
4、创建子类对象时调用子类及父类构造方法的顺序;
5、抽象类的定义,注意抽象类不能定义为final类型;使用abstract修饰的类,叫抽象类。
abstractclassA{……}
6、抽象方法的定义,特点;抽象类中可能没有抽象方法,有抽象方法的类一定是抽象类;
使用abstract修饰的方法,叫抽象方法。
抽象方法没有方法体。
abstract数据类型方法名(参数);
7、父类对象和子类对象之间的相互转换,转换后方法调用的情况;
子类对象可以隐式,也可以显示转换为父类对象。
(向上转型)(上转型:
子类对象当作父类对象使用)
处于相同类层次的类对象之间不能进行转换
父类对象在一定的条件下可以转换成子类对象,但必须使用强制类型转换。
8、方法重写、重载的概念;方法重载时方法的调用;子类进行方法重写时的方法调用;
9、接口的定义及实现、implements;
定义:
声明:
[public]interface接口名{//接口体}
[public][static][final]变量名=初值;
[public][abstract]方法类型方法名([参数表])
如:
interfacePrintable{
intMAX=100;
voidadd();
floatsum(floatx,floaty);
}
实现:
classAimplements接口1,接口2,……
10、接口的继承;interface接口1extends接口2,接口3,……
接口通过extends继承其它接口。
接口支持多继承。
子接口继承父接口的所有常量和抽象方法。
子接口的非抽象类要实现子接口和父接口的所有抽象方法。
11、包的概念及作用,package关键字;包:
Java有效管理类的一个机制。
(文件夹)
作用:
为了便于管理大型软件系统中数目众多的类,解决类的命名冲突问题。
包的创建:
package
packagecar.jeep;
classGreatWall{…}
第6章数组和集合
1、一维、二维数组的定义及访问;
一维定义格式:
数组类型数组名[];
或数组类型[]数组名;
数组类型可为Java中的任何数据类型。
数组名,必须符合标识符定义规则。
“[]”指明该变量是一个数组类型的变量,可放到数组名后面,也可放到数组名前
inta[];
int[]a;
引用格式为:
数组名[下标]
inta[]=newint[10];
intb=a[0]+a[9];
数组下标为从0到9。
数组有一个length属性,表示数组的长度。
inta[]=newint[10];
a.length为10。
二维定义格式为:
数组类型数组名[][];
或数组类型[][]数组名;
或数组类型[]数组名[];
引用格式为:
数组名[下标2][下标1];
下标1,下标2分别表示二维数组的第一、二维下标。
二维数组有一个length属性,表示数组的维数,每一维有一个length属性,表示每一维的长度。
2、数组长度的获得,数组下标从0开始,数组中元素必须类型相同;
3、能够写出数组的元素的排序的程序及Arrays.sort方法进行排序;
应用举例:
使用Sort()方法排序
importjava.util.*;
classArraySort{
publicstaticvoidmain(Stringargs[]){
inta[]={7,5,2,6,3};
Arrays.sort(a);
for(inti=0;i System.out.print(a[i]+""); }} 4、List的三个实现类: Vector、ArrayList、LinkedList的特点,常用方法,重点掌握如何遍历其中所有元素的方法(迭代器、循环); 构造方法Vector() 常用方法: add(Objectcontent);增加一个元素; add(intindex,Objectcontent);在指定位置index增加元素; booleancontains(Objectelement)是否包含元素element get(intindex);获取指定位置index的元素 构造方法ArrayList() 常用方法: add(Objectcontent); add(intindex,Objectcontent); booleancontains(Objectelement) get(intindex); isEmpty() remove(int index) remove(Objectelement) size() set(int index,E elemen 构造方法: LinkedList() 常用方法: add(Objectcontent); add(intindex,Objectcontent); contains(Objectelement) get(intindex); isEmpty(); remove(int index); remove(Objectelement) size() set(int index,E element) 5、HashSet的特点,常用方法,重点掌握如何遍历其中所有元素的方法(迭代器); HashSet是Set接口的实现。 此类不保证集合的元素顺序,也不保证元素顺序恒久不变,允许使用null元素。 构造方法: HashSet() 常用方法: add(Objectcontent);增加一个元素 contains(Objectelement)是否包含元素 isEmpty();是否为空 remove(Objectelement)删除元素 size()获取大小 List除了使用Iterator对象进行遍历,也可以使用循环进行遍历: ListtestList=newArrayList(); ……………………… for(inti=0;i Objectobj=testList.get(i); …………………. } 6、HashMap和Hashtable类的使用,如何遍历所有元素。 构造方法: Hashtable() 常用方法: clear();清空 contains(Objectelement)是否包含值element对应项的键值 containsKey(Objectkey)是否包含键值key对应的项 containsValue(Objectelement)是否包含值element对应的项 isEmpty();是否为空 get(Objectkey);获取键值key对应的值 remove(Objectkey)移出键值key对应的项 put(Objectkey,Objectvalue)加入一项, keySet();获取所有键值组成的集合 Hashtable的遍历: MaptestHashtable=newHashtable(); SetkeySet=testHashTable.keySet(); Iteratorit=keySet.iterator(); while(it.hasNext()){ Objectobj=testHashtable.get(it.next()); …………………. } 第7章字符串 1、String字符串的创建方法(new和不采用new),如何获取字符串长度; (1)String() Strings=newString();//创建空字符串 (2)String(Stringvalue) Strings=newString(“hello”); 或 Strings1=newString(“hello”); Strings=newString(s1); (3)String(charchars[]) chara[]={‘h’,’e’,’l’,’l’,’o’}; Strings=newString(a); (4)String(charchars[],intstartIndex,intnums) chara[]={‘s’,’a’,’y’,’h’,’e’,’l’,’l’,’o’,’t’,’o’}; Strings=newString(a,3,5); (5)String(byteascii[]) bytebuf[]=newbyte[50]; ……………… Strings=newString(buf); ⑥Stringa=“hello”;//位于常量池中的字符串对象 使用方法length()可以获得数组的长度 inta[]=newint[10]; a.length;//输出的结果是10 Strings=“hello"; intlen=s.length(); intlen=“hello".length(); 结果: len=5 2、String字符串比较: equals和==; Strings1,s2,s3,s4; s1=newString(“hello”); s2=newString(“hello”); s3=“hello”; s4=“hello”; s1==s2f s1.equals(s2)t s3==s4t s3.equals(s4)t s1==s3f s1.equals(s3)t 3、StringBuffer字符串的创建;i ntlength() 获取字符串的长度。 intcapacity() 获取字符串的容量。 Strings=newString(“hello”); StringBuffersb=newStringBuffer(s);//sb.length()值5sb.capacity()值21 4、String与StringBuffer的区别; 5、能够写出字符串处理的程序,掌握实验的两个程序; 第8章异常处理 1、try-catch-finally语句块的应用,执行顺序; 语法结构: try {可能产生异常的代码段;} catch(异常类1对象名1) {处理语句组1;} catch(异常类2对象名2) {处理语句组2;} …… [finally {最终处理语句;}] 说明: 1、将可能发生异常的程序代码放在try块中。 2、一个try块可以对应多个catch块,用于对多个异常类进行捕获。 3、finally块是可选项,如果有,无论异常是否发生,finally块中 的代码必须被执行。 2、throw语句和throws子句的作用、应用。 throw作用: 程序中显式的抛出一个异常对象。 语法格式: throw异常对象; throws语句放在方法参数表之后,方法体之前;用来声明一个方法中可能抛出的各类异常,各个异常之间用逗号隔开。 明确指出方法自己不捕获某异常,而传给上级,即让调用它的其他方法捕获该类异常。 方法名>(<参数行>)[throws<异常类1>,<异常类2>…] { 声明部分 语句部分 } 第9章输入输出流 1、所有字节流类都是抽象类InputStream、OutputStream的子类;所有字符流类都是抽象类Reader和Writer的子类; 2、掌握FileInputStream/FileOutputStream类的使用,常用方法; InputStream类(字节输入流)常用方法 intread()从输入流中读取1个字节 intread(byte[]b)试图从输入流中读取b.length字节的数据,返回实际读取的长度 intread(byte[]b,intoff,intlen)从输入流中读取len字节的数据,存放在数组b从off开始的位置,返回实际读取的长度 intavailable()获取还有多少字节可读 longskip(longn)读取位置向前移动n个字节,返回实际移动的字节数 voidclose()关闭输入流 voidmark(intreadlimite)在输入流中的当前位置上作标记,标记后若读取超过readlimite个字节后,重置流(reset)可能会失败。 voidreset()重新定位到最后调用mark方法时的位置 OutputStream类(字节输出流)常用方法 voidwrite(intb)将字节b写入到输出流 voidwrite(byteb[])将字节数组b内容写入到输出流 voidwrite(byteb[],intoff,intlen)将字节数组b内容从off位置的len个字节写入到输出流 voidflush()刷新输出流并强制写出所有缓冲的输出字节 voidclose()关闭输出流 3、掌握FileReader/FileWriter类的使用,常用方法; Reader类(字符输入流)的常用方法 intread()读取1个字符 intread(char[]ch)试图读取ch.length字符的数据,返回实际读取的字符数 intread(char[]b,intoff,intlen)读取len字符的数据,存放在数组b从off开始的位置,返回实际读取的字符数 longskip(longn)读取位置向前移动n个字符,返回实际移动的字符数 voidmark(intreadlimite)在字符流中的当前位置上作标记,标记后再读取超过readlimite个字符后,重置流(reset)可能会失败。 voidreset()重新定位到最后调用mark方法时的位置 voidclose()关闭字符流 Writer类(字符输出流)的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 必备 知识 要点