链接:https://www.nowcoder.com/questionTerminal/9d852d481c2e41dbb2e88206c72d158e
来源:牛客网
字节流继承于InputStream OutputStream,字符流继承于InputStreamReader OutputStreamWriter
链接:
https://www.nowcoder.com/questionTerminal/1585b178f50b4681a82cd9cee46d6d1e?toCommentId=402435
来源:牛客网
字节流:
InputStream
|-- FileInputStream (基本文件流)
|-- BufferedInputStream
|-- DataInputStream
|-- ObjectInputStream
字符流
Reader
|--InputStreamReader (byte->char 桥梁)
|-- OutputStreamWriter (char->byte 桥梁)
|-- BufferedWriter
|-- PrintWriter (常用)
链接:https://www.nowcoder.com/questionTerminal/99bfa10e4c1e429e98856bca6d80586e
来源:牛客网
下面有关 java 类加载器,说法正确的是?()
引导类加载器(bootstrap class loader):它用来加载 Java 的核心库,是用原生代码来实现的
扩展类加载器(extensions class loader):它用来加载 Java 的扩展库。
系统类加载器(system class loader):它根据 Java 应用的类路径(CLASSPATH)来加载 Java 类
tomcat 为每个 App 创建一个 Loader,里面保存着此 WebApp 的 ClassLoader。需要加载 WebApp 下的类时,就取出 ClassLoader 来使用
正确答案:A B C D
链接:https://www.nowcoder.com/questionTerminal/99bfa10e4c1e429e98856bca6d80586e
来源:牛客网
1)Bootstrap ClassLoader
负责加载$JAVA_HOME中jre/lib/rt.jar里所有的class,由C++实现,不是ClassLoader子类
2)Extension ClassLoader
负责加载java平台中扩展功能的一些jar包,包括$JAVA_HOME中jre/lib/*.jar或-Djava.ext.dirs指定目录下的jar包
3)App ClassLoader
负责记载classpath中指定的jar包及目录中class
4)Custom ClassLoader
属于应用程序根据自身需要自定义的ClassLoader,如tomcat、jboss都会根据j2ee规范自行实现ClassLoader
加载过程中会先检查类是否被已加载,检查顺序是自底向上,从Custom ClassLoader到BootStrap ClassLoader逐层检查,只要某个classloader已加载就视为已加载此类,保证此类只所有ClassLoader加载一次。而加载的顺序是自顶向下,也就是由上层来逐层尝试加载此类。