说说Java中的IO流
Java中IO流的种类
- 按照流的流向分,可以分为输入流和输出流
- 按照操作单元分,可以划分为字节流和字符流
- 按照流的角色分,可以分为节点流和处理流
JavaIO流共涉及40多个类,这40多个类都是从4个抽象基类中派生出来的
- InputStream/Reader:所有输入流的基类,前者是字节输入流,后者是字符输入流
- OutputStream/Writer:所有输出流的基类,前者是字节输出流,后者是字符输出流。
说说Java中的反射
定义:
- 反射机制是指在运行时,对于任意用一个类都能够知道该类的所有属性和方法;对于任意对象都能调用他的任意一个方法。
- 在Java中,只要给定类的名字,就可以通过反射机制来获取类的所有信息,这种动态获取信息以及动态调用对象的方法的功能被称为Java语言的反射机制。
- 反射是框架的灵魂,
框架中使用到反射的例子:
- 在使用JDBC连接数据库时需要通过反射来加载数据库的驱动程序
- Spring框架在使用XML配置模式装载Bean的过程也使用到了反射机制
- Spring框架在使用XML配置模式装载Bean的过程
- 将程序内所有的XML或者properties配置文件加载进内存
- Java类解析配置文件中的内容,得到对应实体类的字节码字符串以及相关的属性信息
- 通过反射机制,根据这个字符串来获取某个类的Class实例
- 动态配置实例的属性
实现方式:
- Class.forName(“类路径”)
- 类名.class
- 对象名.getClass()
- 对于基本数据类型的包装类,也可以通过调用包装类的Type属性来获取该包装类的Class对象
优点:
- 在运行时可以动态获取类的实例,灵活性较高
缺点:
- 需要将内存中的字节码进行解析,相当于一系列揭示操作,性能较低。