JAVASE部分核心知识,JAVASE核心知识
JAVASE部分核心知识,JAVASE核心知识
一、 面向对象 三大特性:1 封装
封装是面向对象的核心思想,将对象的属性和行为封装起来,不需要外界知道具体细节的体现,这就是封装思想
2 继承
继承主要描述的是类与类之间的关系,通过继承,可以在无须重新编写原有类的情况下,对原有类的功能进行扩展。
作用: 继承不仅增强了代码复用性,提高了开发效率,而且为程序的修改补充提供了便利
3 多态
多态性指的是在程序中允许出现重名现象,它指在一个类中定义的属性和方法被其他类继承后,他们可以具有不同的数据类型和表现出不同的行为,这使得同一个属性和方法在不同的类中具有不同的语义
二、类与对象
面向对象的编程思想提出两个概念: 即 类和方法
1、 概念 类:类是对某一类事物的抽象描述 它用于描述一组对象的共同特征和行为。类中可以定义成员变量和成员方法
成员变量:用于描述对象的特征,也被称作属性
成员方法:用于描述对象的行为,可简称方法
备注:定义在类中的变量成为----->成员变量
定义在方法中的变量成为---->局部变量
对象:对象用于表示现实中该类事物的个体
2、关系 类:用于描述多个对象的共同特征,它是对象的模板
对象:用于描述现实中的个体,它是类的实例
备注:对象是根据类创建的,并且通过一个类可以创建多个对象。
3、对象的创建与使用:
在JAVA中可以使用new关键字创建对象,具体格式:
格式-----> 类名 对象名称=new类名( );
eg: Person p=new Person( );
" new Person( ); " 用于创建Person类的一个实例对象
" Person p " 则是声明了一个Person类型的变量p
" = " 用于将Person对象在内存中的地址赋值给变量p p便有了对象的引用
在创建(Person)对象后,可以通过对象的引用来访问对象所有的成员,具体格式:
格式-------> 对象引用 . 对象成员
4、 成员变量的初始化值汇总
成员变量类型 byte short int long float double char boolean 引用数据类型
初始值 0 0 0 0L 0.0F 0.0D 空字符 false null
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
《IO流》
1.流动,流向 从一端移动到另一端 。一端为JAVA程序 另一端为数据源|存储介质|节点
常见的介质|节点:文件、网络、数据库等。始终以JAVA程序为中心
2.两端:
数据源、节点:文件 数据库 网络等存储数据的介质
JAVA程序: 一切以程序为中心
3.分类
1》数据单位: 字节流 字符流
Reader BufferedReader CharArrayReader InputStreamReader FileReader
读 字符流 文件字符节点输入流
Writer BufferedWriter CharArrayWriter OutputStreamWriter FileWriter
写 字符流
备注:1.读写功能 利用包装流可以有效地提高读写数据的效率。 字符流同样提供了带缓冲区的包装流
2.提示:在BufferedReader中有一个重要的方法。 readLine() 该方法用于一次读取一行文本
通过while循环实现了文本文件的拷贝 在拷贝过程中 每次循环都使用readLine()方法读取字符
当读取到回车\r或换行\n时 会将读到的字符作为一行的内容返回
3.由于包装流内部使用了缓冲区 在循环调用BufferedWriter的writer()方法写字符时 这些字符首先会被写入缓冲区 当缓冲区写满或调用close()方法时 缓冲区的字符才会被写入目标文件 因此 在循环结束时一定要调用close()方法 否则 极有可能会导致部分存在缓冲区中的数据没有被写入到目标文件
2》流向: 输入流和输出流
InputSream ByteArrayInputStream FileInputStream BufferedInputStream
OutputStream ByteArrayOutputStream FileOutputStream BufferedOutputStream
3》功能:节点流 处理流
节点流:操作第一线 跟节点靠近
处理流:在节点流的基础上操作 增强、提升性能
4.操作步骤
1》建立联系 2》选择流 3》读取 写出 4》释放资源 fluse()方法 close()方法
文件的拷贝:
第一步:从源头文件读取数据:read 从磁盘到内存 (文件必须存在)
写到目的地目标文件:write 从内存到磁盘 (文件可以不存在)
第二步:选择流 InputStream
OutputSrream
第三步:读 写(边读边写) 记得循环结束后或循环内部 刷新 flush()方法
备注:连根文件夹一起mkdirs() 单纯的拷贝文件夹下面的mkdir()
第四步:关闭流 (先打开的后关闭)
os.close() is.close()
5.其他流:
1》字节与字符转换流:
输入流InputStreamReader(解码)
输出流OutputStreamWriter(编码)
2》字节数组节点流
在JAVA内存可以管理数组 不需要释放资源 调用close()方法也没有问题
ByteArrayOutputStream不用匿名 后期需要多次操作数组
输入流ByteArrayInputStream
输出流ByteArrayOutputStream
3》数据处理流
处理数据+类型(基本和String):必须先写出后读取 读取的顺序与写出保持一致
输入流DataInputStream
输出流DataOutputStream
4》对象处理流
输入流ObjectInputStream(反序列化)readObject() 从ObjectInputStream读取对象
输出流OBjectOutputStream(序列化)writeObject() 将指定的对象写入ObjectOutStream
备注:程序在运行时 会在内存中创建多个对象 然后程序结束后 这些对象便被当做垃圾回收了
如果希望永久保存这些对象 则可以将对象转为字节数据写入到硬盘上 这个过程称为对象序列化
为此JDK中提供了(对象输出流)ObjectOutpurStream来实现对象的序列化
当对象进行序列化时 必须保证对象实现Serializable接口 否则程序会出现NotSeralizableException异常
对象流与数据流操作一致,必须先写出后读取 读取的顺序与写出保持一致
不同的是:操作引用类型
a)不是所有的对象都可以序列化(也称为持久化,将对象存储起来 如存储到文件中、直接数组)
必须实现Serializable java.io.NotSerializableException
b)不是所有的属性都需要序列化 不序列化的属性 transient
5》打印流 PrintStream
重点:字节流 byte型 字符流 char型
节点流 节点流 处理流
1.字节流: InputStream FileInputStream BufferedInputStream
OutputStream FileOutputStream BufferedOutputStream
2.字符流: Reader FileReader BufferedReader
Writer FileWriter BufferedWriter
3转换流 InputStreamReader(编码) 用char()接受
OutputSreamWriter(解码)
* 输入流:字节流 字符流 转换流(解码)---先写后读 其他流(字节数组流 数据流 对象流)---先读后写
* 输出流:字节流 字符流 转换流(解码)---先写后读 其他流 (字节数组流 数据流 对象流)---先读后写
*
* 字节流(任意 eg音频 视频 等):节点流(处理源数据的流)FileInputStream FileOutputStream
* 字符流(纯文本类型):处理流(处理流的流) : BuffurFileInputStream BuffurOutputStream
* reader(写):
* writer(读):
* 操作步骤四五步:
* 1 建立联系 File file=new File("a.txt");
* 2 选择流 :输入流--->FIleInputStream FileReader InputStreamReader
* 其他流(先写后读)--->ByteArrayInputStream DataInputStream ObjectInputStream
* 输出流--->FileOutputStream FileWriter OutputStreamWriter
* 其他流--->ByteArrayOutputStream DataOutputStream ObjectOutputStream
* 3 读 写
* 4 释放资源 关闭流: close();---->reader
* 4 5 释放资源 先刷新后关闭: fulse(); close();--->writer
操作步骤:
1 建立联系 2选择流 3读 写 【byte() char()】 4释放资源,关闭流close() 【Writer的时候 需要先刷新 fulse()】
总结:源数据:InputSream(字节流)---->内存(或程序中)此时用byte() 类型接受
内存(或程序中):OutputSream(字节流)---->目的文件
Reader----->(将文件从源数据读取到内存中 由于Reader属于字符型 所以在流的传输过程中已经将其字节型---字符型)
源数据 InputStreamReader(解码) --->将其字节流转化为字符流
输出反之
相关文章
- 暂无相关文章
用户点评