Javase总结笔记终极版讲解.docx

上传人:b****6 文档编号:4728402 上传时间:2022-12-08 格式:DOCX 页数:10 大小:24.18KB
下载 相关 举报
Javase总结笔记终极版讲解.docx_第1页
第1页 / 共10页
Javase总结笔记终极版讲解.docx_第2页
第2页 / 共10页
Javase总结笔记终极版讲解.docx_第3页
第3页 / 共10页
Javase总结笔记终极版讲解.docx_第4页
第4页 / 共10页
Javase总结笔记终极版讲解.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

Javase总结笔记终极版讲解.docx

《Javase总结笔记终极版讲解.docx》由会员分享,可在线阅读,更多相关《Javase总结笔记终极版讲解.docx(10页珍藏版)》请在冰豆网上搜索。

Javase总结笔记终极版讲解.docx

Javase总结笔记终极版讲解

Javase复习笔记

Day01:

1.文档注释可以在:

类,常量,方法上声明,分别用来说明它们的功能及作用。

文档注释会被javadoc命令在读取当前源程序的时候解析并使其生产说明文档

2.intlength():

获取当前字符串中字符个数(长度),无论中英文每个字符都算一个长度。

3.intindexOf(Stringstr):

查找给定字符串在当前字符串中第一次出现的位置。

4.intindexOf(Stringstr,intfrom):

从当前字符串指定下标位置开始查找第一次出现给定字符串的位置。

5.intlastIndexOf(Stringstr):

查找当前字符串中最后一次出现给定字符串的位置。

6.StringsubString(intstart,intend):

获取指定字符串中部分内容,含头不含尾。

7.Stringtrim():

去除当前字符串中两边的空白。

8.charcharAt(intindex):

获取当前字符串中指定位置对应的字符

9.booleanstartsWith(Stringstr)booleanendsWith(Stringstr):

判断当前字符串是否以给定的字符串开头,另一个是判断是否是以给定的字符串结尾的。

10.StringtoUpperCase()、StringtoLowerCas():

将当前字符串中的英文全部转换为大写或全小写。

11.StaticStringvalueOf():

字符串提供若干的静态方法valueOf()作用就是就将其他类型转换为字符串。

比较常用的是将基本类型转换为字符串。

Day02:

1.booleanmatches(Stringregex):

验证当前字符串是否满足给定的正则表达式的格式要求,需要注意正则表达式是否使用了“^”,“$”都是全匹配验证。

2.String[]split(Stringregex):

将当前字符串中满足正则表达式的部分“切掉”,保留剩余的部分。

拆分字符串操作。

3.StringreplaceAll(Stringregx,Stringstr):

将当前字符串中满足正则表达式部分的内容替换为给定的字符串。

4.包装类:

由于java中8个基本类型,它们不是以对象的形式存在,没有面向对象的特征,所以不能参与面向对象的开发,为了解决这个问题,java针对它们定义了8个包装类。

基本类型的转换为包装类的静态方法valueOf,在valueOf在某些情况下可以减少内存开销的。

所以比new来说强一些。

5.MAX_VAUE,MIN_VALUE:

分别用来标志其对应的基本类型的取值范围。

6.parseXXX:

可以将给定的字符串转换为包装类对应的基本类型值。

Day03:

1.java.util.Date:

获取当前系统时间

2.内部为一个long值,该值是从UTC时间至当前时间之间的毫秒差。

3.SimpleDateFormat:

该类的作用是使用给定的字符串格式在Date与String之间进行相互转换。

4.Stringformat(Datedate):

按照创建SimpleDateFormat是指定的日期格式,将当前给定的date对象表示的时间转换为字符串。

5.Datedate=sdf.parse(str):

将给定的字符串解析为Date对象并返回。

6.Calendar的getIntance():

可以根据当前系统所在地区创建合适的实现类,通过格里高利法。

7.Calendar提供的getTime():

可以将其表示的时间以Date形式返回。

8.VoidsetTime()方法,可以使当前Calendar表示给定的date所表示的时间。

9.Calendar.YEAR:

年···

10.Voidadd(intfield,intvalue):

用来计算时间,对指定的时间分量加上给定的值,若value为负数,则减去指定的值。

11.Collection:

用来存放一组元素。

提供若干功能,比数组使用方便。

12.Booleanadd(Ee):

