您的位置:首页 > 职场人生

面试宝典_JVM

2015-08-21 09:41 337 查看
一、ClassLoader

1.ClassLoaader基本概念

由于java是由许多独立的类文件组成,每一个文件对应一个java类,并且这些类是根据程序需要逐渐载入内存。ClassLoader是JVM实现的一部分,它包括bootstrap classloader(启动类加载器),ClassLoader在JVM运行的时候加载Java核心的API,以满足java成句最基本需求,包括用户自定义的ClassLoader(ExtClassloader用来加载java的扩展api,即/lib/ext中的类。AppClassLoader用来加载yonghu8机器上CLASSPATH设置目录中的class的)

2.ClassLoader加载流程

程序运行-->JVM启动-->运行bootstrap classloader-->该ClassLoader加载java核心API(ExtClassLoader和AppClassLoader也在此时被加载)-->调用ExtClassLoader加载扩展API-->AppclassLoader加载CLASSPATH目录下定义的class。

3.ClassLoader一些重要方法

forName和ClassLoader中的loadClass方法的目的一样,都是用了加载class 的,区别在于loadClass方法是protected,而用户使用的方法是一个参数与,一个参数的loadclass方法实际上就是调用了两个参数,第二个参数默认为false。因此,loadClass不会初始化该类,而使用Class类的forName加载的时候就会将Class进行解释和初始化。

二、字符编码

在java中,字符只以一种形式存在,那就是Unicode(不选择任何特定的编码,直接使用它们在字符集中的编号,这是统一的唯一方法)。这里的“在java中“暴露JVM、内存、代码里声明的每一个char、String类型的变量。

java的I/O系统中能够制定转换编码的地方,也就在字符与字节转换的地方,那就是InputStreamReader和OutputStreamWriter。这两个类是字节流和字符流之间的适配器类,来承担编码转换的任务。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: