[转帖]java的I/O、JVM类加载_Android, Python及开发编程讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  Android, Python及开发编程讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 3662 | 回复: 0   主题: [转帖]java的I/O、JVM类加载        下一篇 
yi.liao
注册用户
等级:少校
经验:917
发帖:52
精华:4
注册:2013-1-31
状态:离线
发送短消息息给yi.liao 加好友    发送短消息息给yi.liao 发消息
发表于: IP:您无权察看 2013-2-18 13:58:22 | [全部帖] [楼主帖] 楼主

一、java中的io

数据从内存到硬盘,通常认为是输出流,即写操作;相反,从硬盘到内存,通常认为是输入流,即读操作;这里的输入、输出是从内存的角度划分的。
Java的输入流主要有InputStream和Reader作为基类,而输出流则主要由OutputStream和Writer作为基类
字节流和字符流
字节流和字符流区别非常简单,它们的用法几乎一样。区别在于字节流和字符流所操作的数据单元不同:字节流操作的最小单元数据是8位字节,而字符流作为最小数据单元是16为字节。
字节流主要由InputStream、OutputStream作为基类,而字符流则主要由Reader和Writer作为基类完成。
节点流和处理流
按照流的角色分,可以分为节点流和处理流。
可以从、向一个特定的IO设备,读写数据流,称为节点流,节点流常常也被常务低级流(Low Level Stream)
处理流则用于对一个已经存在的流进行连接封装,通过封装后来实现数据的读写功能。处理流称为高级流;
当用处理流的进行输入、输出时,程序并不会直接连接到实际数据源,没有和实际的输入、输出节点连接。使用处理流一个明显的好处是:只要使用相同的处理流,程序就可以采用相同的输入、输出代码来访问不同数据源,随着处理流锁包装节点流的改变,程序实际所访问的数据源也相应发生改变。
处理流的功能主要体现在两个方面:
性能提高:主要以增加缓冲方式来提高输入、输出的效率
操作的便捷: 处理流可能提供了系列便捷的方法来一次性输入、输出大批量的内容,而不是输入、输出一个或多个单位数据

处理流可以“嫁接”在任何已经存在的流的基础上,这就允许Java应用程序采用相同的代码、透明的方式来访问不同的输入、输出设备输入流。 

二、java中类装载器

1、JVM的类装载就是就将包含在类文件中的字节码装载到JVM中,
这是一个过程:将.class文件转换成JVM使用的类字节码(例如string类型在编译成.class文件是UTF-8编码格式,但是在JVM中是Unicode);
在JVM中的字节码就是可执行的代码。
2、类装载器把类装入JVM中经过三个步骤:装载、链接、初始化 
装载的实现方式:
a、类名.class; b、对象.getClass(); c、Class.forName("类名")
 类装载器本身也是一个类:java.lang.ClassLoader是类装载器基类,同时在Class类中定义了一个getClassLoader()方法,用于返回其描述的类的类装载器对象,即返回的类型是ClassLoader。
3、一个java应用持续使用两种类型的类装载器: 
(1) 根装载器(tootstrap),JVM中内嵌的一个类,用特定的操作系统的本地代码实现,不用专门的类装载器去装载,负责加载java核心包(jr.jar)文件中的类。BootstrapLoader是C++写的,java核心包中还有ExtClassLoader和AppClassLoader是java写的:
a、ExtClassLoader负责加载存放在<JAVA_HOME>/JRE/LIB/EXT目录下的jar包中的类,
b、AppClassLoader负责加载存放在<CLASSPATH>用户定义的类
(2)用户定义的转载器(user-defined)
4、在linux的命令行输入java xxx时:
 1)找到JRE 
2)找到JVM.dll 
3)启动JVM,并进行初始化
4)产生Bootstrap Loader
5)载入ExtCLassLoader
6)载入AppClassLoader

7)加载xxx类
类加载的时候遵循一个原则:“类加载器会依类的继承体系从上至下依次加载”。

该贴被yi.liao编辑于2013-2-18 13:58:49



赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论