java面试题--java基础--1,
分享于 点击 30735 次 点评:176
java面试题--java基础--1,
面试了好几家公司,这个星期就抽空整理一下网上的还有我面试的时候问的面试题,记得不多,凑合着写。。。
中软融鑫是我面试过问得最多基础java的公司,而且还往里深。。。
我记得最清楚的也就是那么几个问题。。。
1.java 类加载器有几种?
2.java 的 GC 机制怎么判断一个对象什么时候回收?
3.hibernate 和 mybatis 的 区别?
印象最深的只记得三个。。。
因为回答的不好,回头我也百度了一下,发现自己真的学得不深。。。
所以要恶补一下java基础知识。。。
故写下这篇文章。。。
1.java加载器
1.1、概念
类加载器(class loader)用来加载 Java 类到 Java 虚拟机中。一般来说,Java虚拟机使用 Java 类的方式如下:Java 源程序(.java 文件)在经过 Java 编译器编译之后就被转换成 Java 字节代码(.class 文件)。类加载器负责读取Java字节代码,并转换成 java.lang.Class类的一个实例。每个这样的实例用来表示一个Java 类。通过此实例的 newInstance()方法就可以创建出该类的一个对象。
1.2、类加载器结构
Java 中的类加载器大致可以分成两类:
一类是系统提供的:
引导类加载器(bootstrapclass loader):它用来加载 Java 的核心库,是用原生代码而不是java来实现的,并不继承自java.lang.ClassLoader,除此之外基本上所有的类加载器都是java.lang.ClassLoader类的一个实例。
扩展类加载器(extensionsclass loader):它用来加载 Java 的扩展库。Java 虚拟机的实现会提供一个扩展库目录(一般为%JRE_HOME%/lib/ext)。该类加载器在此目录里面查找并加载 Java 类。
系统类加载器(systemclass loader或 App class loader):它根据当前Java 应用的类路径(CLASSPATH)来加载 Java 类。一般来说,Java 应用的类都是由它来完成加载的。可以通过 ClassLoader.getSystemClassLoader() 来获取它。
另外一类则是由 Java 应用开发人员编写的:
开发人员可以通过继承java.lang.ClassLoader 类的方式实现自己的类加载器,以满足一些特殊的需求
相关文章
- 暂无相关文章
用户点评