当前位置: 首页 > news >正文

微擎pc网站开发seo搜索引擎优化费用

微擎pc网站开发,seo搜索引擎优化费用,建设招标网官方网站电脑版,锦州网站seo1.ClasserLoader介绍? classloader顾名思义,即是类加载。虚拟机把描述类的数据从class字节码文件加载到内存,并对数据进行检验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。…

1.ClasserLoader介绍?

classloader顾名思义,即是类加载。虚拟机把描述类的数据从class字节码文件加载到内存,并对数据进行检验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。了解java的类加载机制,可以快速解决运行时的各种加载问题并快速定位其背后的本质原因,也是解决疑难杂症的利器。因此学好类加载原理也至关重要。

内置类加载器

JVM 中内置了三个重要的 ClassLoader

  1. BootstrapClassLoader(启动类加载器):最顶层的加载类,由 C++实现,通常表示为 null,并且没有父级,主要用来加载 JDK 内部的核心类库( %JAVA_HOME%/lib目录下的 rt.jarresources.jarcharsets.jar等 jar 包和类)以及被 -Xbootclasspath参数指定的路径下的所有类。
  2. ExtensionClassLoader(扩展类加载器):主要负责加载 %JRE_HOME%/lib/ext 目录下的 jar 包和类以及被 java.ext.dirs 系统变量所指定的路径下的所有类。
  3. AppClassLoader(应用程序类加载器):面向我们用户的加载器,负责加载当前应用 classpath 下的所有 jar 包和类。

除了这三种类加载器之外,用户还可以加入自定义的类加载器来进行拓展,以满足自己的特殊需求。就比如说,我们可以对 Java 类的字节码( .class 文件)进行加密,加载时再利用自定义的类加载器对其解密。

2.代码工程

实验目标

实现加载外部jar包,并调用其中类方法

JarLoader

package com.et;import java.net.URL;
import java.net.URLClassLoader;
import java.lang.reflect.Method;
import java.io.File;public class JarLoader {private URLClassLoader urlClassLoader;// load JAR filepublic void loadJar(String jarFilePath) throws Exception {File jarFile = new File(jarFilePath);URL jarUrl = jarFile.toURI().toURL();urlClassLoader = new URLClassLoader(new URL[]{jarUrl}, this.getClass().getClassLoader());System.out.println("JAR Loaded: " + jarFilePath);}//load class from  JAR and invoke methodpublic void invokeClassMethod(String className, String methodName) throws Exception {if (urlClassLoader != null) {Class<?> loadedClass = urlClassLoader.loadClass(className);Method method = loadedClass.getDeclaredMethod(methodName);method.invoke(loadedClass.newInstance());System.out.println("Method Invoked: " + methodName);} else {System.out.println("ClassLoader is null, load a JAR first.");}}// unload JARpublic void unloadJar() throws Exception {if (urlClassLoader != null) {urlClassLoader.close();  // close ClassLoaderurlClassLoader = null;    // let it recycle by jvmSystem.out.println("JAR Unloaded.");} else {System.out.println("No JAR to unload.");}}
}

service(demo模块)

  • 创建sevice类
  • mvn install 打包成jar包
package com.et.demo.service;public class MockService implements Service {@Overridepublic void printVersion() {System.out.println("11.0");}
}
package com.et.demo.service;public interface Service {void printVersion();
}

以上只是一些关键代码,所有代码请参见下面代码仓库

代码仓库

  • GitHub - Harries/Java-demo(classloader)

3.测试

编写测试类

package com.et;public class Main {public static void main(String[] args) throws Exception {JarLoader jarLoader = new JarLoader();// load JARjarLoader.loadJar("D:\\IdeaProjects\\Java-demo\\demo\\target\\demo-1.0-SNAPSHOT.jar");// invoke the methodjarLoader.invokeClassMethod("com.et.demo.service.MockService", "printVersion");// unload JARjarLoader.unloadJar();}
}

启动main方法,查看日志

JAR Loaded: D:\IdeaProjects\Java-demo\demo\target\demo-1.0-SNAPSHOT.jar
11.0
Method Invoked: printVersion
JAR Unloaded.
Disconnected from the target VM, address: '127.0.0.1:53226', transport: 'socket'Process finished with exit code 0

4.引用

  • ClassLoader (Java Platform SE 7 )
  • 利用ClasserLoader来实现jar包加载并调用里面的方法 | Harries Blog™
http://www.ds6.com.cn/news/20366.html

相关文章:

  • WordPress多用户建站小学生关键词大全
  • 做网站按钮互动营销的方式有哪些
  • 用vue做的网站模板windows优化大师收费吗
  • 网站规划开发前景seo推广软件怎样
  • 网站建设一般多少钱郴州网站推广
  • iis5.1 新建网站全国疫情高峰感染高峰
  • 模板网站建设珠海搜索关键词排名优化软件
  • 主做熟人推荐的招聘网站昆明seo网站管理
  • 工信部网站icp备案2020年可用好用的搜索引擎
  • 大连网站优化方案济南优化网页
  • 有哪些网站可以免费做推广百度开户是什么意思
  • 北京设计公司排行宁波百度推广优化
  • 企业网络推广网站建设百度外包公司有哪些
  • 自己的主机做服务器网站如何备案网络媒体发稿平台
  • 济南住房和城乡建设局网站seo标题生成器
  • 阿里网站空间百度自媒体平台
  • 天津建委招标网站百度推广咨询
  • wordpress 谷歌简述如何优化网站的方法
  • 福州专业做网站的公司镇江抖音seo
  • 移动互联网开发安全案例seo网站推广优化就找微源优化
  • 南京市雨花区建设局网站百度快速收录接口
  • 网站建设属于IT吗品牌运营包括哪些内容
  • 自适应平台网站模板西安seo优化公司
  • 怎么查询网站点击量我赢网提供的高水平网页设计师
  • 免费公安网站源码企拓客软件多少钱
  • 给文字做网站链接兰州网站seo服务
  • 在线做海报网站网站关键词优化技巧
  • 长沙网站技术专家线上营销技巧和营销方法
  • 阿里巴巴装修网站外贸seo站
  • 淘宝网站策划怎么做福建省人民政府门户网站