收缩
  • 电话咨询

  • 13401452880
188金宝博亚洲真人是中国领先的小游戏专业网站,金宝博APP免费为你提供小游戏大全,4399洛克王国小游戏,双人小游戏,连连看小游戏,赛尔号,奥拉星,奥奇传说小游戏,造梦西游3等最新小游戏。
下图是API中ClassLoader的loadClass方法:示例:自定义一个NetworkClassLoader,用于加载网络上的class文件packageclassloader;?importjava.io.ByteArrayOutputStream;importjava.io.InputStream;importjava.net.URL;?/**?*加载网络class的ClassLoader?*/publicclassNetworkClassLoaderextendsClassLoader{???privateStringrootUrl;???publicNetworkClassLoader(StringrootUrl){????this.rootUrl=rootUrl;??}???@Override??protectedClassfindClass(Stringname)throwsClassNotFoundException{????Classclazz=null;//this.findLoadedClass(name);//父类已加载??????//if(clazz==null){?//检查该类是否已被加载过??????byte[]classData=getClassData(name);?//根据类的二进制名称,获得该class文件的字节码数组??????if(classData==null){????????thrownewClassNotFoundException();??????}??????clazz=defineClass(name,classData,0,classData.length);?//将class的字节码数组转换成Class类的实例????//}?????returnclazz;??}???privatebyte[]getClassData(Stringname){????InputStreamis=null;????try{??????Stringpath=classNameToPath(name);??????URLurl=newURL(path);??????byte[]buff=newbyte[1024*4];??????intlen=-1;??????is=url.openStream();??????ByteArrayOutputStreambaos=newByteArrayOutputStream();??????while((len=is.read(buff))!=-1){????????baos.write(buff,0,len);??????}??????returnbaos.toByteArray();????}catch(Exceptione){??????e.printStackTrace();????}finally{??????if(is!=null){????????try{?????????is.close();????????}catch(IOExceptione){?????????e.printStackTrace();????????}??????}????}????returnnull;??}???privateStringclassNameToPath(Stringname){????returnrootUrl+"/"+name.replace(".","/")+".class";??}?}测试类:packageclassloader;?publicclassClassLoaderTest{???publicstaticvoidmain(String[]args){????try{??????/*ClassLoaderloader=ClassLoaderTest.class.getClassLoader();?//获得ClassLoaderTest这个类的类加载器??????while(loader!=null){????????System.out.println(loader);????????loader=loader.getParent();??//获得父加载器的引用??????}??????System.out.println(loader);*/???????StringrootUrl="http://localhost:8080/httpweb/classes";??????NetworkClassLoadernetworkClassLoader=newNetworkClassLoader(rootUrl);??????Stringclassname="org.classloader.simple.NetClassLoaderTest";??????Classclazz=networkClassLoader.loadClass(classname);??????System.out.println(clazz.getClassLoader());?????}catch(Exceptione){??????e.printStackTrace();????}??}?}打印结果:?下图是我机器上web服务器的目录结构:目前常用web服务器中都定义了自己的类加载器,用于加载web应用指定目录下的类库(jar或class),如:Weblogic、Jboss、tomcat等,下面我以Tomcat为例,展示该web容器都定义了哪些个类加载器:1、新建一个web工程httpweb2、新建一个ClassLoaderServletTest,用于打印web容器中的ClassLoader层次结构importjava.io.IOException;importjava.io.PrintWriter;?importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;?publicclassClassLoaderServletTestextendsHttpServlet{???publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)??????throwsServletException,IOException{?????response.setContentType("text/html");????PrintWriterout=response.getWriter();????ClassLoaderloader=this.getClass().getClassLoader();????while(loader!=null){??????out.write(loader.getClass().getName()+"");??????loader=loader.getParent();????}????out.write(String.valueOf(loader));????out.flush();????out.close();??}???publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)??????throwsServletException,IOException{????this.doGet(request,response);??}}3、配置Servlet,并启动服务??xmlns="http://java.sun.com/xml/ns/j2ee"??xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"??xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee??http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">????ClassLoaderServletTest??ClassLoaderServletTest?(点击上方公众号,可快速关注)来源:xyang0917链接:blog.csdn.net/xyang81/article/details/7292380一、什么是ClassLoader?大家都知道,当我们写好一个Java程序之后,不是管是CS还是BS应用,都是由若干个.class文件组织而成的一个完整的Java应用程序,当程序在运行时,即会调用该程序的一个入口函数来调用系统的相关功能,而这些功能都被封装在不同的class文件当中,所以经常要从这个class文件中要调用另外一个class文件中的方法,如果另外一个文件不存在的,则会引发系统异常。同样的,大整数运算因为同样的原因变的很难使用。118体育金宝博 一旦再次发生事故,将会涉及近万人的生命安全。例如A*B/C表示(A*B)/C,而A=B=C表示A=(B=C)。
联系我们
电话:188金宝博亚洲真人
传真:0512-66706049
手机:13401452880
联系人:何广胜
邮箱:info@muellercn.com
地址:苏州市望亭镇问渡路58号
金宝博APP下载 MORE>>
       188bet中文网 是一家专业生产可循环整体包装产品的企业,公司坐落于江苏省苏州市望亭镇,专业厚片吸塑包装,公司产品包括厚片吸塑制品,周转箱,料架,围板箱,定制化内衬,机器罩壳等。
       我们引进欧美先进的吸塑技术,开发了先进的吸塑设备,可生产最大成型尺2.0m*2.4m*0.6m(长*宽*高),材料厚度12mm以内. 我们可以为您提供整套的包装设计方案、模具设计,模具制造,吸塑产品生产,售后及相关周转用品在内的一条龙服务。
       产品材料主要有HDPE、PC、ABS、PP、PS、PMMA、ABS/TPU、PET 、PSEL 、PPEL等复合材料。
       我们的研发设计及制造团队具有多年厚片吸塑及周转用品从业经验。吸收国内外的先进的技术,为您提供整体包装解决方案和“一站式”的购物体验。公司产品广泛应用于汽车零部件的生产、周转、运输和仓储,减少零部件的碰撞、摩擦、损坏,以及机电、电子、化工、医疗食品、日化等行业。
版权所有:188bet中文网 苏ICP备15029956号
电话:188金宝博亚洲真人 传真:0512-66706049 地址:苏州市望亭镇问渡路58号
Baidu