• Java学习笔记DayN Java高级特性概况


    对于实际用法不太了解 以后重点学习

    泛型Generic:
    解决数据类型的安全性问题
    Java泛型只在编译阶段生效
    泛型类:
    class A<T>{}
    对象实例化时不指定泛型,默认为:Object
    类中有关数据类型在实例化的时候确定
    泛型接口:
    interface A<T>{}
    接口 未传入泛型实参时,与泛型类的定义相同
    class B<T> implements A<T>{}
    实现接口时制定了泛型的具体数据类型
    class B implements A<String>{}
    泛型方法:
    public <T> void xxx(T t){}
    静态方法无法使用类定义的泛型变量,只可使用自身定义的泛型
    泛型方法在调用时传入的实参类型决定了泛型的类型

    enum枚举类:
    枚举可以实现一个类中有多个特定对象的单例模式

    Annotation注解
    @Override @Deprecated @SuppressWarnings

    IO流:
    输入与输出都是相对于计算机而言-内存与硬盘之间的信息交互
    File f = new File(“路径”);//文件分隔符用//或
    文件字节流与文件字符流:
    字节流可适用于所有文件,而字符流只适用于txt文件
    字节流: FileInputStream FileOutputStream
    字符流:FileReader FileWriter
    read(File)方法返回值为-1时表示读取文件完毕
    write方法写完后要用flush把数据从内存刷进硬盘
    流用完就必须手动关闭close()

    流是用来处理数据的
    处理数据时,要明确数据源与数据目的地
    流只是帮助数据进行传输,并进行一些处理(过滤处理,转换处理)

    处理流之一:缓冲流
    FileInputStream等流是计算机与硬盘的IO操作,相对较慢。
    而缓冲流在一定程度上可以打破磁盘读写速度的限制
    缓冲流先把数据缓冲进内存里,在内存中进行IO操作,速度可快75000倍
    缓冲字节流:
    BufferedInputStream BufferdOutputStream
    BufferedInputStream br = new BufferedInputStream(new FileInputStream(""))
    缓冲字符流
    BufferedReader BufferedWriter

    处理流之二:转换流
    提供了字节流与字符流之间的转换
    在转换字符流时,设置的字符集编码方式要与所读取的文件编码类型一致
    InputStreamReader in = new InputStreamReader(字节流对象,"编码方式GBK/UTF-8")
    OutputStreamReader

    处理流之三:标准输入输出流
    System.in System.out
    InputStream PrintStream

    处理流之四:打印流

    处理流之五:数据流
    专门用来做基本数据类型的读写
    DataOutputStream
    DataInputStream
    读取时保证类型的一致性

    处理流之六:对象流
    对象的持久化:保存对象到硬盘 对象的网络传输
    把对象转化成一个二进制的字节流进行保存和运输
    ObjectOutputStream 序列化 将Java对象写入IO流
    ObjectInputStream 反序列化 从IO流中回复Java对象
    两者针对对象的各种属性,不包括类变量与类方法(static)
    所序列化的对象必须实现Serializble或Externaliable接口
    对象的序列化与反序列化使用的类要严格一致,包名,类名,类的结构

    RandomAccessFile类
    支持随机访问方式
    2个参数:参数1是文件路径,参数2是访问模式r,rw,rws,rwd
    seek();//设置读写器起始点
    内容会覆盖等字节长度的原内容(一个汉字两字节)

    反射Java Reflection:
    Java能够反射的前提:已经在JVM中加载过这个类
    Class类:
    对所有类的高度抽象
    通过Class可以得到一个类中的完整结构
    一个类在JVM中只会有一个Class实例
    一个Class对象对应的是一个加载到JVM中的一个.class文件
    每个类的对象都会记得自己是由哪个Class实例所生成的
    class实例化:
    Class class = 类名.class;
    Class class = 对象名.getClass();
    Class class = Class.forName("类的全路径(类名.包名)");//class类的静态方法

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

  • 相关阅读:
    [转自老马的文章]用MODI OCR 21种语言
    [转老马的文章]MODI中的OCR模块
    贴片晶振的脚位方向如何区分
    晶振简介及如何使用示波器测试晶振
    Lintcode 150.买卖股票的最佳时机 II
    Lintcode 82.落单的数
    Lintcode 97.二叉树的最大深度
    Lintcode 9.Fizz Buzz 问题
    LeetCode之461. Hamming Distance
    NYOJ之题目325 zb的生日
  • 原文地址:https://www.cnblogs.com/ziyang1060/p/13597764.html
Copyright © 2020-2023  润新知