标签:string 部署 二进制 indent 定义类 java面试 加密 重写 etc
类加载的过程分为:加载、连接、初始化、使用和卸载。其中连接又可以分为:验证、准备和解析
获取当前对象的ClassLoader通过如下代码:
this.getClass().getClassLoader() // 获取当前对象的类对象,然后调用getClassLoader
类加载器可以进行类层次的划分、OSGi、热部署和代码加密等。那么用户如何自定义类加载器呢?
要创建用户自己的类加载器,只需要扩展java.lang.ClassLoader类,然后覆盖它的findClass(String name)方法即可,该方法根据参数指定类的名字,返回对应的Class对象的引用。
findClass protected Class<?> findClass(String name) throws ClassNotFoundException
使用指定的二进制名称查找类。此方法应该被类加载器的实现重写,该实现按照委托模型来加载类。在通过父类加载器检查所请求的类后,此方法将被 loadClass 方法调用。默认实现抛出一个 ClassNotFoundException。
(1)ConcurrentHashMap的锁分段技术。
(2)ConcurrentHashMap的读是否要加锁,为什么。
(3)ConcurrentHashMap的迭代器是强一致性的迭代器还是弱一致性的迭代器。
把相互独立的计算任务包含在一个工作单元内,无需为每个单元启动新的线程。这样处理多线程代码通常效率更高。因为不用去为每个计算单元单独启动Thread线程。执行代码的线程是重用的。
(1)任务
Callable代表了一段可以调用并返回结果的代码
Future接口用来表示异步任务,是还没有完成的任务给出的未来结果。主要方法有get()、cancel()和isDone()
FutureTask是Future接口的常用实现类
(2)执行者 通过Executors类的工厂方法获取众多执行者之一
标签:string 部署 二进制 indent 定义类 java面试 加密 重写 etc
原文地址:http://www.cnblogs.com/extjs4/p/6437656.html