面试宝典_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。这两个类是字节流和字符流之间的适配器类,来承担编码转换的任务。
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。这两个类是字节流和字符流之间的适配器类,来承担编码转换的任务。
相关文章推荐
- 机器学习&数据挖掘笔记_16(常见面试之机器学习算法思想简单梳理)
- 常见面试题2
- 黑马程序员-java基础-去除ArrayList中重复的字符串方法2
- 黑马程序员-java基础-去除ArrayList中重复的字符串
- 经同学推荐到携程的数据挖掘岗位的电话面试题
- 黑马程序员-java基础-List集合的特有遍历功能
- 黑马程序员-java基础-List集合的特有功能
- 黑马程序员-java基础-并发修改异常产生的原因和解决方案
- 职业规划
- 黑马程序员—IOS加强视频—oc内存管理
- 【LeetCode-面试算法经典-Java实现】【155-Min Stack(最小栈)】
- 【LeetCode-面试算法经典-Java实现】【154-Find Minimum in Rotated Sorted Array II(找旋转数组中的最小数字II)】
- 【LeetCode-面试算法经典-Java实现】【153-Find Minimum in Rotated Sorted Array(找旋转数组中的最小数字)】
- 黑马程序员——Java基础---继承、抽象、接口(一)
- 黑马程序员——反射
- 黑马程序员_java基础学习IO流学习笔记
- 剑指Offer面试题:7.旋转数组的最小数字
- 程序员应该避免的5种代码注释
- 9秒学院:为什么程序员也能成为伟大的CEO
- 【面试题之算法部分】LIS最长递增子序列