将当前集合添加给定的元素,若成功添加返回true。

13.Intsize():

获取当前集合的元素个数

14.BooleanisEmpty():

判断当前集合是否包含任何给定元素,当前集合没有元素时,返回true。

15.Voidclear():

清空集合元素,

16.Booleancontain():

判断当前集合是否包含给定元素,含则返回true,判断依据是看给定元素与集合中现有是否存在equals比较为true的,有则认为包含。

17.Booleanremove(Ee):

将给定的元素删除,成功删除返回true。

18.booleanaddAll(Collectionc):

将给定集合中的所有元素添加到当前集合中当执行完毕后,当前集合中元素发生了改变就返回true。

19.由于集合的具体实现类各不相同,Set集合大部分实现是无序的,所以不能像数组那样根据下标位置获取具体的某一个元素。

20.集合提供了统一的获取集合元素的方式:

遍历集合,而遍历是使用迭代器来完成的。

21.java.util.Iterator是迭代器的接口,定义了用于遍历集合相关方法。

不同的集合的都实现了一个可以遍历自身的迭代器实现类。

我们无需记住实现类的名字,只当是迭代器使用即可。

22.迭代器迭代元素需要遵循:

问,取,删。

这个步骤。

其中删除不是必须的。

23.若需要遍历集合,可以调用集合的方法:

Iteratorinterator():

该方法会返回可以遍历当前集合的迭代器。

24.BooleanhasNext():

询问迭代器,其遍历的集合是否还有元素没有遍历,有则返回true。

25.使用迭代器遍历集合的过程中,不能通过集合的方法改变元素,否则肯会抛出异常。

26.迭代器也支持泛型,泛型与该迭代器遍历的集合的泛型一致即可。

Day04:

1.JDK5.0以后推出了一个新的特性:

增强型for循环。

又叫做新循环,增强循环,foreach。

新循环不能代替传统循环重复工作的需求。

新循环是用来遍历集合和数组的。

2.新循环并不是JVM认可的新语法。

而是编译器认可的。

编译器在编译程序时若发现我们使用新循环来遍历集合。

所以新徐楠遍历集合的本质上就是迭代器遍历。

所以新循环遍历过程中不允许通过集合方法修改元素数量。

3.List集合:

有序集,可重复集。

List的特点是可以像数组一样,根据下标操作元素。

所以List提供了一个独有的方法。

4.常用实现类:

ArrayList:

内部由数组是实现,查询快。

LinkList:

内部由链表实现,增删快。

5.Eget(intindex):

获取指定下标对应的元素。

6.Eset(intindex,Ee):

将给定的元素设置到指定的位置上,返回值为原位置上的元素。

所以该操作是替换元素的操作。

7.Viodadd(intindex,Ee):

向指定位置插入给定元素,原位置及后续元素向后移动。

8.Eremove(intindex):

删除并返回给定位置的元素。

9.ListsubList(intstart,intend):

获取当前给定范围内的部分子集。

10.subList.clear():

清空子集,原集合部分内容也被删除。

11.Collection中提供了一个方法toArray允许我们将现有的集合转换为数组。

12.数组转换为集合,使用Arrays的静态方法(),需要注意,数组只能转换为List集合。

不能转换为Set。

原因在于:

Set大部分是无许实现,Set不允许存放重复元素,所以转换后可能丢失元素。

修改该集合元素内容,原数组内容也会发生改变。

对于数组转换为集合来说,添加新元素是不受支持的。

所有集合都支持一个构造方法,参数要求传入另一个集合。

这个构造方法的作用是:

创建当前集合的同时将给定的集合中的所有元素添加当前集合中。

Day05:

1.Collections:

集合的工具类,该类提供了若干静态方法,可以方便操作集合。

其中sort方法是用来排序List集的。

进行自然排序。

Sort会给定的List集合中的元素进行排序。

即:

从小到大的顺序。

Collections的sort方法排序时排序的注意事项,若当前元素若希望可以比较大小,需要实现Compareable接口。

Compareable支持反省,而反省的实际类型就是当前类。

意思是说,那个类实现Comparea接口,泛型就是哪个类。

2.Collections的sort方法若希望对集合进行排序,必须保证集合中的元素比较大小的。

所以要求元素必须实现Compa接口,并重写其中比较大小的方法,才可以进行排序。

