重庆网站建设公司 夹夹虫好,网站开发校园经历范文,宁夏建设注册中心网站,wordpress修改后台路径写了一个android版的计算器#xff0c;可以计算带括号的表达式#xff0c;不过前提是#xff1a;正确的表达式才行小缺陷是没有做表达式括号的控制#xff0c;现在还没有想到好的控制方式 1 package javaAdvanced;2 3 import java.io.IOException;4 import java.io.PrintWr…写了一个android版的计算器可以计算带括号的表达式不过前提是正确的表达式才行小缺陷是没有做表达式括号的控制现在还没有想到好的控制方式 1 package javaAdvanced;2 3 import java.io.IOException;4 import java.io.PrintWriter;5 6 /**7 * 类加载器学习8 *9 * author cuiH
10 * Date: 13-12-6
11 */
12 public class ClassLoaderTest {
13 public static void main(String[] args) {
14 System.out.println(ClassLoaderTest.class.getClassLoader().getClass().getName());
15 /**
16 * result:sun.misc.Launcher$AppClassLoader
17 * AppClassLoader 加载的
18 */
19
20
21 System.out.println(System.class.getClassLoader());
22 /**
23 * result:null
24 * 加载器为null说明是由bootstrap加载器进行加载的
25 */
26
27
28 ClassLoader loader ClassLoaderTest.class.getClassLoader();
29 while (loader ! null) {
30 System.out.println(loader.getClass().getName());
31 loader loader.getParent();
32 }
33 System.out.println(loader);
34 /** http://www.cnblogs.com/sosoft/
35 * result:
36 * sun.misc.Launcher$AppClassLoader [加载classPath各种jar包下面类]
37 * sun.misc.Launcher$ExtClassLoader [加载 Ext下面的各种jar包]
38 * nullBootstrap[加载rt.jar]
39 * 说明三个类加载器的父子关系
40 */
41 }
42
43 /**
44 * web项目中的一个类加载器的测试Tomcat中servlet DoGet方法的加载器
45 * org.apache.catalina.loader.WebappClassLoader
46 * org.apache.catalina.loader.StandardClassLoader
47 * sun.misc.Launcher$AppClassLoader
48 * sun.misc.Launcher$ExtClassLoader
49 *
50 * 两个apache 两个java
51 * 这个放到web项目下好用。
52 */
53 protected void doGet(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException {
54 response.setContentType(text/html);
55 PrintWriter out response.getWriter();
56 ClassLoader loader this.getClass().getClassLoader();
57 while (loader ! null) {
58 out.println(loader.getClass().getName() /br);
59 loader loader.getParent();
60 }
61 out.close();
62 }
63
64 }
65
66 /**
67 * jvm默认三个类加载器 http://www.cnblogs.com/sosoft/
68 * 类加载器本质也是一个类
69 * java虚拟机第一个加载器是BootStrap加载其他类加载器然后加载类
70 *
71 * 默认的三个BootStrap ;AppClassLoader;ExtClassLoader
72 *
73 * 类加载器的委托方式
74 * 加载方式首先向上委托追寻到Bootstrap上面有的话直接加载没有的话向下寻找。
75 * 因此自己写的System类无法被加载因为找到最上面就直接加载system类了
76 */
77
78
79 /**
80 * 编写字节的类加载器
81 * 模板方法的设计模式
82 *
83 * 父类里有loaderClass方法
84 *
85 * 子类1自己的代码
86 * 子类2自己的代码
87 *
88 * 子类1和子类2的流程一样但是具体实现方法不一样。
89 * 因此将实现流程的代码写在父类中具体的实现代码由子类实现
90 * 例如JDK中ClassLoader.loaderClass使用的就是模板方法
91 *
92 * ClassLoader.loaderClass方法包括三步流程
93 * 一findLoaderClass检查是否加载
94 * 二父类加载器中调用 loaderClass方法
95 * 三: findClass查找类。
96 *
97 * 因此要想写一个自己的类加载器只需要覆盖findClass便可以实现
98 */ 转载于:https://www.cnblogs.com/sosoft/p/3462115.html