第六周Java学习总结
一.教材知识点总结
第七章
7.1内部类: 成员内部类、静态嵌套类、方法内部类、匿名内部类 。
(1)、内部类仍然是一个独立的类,在编译之后内部类会被编译成独立的.class文件,但是前面冠以外部类的类名和$符号 。
(2)、内部类不能用普通的方式访问。内部类是外部类的一个成员,因此内部类可以自由地访问外部类的成员变量,无论是否是private的 。
(3)、内部类声明成静态的,就不能随便的访问外部类的成员变量了,此时内部类只能访问外部类的静态成员变量 。
7.2匿名类:匿名类是不能有名字的类,它们不能被引用,只能在创建时用New语句来声明它们。匿名类的声明是在编译时进行的,实例化在运行时进行,这意味着for循环中的一个new语句会创建相同匿名类的几个实例,而不是创建几个不同匿名类的一个实例。实现他的方式有继承一个类,重写其方法或者实现一个接口,可以是多个。
7.3异常类:
7.4断言:是所谓的assertion,主要使用在代码开发和测试时期,用于对某些关键数据的判断,如果这个关键数据不是你程序所预期的数据,程序就提出警告或退出。
语法1:assert expression; //expression代表一个布尔类型的表达式,如果为真,就继续正常运行,如果为假,程序退出
语法2:assert expression1 : expression2; //expression1是一个布尔表达式,expression2是一个基本类型或者Object类型,如果expression1为真,则程序忽略expression2继续运行;如果expression1为假,则运行expression2,然后退出程序。
第十章
10.1I/O框架介绍
file类部分常用方法为
public String getName()返回由此抽象路径名表示的文件或目录的名称。
public String getParent()、返回此抽象路径名的父路径名的路径名字符串,如果此路径名没有指定父目录,则返回 null。
public File getParentFile()返回此抽象路径名的父路径名的抽象路径名,如果此路径名没有指定父目录,则返回 null。
public String getPath()将此抽象路径名转换为一个路径名字符串。
public boolean isAbsolute()测试此抽象路径名是否为绝对路径名。
public String getAbsolutePath()返回抽象路径名的绝对路径名字符串。
public boolean canRead()测试应用程序是否可以读取此抽象路径名表示的文件。
public boolean canWrite()测试应用程序是否可以修改此抽象路径名表示的文件。
public boolean exists()测试此抽象路径名表示的文件或目录是否存在。
public boolean isDirectory()测试此抽象路径名表示的文件是否是一个目录。
public boolean isFile()测试此抽象路径名表示的文件是否是一个标准文件。
public long lastModified()返回此抽象路径名表示的文件最后一次被修改的时间。
public long length()返回由此抽象路径名表示的文件的长度。
public boolean createNewFile() throws IOException当且仅当不存在具有此抽象路径名指定的名称的文件时,原子地创建由此抽象路径名指定的一个新的空文件。
10.2 10.3 10.4文件字节和文件字符输入输出流
10.5缓冲流:
计算机访问外部设备或文件,要比直接访问内存慢的多。如果每次调用read()方法或者writer()方法访问外部的设备或文件,CPU就要花上最多的时间是在等外部设备响应,而不是数据处理。为此,所以会开辟一个内存缓冲区的内存区域,程序每次调用read()方法或writer()方法都是读写在这个缓冲区中。当这个缓冲区被装满后,系统才将这个缓冲区的内容一次集中写到外部设备或读取进来给CPU。使用缓冲区可以有效的提高CPU的使用率,能提高整个计算机系统的效率。在字符流操作中,所有的字符都是在内存中形成的,在字符流输出前都将保存在内存中的缓冲区内。
10.6随机流:
随机访问的文件对象看作存储在文件系统中的一个大型 byte 数组,然后通过指向该 byte 数组的光标或索引(即:文件指针 FilePointer)在该数组任意位置读取或写入任意数据
10.7数组流:
内存数组流,就是和内存中的数组相关的一个流,可以将字节数组写到输出流中,也可以将字节数组从输入流中读出来,不涉及磁盘。内存数组输出流可以看成一个可自动扩容的 byte 数组,可以往里写字节。
10.8数据流:
获取数据的方式有多种,比如:程序中直接给出、键盘输入、从数据文件中读取、从数据库中读取、通过网络读取等。 为了更有效地进行数据的输入/输出操作,Java将各种数据源的数据,抽象为“数据流”,及stream。
10.9对象流:
对象的输入输出流的作用: 用于写入对象 的信息和读取对象的信息。 使得对象持久化。
(1)ObjectInputStream : 对象输入流
(2)ObjectOutPutStream :对象输出流
二.部分例题运行截图
Example10_14
Example10_17
Example10_21
Example10_22
三. 学习中遇到的困难和解决方法
1.在src文件夹里创建了文本文件导致的java运行不成功,找不到文本文件。解决方法:在编译文件夹bin里重新创建文本文件才能正常运行编译文件
四.代码托管
五.学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 68/70 | 0/2 | 20/20 | Linux系统基本入门 |
第二周 | 267/400 | 1/2 | 15/20 | 基本语法的使用 |
第三周 | 760/800 | 1/2 | 12/15 | 包的使用 |
第四周 | 174/1000 | 1/2 | 15/25 | 继承以及子类与父类 |
第五周 | 307/1576 | 2/2 | 12/20 | 接口 |
第六周 | 949/1934 | 3/2 | 14/20 | 内部类与异常类,I/O |