3.字符串String实现了Compareable接口。

排序规则:

按照首字母的编码比较大小。

4.Collection的重载方sort方法要求我们传入两个参数:

待排序的集合和比较器。

5.Queue:

队列,保存一组元素,但是对于存取有所要求,必须遵循先进先出原则。

6.Booleanoffer(Ee):

向队列末尾追加一个元素。

7.Epoll():

从队首获取元素。

注意,获取后该元素就从队列中被移除!

出现操作。

8.Epeek():

同样可以获取队首元素,但是与poll不同的是并不会将该元素从队列中删除。

9.栈:

存储一组元素,存取必须遵循先进后出原则,通常来实现具有“后退”功能的地方。

10.Duque是Queue的子接口。

双端队列的特点是,队列的两端都可以进出元素。

若我们只调用一侧进出方法,就形成了栈的结构。

11.Voidpush(Ee):

将元素“压入”栈中,入栈操作,新入展的元素会在栈顶(栈中的第一个元素)

12.Epop():

出栈操作,获取栈顶元素,获取后该元素就从中被删除。

13.可以使用peek引用栈顶元素,而不做出栈操作。

14.Map:

Map看起来像一个多行两列的表格,每条记录分为两部分:

key,value其中在一个Map中key是不允许重复的。

(equals比较)常用的实现类:

java.util.HashMap(三列算法实现).

15.Vput(Kk,Vv):

将给定的key与value存入Map中,由于Map中的key不允许重复,所以会出现两种情况:

1:

存入的key在Map总还不存在,那么直接将这对key-value存入Map,返回值为null;2:

存入的key在Map中已经存在,那么会将对应的value替换原来这个value,并将被替换的value值返回。

16.Vget(Kk);根据给定的key值去获取对应的value,若当前Map中不含有给定的key,则返回null。

17.Vremove(Kk):

将给定的key对应的这一对内容从Map中删除,并将对应的value值返回。

18.booleancontainsKey(Kk):

查看当前Map包中是否含有给定的key,包含判断的依据key的equals比较的结果。

19.遍历Map的方式:

A.遍历所有的key;B.遍历每一组的键值对;C.遍历所有的value值(不常用).

LinkHashMap:

内部使用一个LinkList维护顺序,可以做到遍历的时候与put书序一致。

若不需要顺序通常就不使用该类。

遍历所有的key:

Setkeyset():

该方法会将所有的key存入一个Set集合后返回,所以遍历该集合就相当于遍历了所有的key了。

遍历每一组键值对SetentrySet():

Entry是Map的内部类,每一个实力表示一组键值对。

其中包含两个属性,key,value将每一组键值对(entry实例存入一个Set集合后将其返回)。

Collectionvalues():

将当前Map中所有的value值存入一个集合后返回。

JavaSE2:

Day01:

1.java.io.File:

该类用于描述文件系统中的一个文件或目录。

File可以访问文件或目录的属性信息。

File可以操作文件或目录。

File可以查看一个目录有哪些子项

2.描述目录时应当注意两点:

A.尽量不用绝对路径,因为不同的操作系统有差异。

B.目录的层次分隔符不要直接写“/”或“/”,因为不同的系统也有差异,所以使用File的常量:

File.separaror就可以了。

在eclipse中开发时”.”这个当前目录的位置是在当前项目的根目录。

3.Filefile=file.getName():

获取文件名

File.length():

获取文件大小。

File.exists():

判断当前文件或目录是否在硬盘中已经存在了。

Longtime=file.lastModified():

获取最后修改时间,1970年元旦到这一刻的毫秒差。

isHidden=file.isHidden():

是否是隐藏文件。

file.canRead():

是否可读。

file.canWriter():

是否可写。

file.canExcute():

是偶可运行。

4.使用File创建一个文件。

当前项目跟目录下创建文件test.txt。

若直接书写文件名,默认就认为是在当前目录下所有“./”是可以忽略不谢的。

Filefile=newFile(“test.txt”);

if(!

file.exists()){

file.createNewFile();

}

File.delete():

删除当前目录中的test.txt文件。

dir.mkdir():

在当前根目录下创建目录

Dir.mkdirs():

创建当前目录的同时会将所有不存在的父目录一同创建出来。

5.删除多里目录,当删除一个子项的怒路时,直接使用delete方法是删除不成功的,需要先将该目录的所有子项删除以后,该目录才可以成功删除。

