Java7学习记录.docx
- 文档编号:24173814
- 上传时间:2023-05-25
- 格式:DOCX
- 页数:48
- 大小:40.63KB
Java7学习记录.docx
《Java7学习记录.docx》由会员分享,可在线阅读,更多相关《Java7学习记录.docx(48页珍藏版)》请在冰豆网上搜索。
Java7学习记录
Java7学习记录
String类的重要方法:
1)charcharAt():
返回位于指定索引处的字符;
2)Stringconcat():
追加一个字符串到另一个字符串的末尾(也可以使用”+”);
3)booleanequals():
确定两个字符的相等性,区别大小写;
4)booleanequalsIgnoreCase():
确定两个字符的相等性,忽略大小写;
5)intlength():
返回字符串中的字符个数;
6)Stringreplace():
用新字符代替给定字符;
7)Stringsubstring():
返回一个字符串的一部分;
8)StringtoLowerCase():
返回转换为小写字符的字符串;
9)StringtoString():
返回字符串的值;
10)StringtoUpperCase():
返回转换为大写字符的字符串;
11)Stringtrim():
删除字符串尾部的空白
StringBuffer和StringBuilder类的重要方法:
1)publicsynchronizedStringBuilderappend(Strings)
无论是否将返回值赋予变量,这一方法都将更新调用该方法的对象的值,该方法带有很多不同的参数,包括boolean、char、double、float、int、long及其他类型
2)publicStringBuilderdelete(intstart,intend)
该方法返回一个StringBuilder对象,并更新调用该方法的StringBuilder对象的值。
在这种情况下,都会从原始对象中删除一个从start到end(从0开始)的子字符串
3)publicStringBuilderinsert(intoffset,Strings)
该方法返回一个StringBuilder对象,并更新调用该方法的StringBuilder对象的值。
从offset开始插入第二个参数(可以是boolean、char、double、float、int、long等)
4)publicsynchronizedStringBufferreverse()
该方法返回StringBuffer对象,并更新调用该方法的StringBuffer对象的值,颠倒StringBuffer对象中的字符
5)publicStringtoString()
以String形式返回调用该方法的StringBuffer对象的值
工厂方法:
产生同一类的对象的类静态方法。
多态性:
方法的重写、重载和动态连接。
动态连接在运行时从子类到逐层的超类查找所调用的方法,调用第一个查找到的方法
static:
静态声明,可以声明一个方法、属性,也可以声明一个块,但是无论是方法还是块都只能调用其他静态属性或方法
static{
System.out.println(“Staticblockinitialized.”);
b=a*4;//a、b均为静态属性
}
final:
修饰变量,相当于C/C++的const常量声明:
finalintFILE_NEW=1;
修饰类,阻止他人继承:
finalclassEmployee{};
修饰方法,子类不能重写这个方法(final类中的方法都自动成为final方法)
内部类:
声明在类或者方法内部的类,只存活在类或者方法的内部,可以访问类内部的所有属性和方法,包括私有属性和方法
匿名内部类:
没有类名的内部类,只能使用超类的构造器和析构器,所以匿名内部类都是子类,超类可以是类或者是接口,最常用于组件绑定事件监听器时构造一次性的事件监听器
Vehiclev=newVehicle(){//Vehicle可以是类或者是接口
publicvoiddrive(){
System.out.println(“Drivingacar!
”);
}
}
Class类:
运行时记录类对象运行时信息类,虚拟机为每个类型管理一个Class对象,因此同一类型的对象生成的Class对象是同一个
获取Class对象的方法:
1)利用Object中的getClass()方法:
Classc=str.getClass();
2)使用Class类的静态方法forName(),参数只能为完整类名和接口名:
Classc=Class.forName(“java.lang.String”);
3)运用.class方式,基本数据类的封装类还可以用.TYPE来获取相应的基本数据类型的Class实例:
Classc=String.class;Classc=Integer.TYPE;
使用newInstance()方法创建一个类的实例:
Objectm=Class.forName(s).newInstance();
反射:
Java特有的机制,允许运行中的Java程序对自身进行检查,或者说“自审”,并能直接操作程序的内部属性。
JavaBean运用反射对软件组件进行可视化操作。
使用反射的3个步骤:
1)获得想操作的类的Class对象。
2)调用诸如getDeclaredMethods方法,以取得该类中定义的所有方法的列表。
3)使用reflectionAPI来操作这些信息。
使用反射来执行类中的方法,或者改变变量的值,即使是私有类型也能进行操作
packagetest.reflection;
importjava.lang.reflect.Field;
importjava.lang.reflect.Method;
publicclassPerson{
privateStringname;//私有属性
publicStringaddress;
publicPerson(Stringname){
this.name=name;
}
privatevoidsetAddress(Stringaddress){//私有方法
this.address=address;
}
publicstaticvoidmain(String[]args){
try{
Personperson=newPerson("zhangsan");
Class
//获得私有方法
Methodmethod=cls.getDeclaredMethod("setAddress",newClass[]{String.class});
//设置私有方法可以被访问
method.setAccessible(true);
//调用私有方法
method.invoke(person,newObject[]{"BJUT"});
System.out.println(person.address);//输出BJUT
//访问私有变量
Fieldfield=cls.getDeclaredField("name");
field.setAccessible(true);
System.out.println(field.get(person));//输出zhangsan
Field.setString(person,”pengyuqi”);
System.out.println(field.get(person));//输出pengyuqi
Objectarr=Array.newInstance(cls,10);//创建长度为10的Person数组
Array.set(arr,5,newPerson(“sakura”));//给索引为5的元素赋值
Personp=(Person)Array.get(arr,5);获取元素5
}catch(Exceptionex){
ex.printStackTrace();
}
}
}
File类:
构造函数:
1)File(Stringpath):
path为文件的路径名,如果只有文件名则使用当前路径
2)File(Strinpath,Stringname):
path为文件目录的路径名可以为null,name为文件名
3)File(Filedir,Stringname):
使用目录文件对象作为文件目录
4)File(URLurl):
打开url指向的文件
常量:
1)路径分隔符:
publicstaticfinalStringpathSeparator,相当于“;”
2)分隔符:
publicstaticfinalStringseparator,相当于“/”或者“\”,根据系统决定
常用方法
获取文件属性的方法
方法名
返回值类型
方法描述
canExecute()
boolean
判断应用是否可以执行该文件对象
canRead()
boolean
判断该文件对象是否可读
canWrite()
boolean
判断该文件对象是否可写
exits()
boolean
判断该文件对象或文件目录对象是否存在
getAbsoluteFile()
File
返回该文件或文件目录对象的绝对形式
getAbsolutePath()
String
返回该文件或文件目录对象的绝对路径
getName()
String
返回该文件或文件目录对象的名字
getParent()
String
返回该文件或文件目录对象的父路径
getParentFile()
File
返回该文件或文件目录对象的父文件对象
getPath()
String
获取路径
isAbsolute()
boolean
判断该路径名是否是绝对的
isDirectory()
boolean
判断该文件是否是目录
isFile()
boolean
判断该对象是否是文件
lastModified()
long
返回该对象最后修改的时间
length()
long
返回该对象的长度
常见操作文件的的方法
方法名
返回值类型
方法描述
createNewFile()
staticFile
当且仅当文件对象不存在是,建立一个空的文件
createTempFile(String,prefix,Stringsuffix)
staticFile
建立临时文件
delete()
boolean
删除文件或文件夹,文件夹需为空,否则需要递归删除
list()
String[]
返回该目录对象中的所有文件名,包括目录
list(FilenameFilterfilter)
String[]
返回该目录对象中的所有符合要求的文件名,包括目录
listFiles()
File[]
以文件形式返回该目录对象中的所有文件名,包括目录
mkdir()
boolean
该方法的作用是创建一个由这个File对象给定的子目录,如果子目录创建成功则返回true,否则返回false
mkdirs()
boolean
该方法的作用是创建文件夹,如果当前路径中包含的父目录不存在,也会自动根据需要创建
renameTo(Filedest)
boolean
重命名
toPath()
Path
将该文件对象转换成java.nio.file.Path对象
setReadOnly()
boolean
设置当前文件或文件夹为只读
Java7新文件系统
1)FileSystem:
提供了许多方法来获取当前文件系统的相关信息
2)Path:
处理路径(文件和目录)
3)Files:
支持各种文件操作,包括移动文件、复制文件、删除文件、获得详细的文件属性等
FileSystem类中常用的方法
方法名
返回值类型
方法说明
close()
void
关闭这个文件系统
getFileStores()
Iterable
返回该文件系统下的文件存储器
getPath(Stringfirst,String…more)
Path
将参数连接成一个路径字符串,转换成Path类型
isOpen()
boolean
判断该文件系统是否是打开的
isReadOnly()
boolean
判断该文件系统是否是只读的
Paths类中常用的方法
方法名
返回值类型
方法说明
get(Stringfirst,String…more)
Path
将参数连接成一个路径字符串,转换成Path类型
get(Urluri)
Path
将给的Url对象转换成Path对象
Path类中常用的方法
方法名
返回值类型
方法说明
compareTo(Pathother)
int
比较两个路径
endsWith(Pathother)
boolean
判断该路径是否是以给定的路径结尾的
endsWith(Stringother)
boolean
判断该路径是否是以给定的字符串构成的路径结尾的
equals(Objectother)
boolean
判断该路径是否与给定的路径相等
getFileName()
Path
获取该路径所表示的文件或目录的名字
getFileSystem()
FileSystem
获取创建该对象的文件系统
getName(intindex)
Path
获取该路径上指定位置的名字元素
getNameCount()
int
获取该路径上的名字元素的个数
getParent()
Path
返回该对象的代表父目录的路径
isAbsolute()
boolean
判断该对象是否是绝对的
iterator()
Iterator
返回该对象的名字元素的迭代容器
relativize(Pathother)
Path
构建该对象和给定对象之间的相对路径对象
resolve(Pathother)
Path
合并两个Path对象
resolveSibling(Pahtother)
Path
将给定的对象与该对象的父对象进行合并
startsWith(Pathother)
boolean
判断该对象是否以给定对象开始
subpath(intbeginIndex,intendIndex)
Path
获取该对象的名字元素序列的相对路径
toAbsolutePath()
Path
返回该对象的绝对路径
toFile()
File
将该对象转换成文件对象
toRealPath(LinkOption…options)
Path
返回存在文件的真实路径
toString()
String
将该文件转换成字符串的形式
Files类中的常用方法
方法名
返回值类型
方法描述
copy(InputStreamin,Pathtarget,CopyOption…options)
staticlong
将输入流中的所有字节复制到一个文件中
createDirectories(Pathdir,FileAttribute
>…attrs)
staticPath
创建目录,包括其中不存在的目录
createDirectory(Pathdir,FileAttribute
>…attrs)
staticPath
创建新目录
createFile(Pathpath,FileAttribute
>…attrs)
staticPath
创建新的文件
createTempDirectory(Pathdir,Stringprefix,FileAttribute
>…attrs)
staticPath
在指定目录下以指定的前缀创建临时目录
createTempFile(Pahtdir,Stringprefix,Stringsuffix,FileAttribute
>…attrs)
staticPath
在指定目录下以指定的前缀和后缀创建临时文件
delete(Pathpath)
staticvoid
删除文件
deleteIfExists(Pathpath)
staticboolean
如果文件存在则删除文件
exists(Pathpath,LinkOption…options)
staticboolean
判断文件是否存在
getLastModifiedTime(Pathpath,LinkOption…options)
staticFileTime
获取文件最后修改的时间
newBufferedReader(Pathpath,Charsetcs)
staticBufferedReader
返回文件的字符缓冲读入流
newBufferedWriter(Pathpath,Charsetcs,OpenOption…options)
staticBufferedWriter
返回文件的字符缓冲写入流
write(Pathpath,byte[]bytes,OpenOption…options)
staticPath
将字节写入文件
isSampleFile(Pathpath1,Pathpath2)
staticPath
判断两个路径对象是否代表同一个文件
字节流类InputStream和OutputStream
InputStream用来表示从不同数据源产生输入的类,包括:
1)字节数据
2)String对象
3)文件
4)“管道”,其工作方式与实际管道相似,即从一端输入,从另一端输出
5)一个由其他种类的流组成的序列,以便可以将它们收集、合并到某一单一的流内
6)音频数据
InputStream类的子类
AudioInputStream
从指定的音频格式和长度中读取数据
ByteArrayInputStream
将内部的缓冲区作为InputStream使用
FileInputStream
从文件中读取数据
FilterInputStream
FilterInputStream包含其他一些输入流,它将这些流用作其基本数据源,可以直接传输数据或提供一些额外的功能。
其构造函数中的参数为某一类型的InputStream
ObjectInputStream
ObjectInputStream(对象输入流)可读取使用对象输出流写入的原始数据和类型,与文件输入/输出流一起可以实现对象的持久性存储
PipedInputStream
PipedInputStream类与PipedOutputStream类用于在应用程序中创建管道通信。
一个PipedInputStream实例对象必须和一个PipedOutputStream实例对象进行连接,从而产生一个通信管道。
PipedOutputStream可以向管道中写入数据,PipedInputStream可以读取PipedOutputStream向管道中写入的数据。
这两个类主要用来完成线程之间的通信。
一个线程的PipedInputStream对象能够从另一个线程的PipedOutputStream对象中读取数据
SequenceInputStream
将两个或多个InputStream对象转换成单一的InputStream对象
FilterInputStream类的子类
BufferedInputStream
可以防止每次读取时都要进行实际写操作
CheckedInputStream
与CheckedOutputStream一起使用成为过滤流,用于维护数据校验和。
校验和是用于维护经过空间(如通信)或者时间(如计算机存储)传送的数据的完整性
CipherInputStream
构造函数中需要InputStream、Cipher,表示对读入的数据同时进行加密
DataInputStream
允许读取不同的基本类型数据以及String对象
DeflaterInputStream
以deflate压缩格式来压缩数据流
DigestInputStream
对输入数据的摘要加密
InflaterInputStream
表示一个过滤器,对以deflate压缩格式压缩的数据进行过滤
LineNumberInputStream
根据输入流中的行数,可调用getLineNumber()和setLineNumber()读取和设置行号
PushbackInputStream
可以对已读的字节进行“退回(pushback)”或者“取消读取(unread)”操作
InputStream通用方法
1)publicintavailable()
该方法的作用是返回当前流对象中还没有被读取的字节数量,即获得流中数据的长度
2)publcvoidclose()
该方法的作用是关闭当前流对象,并释放尕流对象占用的资源。
3)publicvoidmark(intreadlimit)
该方法的作用是为流对象当前位置设置标志,使得以后可以从该位置继续读取。
变量readlinit指设置该标志以后可以读取的最大数据长度。
4)publicBooleanmarkSupported()
该方法的作用是判断流是否支持标记。
5)publicabstractinread()
该方法的作用是读取当前流对象中的第一个字节。
当该字节被读取出来以后,该字节将被从流对象中删除。
原来流对象中的第二个字节将变成流中的第一个字节,使用流对象的available方法获得的数值也将减1。
如果需要读取流中的所有数据,只要使用一个循环依次读取每个数据即可。
当读取到流的末尾是,该方法返回-1
6)publicintread(byte[]b)
该方法的作用是读取当前流对象中的数据,并将读取到的数据依次存储到数据b,而实际读取的字节数量则作为方法的返回值返回
7)publicintread(byte[]b,intoff,intlen)
该方法的作用是从输入流中读取len个字节并写入b中,并返回写的字节数
8)publicvoidreset()
该方法的作用是将此流重新定位到mark()方法设置的位置。
9)publiclongskip(longn)
该方法的作用是跳过当前流对象中的n个字节,而实际跳过的字节数量则以返回值的方式返回。
OutputStream用来把产生的数据源输出到不同的数据源中,包括:
1)字节数组(字符串)
2)文件或管道
OutputStream类的子类
ByteArrayOutputStream
在内存中创建缓冲区,所有送往Stream的数据都要放置在此缓冲区
FileOutputStream
用于将信息写至文件中
FilterOutputStream
此类事过滤输出流的所有类的超类。
这些流位于已存在的输出流(基础输出流)之上,它们将已存在的输出流作为其基本数据接收器,但可能直接传输数据或提供一些额外的功能
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java7 学习 记录