java中级课程总结.docx
《java中级课程总结.docx》由会员分享,可在线阅读,更多相关《java中级课程总结.docx(16页珍藏版)》请在冰豆网上搜索。
java中级课程总结
java中级课程总结
1、JAVA是面向对象的语言,具有继承,多态,封装三大特点。
2、常见的dos命令有:
cd
cd。
。
回到上一个目录
cd/回到根目录
dir查看当前目录列表
cls清屏
echo文件的内容>文件名创建文件名
del删除文件
md创建文件
rd删除文件
3、关键字和标示符
无论是关键字和标示符都是具有一定意义的字符序列
关键字的意义是sun公司或是Oracle赋予的,标识符的意义是开发者自己赋予的,标识符赋予的过程中要按照一定的命名规则进行
4、final最终可以用修饰变量、方法、类、方法参数
5、值传递和引用传递
//值传递和引用传递的区别
classTestSendMsg
{
publicstaticvoidmain(String[]args)
{
/*
inta=5;
intb=6;
System.out.println(a+","+b);
change(a,b);
System.out.println(a+","+b);
*/
intarr[]={5,6};
System.out.println(arr[0]+","+arr[1]);
change(arr);
System.out.println(arr[0]+","+arr[1]);
}
publicstaticvoidchange(int[]arr){
inttemp=arr[0];
arr[0]=arr[1];
arr[1]=temp;
}
/*
publicstaticvoidchange(inta,intb){
inttemp=a;
a=b;
b=temp;
}
*/
}
6、数据类型的转换
自动类型转换范围小的向范围大的自动转换【charshortbyte】-->int-->long-->float-->double
强制性转换
7、数组:
用来存放数据类型一致的数据有序的序列集合
8、JAVA中常用的类
1)Object是所有类的祖先,超类,基类。
常用的方法是:
equals()
toString()
hashCode()
getClass()
2)String
3)StringBuffer
4)StringBulider
在常量中的常量具有唯一性
9、Integer
特点:
封装类
被final修饰的类,叫最终类,不可被继承
重要的方法
equals(Objectobj)
parseInt(Strings):
把字符串类型转换成整形
valueOf(Strings):
把字符串转换成整形的封装类
valuof(inti):
把基本类型转换成封装类型
10、String
String被final修饰,不可改变
charAt(intindex):
从字符串中取出一个值,index下标从0开始
concat(Strings):
把指定字符串连接起来
getChar(intsrcBegin,insrcEnd,char[]dst,intdstBegin)
length()字符串的长度
replace(charoldchar,charnewchar)替换字符串
split(Stringregex):
按照指定的字符规则进行切分字符串为数组
subString(intbeginIndex):
从字符串中从指定的索引位置进行截取
toCharArray():
将字符串转换成新的字符数组
toLowercase()
trim()
StringBuffer线性安全效率低
StringBulider现行不安全效率高
append()
二、
1、抽象:
把现实的事物通过想象进行概念化
2、具体化:
把抽象的东西实例化
3、抽象类:
在JAVA中被abstract关键词修饰的类
抽象类中可以放:
普通方法
属性
抽象方法,抽象方法要求abstract,抽象方法的特点是没有方法体
抽象类的特点是:
抽象类必须被继承
abstract不可以和final连用
abstract在一定条件下可以和static连用
普通类中不可以放抽象方法
抽象类中可以放普通方法
抽象类中可以放抽象类
抽象类是不完整的类,抽象类不能实例化
抽象方法可以有构造方法
抽象类中可以用static?
不一定,要是修饰内部类或者是外部类
抽象类不能用final修饰
普通类和抽象类
classPerson{
Stringname;
publicvoidsetName(){}
}
VS
abstractclassAnaimal{
Stringname;
publicvoidsetName(){
}
abstaractvoideat();
}
4、匿名类和匿名对象
匿名对象只能使用一次。
不能多次被调用自身的方法
5、内部类:
普通内部类
静态内部类
局部内部类
匿名内部类
6、接口,可以把它理解抽象类的抽象,接口的重要性大于抽象类
接口使用interface修饰,不需要class标识,接口本身也是一个类是一个特殊的类,因为它编译之后也是.class文件。
接口的成员:
常量,这里的publicstaticfinal是可以省略的
抽象方法,这里的publicabstract也是可以省略的
接口中变量的意义:
接口中的属性的使用publicstaticfinal修饰,即使定义是不添加这三个修饰符,系统会自动添加上,因为接口规定只存在常量,并且是可以访问的。
普通类继承抽象类用extends
类要实现接口需要用关键字implements
7、在JAVA中类和类之间都是单继承关系。
JAVA中的接口的作用解决类JAVA中的单继承问题。
重点:
“子类对象指向父类引用”
8、抽象类和接口的不同点
抽象类单继承,接口支持多继承
抽象类中可以有构造方法接口中没有构造方法
抽象类中可有普通方法,接口中没有非抽象方法
抽象类的成员:
变量、常量、抽象方法、接口中成员只有静态常量抽象方法
抽象类是由关键字abstract修饰,接口是由interface修饰
抽象类中方法的修饰符石自己制定的,而接口中的方法或成员常量的修饰符石固定的写不写都一样
抽象类的扩展性差,接口的扩展性强
类实现接口是可以实现多个接口
【9、】内部类的优点:
内部类作为外部类的成员,可以访问外部类的成员或属性
用内部类定义外部的其他类中的不可访问的属性。
这样就在外部类中实现了比外部类的private还要小的访问权限
10、内部类
结构
classA{
classB{}
}
静态内部类
classA{
staticclassB{
}
}
【匿名内部类】
Aa=newA(){
publicvoidma(){
}
局部内部类
classA{
publicvoidma(){
classB{
}
newB();
}
}
11、
1、数组:
具有相同数据类型。
有序的数据序列。
集合是用来存放数据,组织数据,通过集合使用数据。
数组的弊端
1)数组中存放的数据类型必须一致
2)数组长度一旦定义就不可改变
2、Collection是所有【List、Set】集合的父接口
3、集合的概念是:
存放数据,按照一定组织顺序,按照一定的数据结构,任何数据类型的容器。
4、Collection:
JAVA.util
接口Collection
5、List的实现类是Arraylist
特点是
1)可以像数组一样使用
2)存放数组的大小是可以改变的
3)允许存放null值,并且允许放多个空值
4)不同步线程不安全
5)查找效率高,但删除效率低
6)存储的数组有序
如果出现多个线程对Arraylist,如何解决?
Listlist=Collections.synchronizedlist(newArrayList(..))
6、Arraylist常用的方法
addAll(Collectione):
向集合中添加另外一个集合
add(Objectobj)添加Object对象
add(intindex,Objecto):
在指定的索引位置上插入元素
clear清除所有的元素
contains(Objectobj):
判断集合中是否存在指定的元素
get(intindex)从集合中获取指定索引的元素
indexOf(Objectobj)返回指定元素在集合中第一次出现的索引
isEmpty():
判断集合中是否存在元素
remove(intindex):
移除集合中指定的索引元素,并返回要移除的元素
Set(intindex,Eelement)把集合中指定索引的元素给替换成指定的元素
size()集合中的个数
7、集合元素的遍历方法
直接打印
通过for循环
通过遍历器Iterator
通过foreach进行遍历
Stack
Stack类表示后进先出(LIFO)
的对象堆栈,实现list接口
Pubsh(Ee):
向栈集合中压入一个元素
Pop(Ee):
从栈集合中弹出一个元素
Peek():
查看当前集合顶部的元素,但不删除
8、Vector也实现了list接口
Vector类可以实现可增长的对象数组,像Arraylist一样,按索引取集合中的元素
Vector
Add(Ee)
Add(intindex,Eelement)
Addelement(Eobj)
Contains(Objecto)
containsAll(Collection
>c):
判断集合中是否在指定集合元素
elementAt(intindex)获取指定索引的元素
firstElement()获取集合中的第一个元素
Vector相对于Arraylist做了一个优化是支持多线程的操作
9、Set是Collection的子接口
Set常见的实现类集合类
Set的特点
1)set集合中不能存在重复的元素
2)set中最多包含一个null
3)set集合中的元素无序
4)set所有是无序因为它的底层存储结构是Hash结构
5)允许放空值但只能放一个
HashSet
TreeSet
特点
1)TreeSet是sortedset接口的实现类,使用元素的自然排序对元素进行排序
2)此实现不是同步县城不安全
常用的方法是
Comparator():
安排指定规则进行排序
10、Collections类和Collection对比
1)Collection是个接口,Collections是个类
2)Collection是set,list接口的父接口Collection是封装集合操作的一类
3)Collection中都是抽象方法Collections中都是静态方法
4)comparator比较器
12、linkedlist
List接口的链接列表实现。
实现所有可选的列表炒作,并且允许所有元素(包括null)
此实现不是同步的
方法
Addfirst(Ee):
在链表的前面添加
Addlast(Ee)在链表的后面添加
Getfirst()从链表中获取第一个元素
Getlast()从链表中获取最后一个元素
Collections常用的方法
Reverse(list
>list)反转指定列表中的元素
Shuffle(list
>list)使用默认的随机源对指定列表进行置换
Sort(listlist)根据元素的自然排序对指定列表按升序排列
13、HashSet类是set接口的实现类
特点是
1)无序
2)不允许有重复值
3)允许有null值但只有一个
4)实现不是同步就表示线程不安全
常用的方法
Add(Ee)向HashSet中添加一个元素
Clear清楚所有元素
Contains判断集合中是否存在指定的元素
14、map是一个接口它实现类是hashMap
包含了key-value对。
Map不能包含重复键key
Map集合特点是以双元素存在的而list和set都是单元素存在
Map的key不能重复值是可以重复的
hashMap特点
允许有null键null值不是同步线程不安全不允许有重复的键
常用的方法有
ContainsKey(Objectkey)判断集合中是否包含指定的键
ContainsValue(Objectvalue)判断集合中是否包含指定值
isEmpty判断是否为空
entryset
keyset()获取键值
put
泛型是jdk1.5引入的
作用和目的解决安全性问题
泛型的格式
数据类型类类型
举例ArrayListlist=newArraylist();
14、Hashtable和hashmap的区别
Hashtable特点
线程安全
Hashtable的键、值不能为null
不允许有重复键
Treemap特点
其键的自然顺序进行排序
不同步的,存在线程安全问题
类型转换不成功的问题
Java.lang.String.cannotbecastto
Java.lang.integer
15、异常
在JAVA中异常分为严重异常和一般异常
严重异常:
编译阶段出现的异常,一般都是有系统处理(JVM)对应的异常类是Error
一般异常:
编译通过,执行时出现的异常中断或者不正常现像,对应的异常类是Exception
JAVA异常处理机制
抛出异常try
捕获异常catch
处理异常finally
异常处理类
Throwable:
子类Error、Exception
Exception又分为运行时异常和非运行时异常
运行时异常类:
ArithmeticException:
数学计算异常类
ArrayIndexOutOfBoundsException:
数组下表越界异常
非运行异常
IOException
实例代码:
try{
inti=System.in.read();
}catch(IOExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
trycatchfinally的执行顺序
try{
inti=3;
程序语句;try是尝试对{}中的代码进行捕获,一旦有异常,就会把异常信息提交由catch中的代码进行捕获并且进行处理
}
catch(Exceptione){
//捕获异常对象并进行处理
}
finally{
}
注意:
Try-catch-finally的使用方式为标准使用
Try也可以和finally直接连用
Try可以和多个catch进行连用
Finally可以省略不用
Try–catch-finally可嵌套
如果try和多个catch并用的时候catch从参数对象的大小事从小到大的或是并行
Try-catch–finally和throws基本具有同样的效果
区别在于,前者是经过开发者进行处理异常,后者是对方法进行声明异常处理异常交给JVM
Throw的效果就是根据需要在任何位置根据开发者抛出指定的异常
17、方法块和代码块
publicvoidma(){}//方法块
{语句;}//实例代码块
static{语句;}//静态代码块
18、异常类及异常处理方法
IOException:
非运行时异常,编译的时候就会提醒可能会出现异常,要求进行捕获
示例代码:
try{
System.in.read();
}catch(IOExceptione){
}finally{
}
RuntimeException:
运行时异常的父类
子类ArithmeticException为运行时异常
示例代码:
Systme.out.println(5/0);//运行时异常,只有在运行时才会发现异常并进行处理。
IndexOutOfBoundsException为运行时异常(重要)
示例代码:
intarr[]={1,2,3,4};
System.out.println(arr[4]);
ClassCastException:
类转换异常,运行时异常(重要)
示例代码:
Objectobj1=newObject();
Integerinteter1=(Integer)obj1;
System.out.println(inteter1);
Objectobj2=newInteger
(2);
Integerinteter2=(Integer)obj2;
System.out.println(inteter2);
NullPointerException(重要)
自定义异常
classMyExceptionextendsException{
publicMyException(){
}
}
JDBC
JDBC:
全称是JAVAdatabaseconnectivity(JAVA数据库链接)
通过代码实现链接数据库并操作数据库
是一组专门负责链接并操作数据库的标准在整个JDBC中
实际上大量的提供的接口
JDBC的主要作用
建立与数据库的链接
向数据库发起查询请求
数据库相应的请求并处理
返回结果给客服端
DriverManager依据数据的不同管理JDBC驱动
Conection负责连接数据库并承担传送数据的任务
Statement有connnection产生、负责执行sql语句
Resultset负责保存statement执行后所有的查询结果
Statement接口的常用方法
用于产生单个结果集的语句,
用于执行inset,update或者delete语句以及sql、ddl语句
关闭statement对象
Publicvoidclose()throwssqlexception
Resultset包含符合SQL语句条件的所有行,并且他通过一套getxxx()方法提供了对这些行中数据的访问
预编译
Preparedstatement和statement之间的异同
两者的关系:
父子类关系
Preparedstatement继承statement
前者不能进行预编译后者可以增加灵活性
调用方法不一样,前者调用createstatement()该方法无参数返回Statement对象
后者调用preparestatemet(Stringsql)方法,返回的对象
Preparedstatement
Close数据库的链接
关闭的顺序先打开的后关闭
后打开的先关闭
事务:
具有一系列流程的工作。
做任何一个流程的时候,有一个环节出问题,其他都回滚。
常见的异常类:
IOExceptin(IO输入输出异常)NullPointerException(空指针异常)
RuntiameException(运行时异常):
ArithmeticException(数学异常)
IndexOutOfBoundsException(下标越界异常)
ClassCastException(类转换异常)
ClassNotFoundException(找不到类异常)
List,set,map是否继承了自Collection接口
List,set是继承了Collection接口,set不允许有重复值list允许有重复值set接口派生的类有Treeset,HashSet,linkedlHashSet,list派生的有Arraylist,Vector等,map是单独的接口不继承Collection。
是否可以继承String类?
不可以,String是final修饰不能被继承