删除给定的File表示的文件或目录,先将目录中的所以子项都删除。

6.File[]listFiles():

改方法会获取当前目录下的所有子项,由于一个目录下不包含的非法还是文件或目录,那么都可以有一个File对象表示,所以获取一个目录里所有子项就等于获取了若干File对象,没一个表示其中一个子项。

7.sub.isFile():

判断当前File表示的是否为一个文件。

sub.isDirectory():

判断当前File表示的是否为一个目录。

8.FileFiles:

文件过滤器。

File:

有一个重载的listFiles方法,允许我们传入一个文件过滤器,并将满足过滤器要求的子项返回。

不满足则忽略。

过滤器的的过滤条件:

当给定的file对象满足要求,返回true即可。

file.getName().startsWith(“.”)

9.java.io.RandomAccessFile该类用于读写文件数据。

创建该类有两种常用模式:

A.只读,对文件仅进行读取操作(“r”)read

B.读写,对文件数据读写(“rw”)read,write

常用构造方法:

RandomAcessFile(filefile,Stringmode)

RandomAcessFile(Stringpath,Stringmode)

Voidwrite(inti):

该方法向文件中写出1个字节,即8位的二进制写的是该int的值二进制的“第八位”。

Intread():

读取字节

Day02:

1.voidwrite(byte[]dat):

将给定的字节数组中的所有字节一次性写出。

2.Byte[]getBytes():

将字符串按照当前系统默认的字符集转换为一组字节。

3.Byte[]getBytes(stringcharsetName):

String提供了一个重载的getByte()方法,允许根据给定的字符集将当前字符串转换为对应的字节。

4.Intread(byte[]data):

一次性尝试读取给定的字节数组data的长度的字节量,并将这些字节存入该数组中,返回值为实际读取到的字节量,若返回为-1,表示读取到了文件末尾(EOFendoffile)

5.String提供了一个构造方法,允许我们将给定的字节数组的字节转换为对应的字符串:

String(byte[]data):

按照当前系统默认字符集将字节数组中所有字节转换为字符串。

6.String(byte[]data,intstart,intlen):

将当前字节数组中从start处开始,连续取len个,然后将他们按照当前系统默认的字符集转换为对应的字符串。

7.RandomAccessFile总是基于指针当前位置进行读或写操作的。

并且每当读或写完当前字节后,指针会自动向后移动。

8.LonggetFilePointer():

获取当前RandomAccessFile的指针位置(指向文件的第几个字节)刚创建出来的RAF默认指向文件第一个字节。

下标从0开始。

9.VoidwriteInt(inti):

连续写出4个字节,将给定的int值完整写出。

写出其他基本类型数据的方法也有。

10.读取上面写入的long值,我们需啊哟先将指针移到到long值的第一个出,然后连接读取8个字节将其读取回来。

Voidseek(longpos):

该方法可以将指针移动到指定位置。

11.LongreadLong():

从指针当前位置处开始,连续读取8个字节并转换为long值返回。

12.java.io.FileOutputStream:

文件的字节输出流。

用于向文件中写出字节其中一个低级流。

默认创建的FOS是覆盖写操作。

该覆盖操作是写内容前将原文件中所有数据清楚,然后重写写入新的内容。

还支持一个重载的构造方法,第二个参数传入一个boolean值,若该值为true,则是追加写操作,即:

通过刘写出的数据会在当前文件的末尾写入。

而不是将原来的数据都清除。

流使用完毕后也要关闭,释放资源!

13.java.io.FileInputStream:

低级流,用于读取文件数据的流。

14.缓冲流写出数据的注意事项:

voidflush()该方法会强制将缓冲区中的数据一次性写出,不管缓冲区数据是否已经装满。

频繁调用flush方法会提高写出次数从而降低写出效率,但是会保证写出的及时性。

当关闭缓冲流的时候,他会首先多用flush将剩余在缓冲流的数据写出,然后在在将它处理的流关闭后,才能将自己关闭。

Day01:

1.java.io.OjectOutputStream:

该高级流的作用是将给定的java对象转为一组字节,然后通过其处理的流写出。

将一个对象转换为一组字节的过程称为:

对象的序列化。

该对象转换为一组字节然后写入文件这里需要两个刘组合来实现:

