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(解码) --->将其字节流转化为字符流


 输出反之






   

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值