ObjectOutputStream目的:

可以将一个对象转换为一组字节。

FileOutputStream目的:

可以将一组字节写入文件。

VoidwriteObject(Objecto):

该方法将给定的对象o转换为一组字节然后在通过其他处理的流写出。

2.若当前类的对象希望被ObjectOutputStream进行序列化,当前类必须实现java.io.Serializable接口。

否则在阻力恶化过程中会抛出异常。

该接口没有任何抽象方法需要重写,这种结构的目的是给子类打一个标签,表示认可这件事。

而不是用来约束子类应具有哪些行为。

除了当前类之外,该类的属性若也是自定义类型的,那么除了该类外也必须实现Serializable接口才可以。

当我们的类实现了Serializable接口后,就应当定义下面的常量,该常量是版本号。

最好自行维护。

该版本号直接影响反序列化的结果。

当我们要反序列化一个对象时,OIS首先会检查要反序列化的那一组字节表示的对象的版本号是否与当前类的版本号一致,不一致则直接抛出异常,告知版本不匹配,无法反序列化。

若版本号一致,则会使用兼容默认,即:

原来对象中有的属性,现在类还有的,则还原它的值若原来对象中有的属性,现在没有了,则忽略。

若原来对象中没有的属性,现在有的,则使用默认值。

若不自行维护版本号,那么OOS在进行序列化时,会根据当前类的结构生成一个版本号。

这样做不好的地方在于,我们的类结构发生改变后,版本号也会改变,由于不可控,所以不能启用兼容模式。

当一个属性被transient关键字修饰后,该属性在序列化的时候将被忽略。

忽略不必要的属性是为了对象在序列化为字节的时候瘦身。

3.转换字符集:

osw.txt文件中的字符是以utf-8编码保存的。

希望转换为GBK编码

思路:

以UTF-8编码读取该文件每一个字符,再以GBK编码写入另一个文件即可。

代码如下:

FileInputStreamfis=newFileInputStream("osw.txt");

InputStreamReaderisr=newInputStreamReader(fis,"UTF-8");

FileOutputStreamfos=newFileOutputStream("osw_gbk.txt");

OutputStreamWriterosw=newOutputStreamWriter(fos,"GBK");

intlen=-1;

char[]buf=newchar[1024*5];

while((len=isr.read(buf))!

=-1){

osw.write(buf,0,len);

}

System.out.println("转码完毕!

");

osw.close();

isr.close();

4.缓冲字符输出流:

BufferedWriter

由于内部维护了一个字符数组作为缓冲区,缩写写出字符串的效率较高,而且还有一个特点就是可以以行为单位写出字符串。

printWriter:

具有自动刷新行功能缓冲字符流,由于该流的缓冲功能是使用BufferedWriter实现的并提供了更多功能,所以比较常用。

创建PrintWriter时,其总是先创建BufferedWriter作为缓冲功能。

5.java.io.BufferedReader缓冲字符输入流,特点:

需要处理一个字符流,并且可以以行为单位读取字符串。

6.StringreadLine():

BufferedReader提供了该方法可以以行为单位读取字符串。

该方法会顺序读取若干字符,指导遇到换行符为止,然后将换行符之前所有字符串后返回。

该字符串不包含换行符!

若返回为null,表示读取文件末尾。

7.异常补货机制中的try-catch,try中包含的是肯出现代码片段。

Catch用来补货try中出现的错误,并处理。

8.Catch可以写很多个,针对不同的异常,若有不同的处理手段,可以分别捕获。

但是应当有一个号的习惯,就是最后一个捕获的是Exception,这样至少可以保证程序不会因为一个未捕获的异常而导致终端。

当catch的异常存在父子类继承关系时,要保证子类异常上,父类异常在下。

9.Finally块:

finally块必须定义在异常捕获机制的最后。

可以定义在try之后,也可以定义在最后一个tcatch之后,finally可以保证其内部的代码无论try的语句是否出现异常都会执行。

通常向是否资源这类代码就应当放在finally中,比如说关闭流。

Day04:

1.线程:

并发进行可以“同时”完成多个任务。

线程有两种创建模式

模式1:

定义一个类并继承Thread,然后重写run方法,爱内部辫子额该程序要执行的任务。

注意:

启动线程不要直接调用run

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

当前位置:首页 > 外语学习 > 英语考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1