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

如何做网站豆瓣厦门seo网络推广

如何做网站豆瓣,厦门seo网络推广,深圳谷歌网络推广公司,内容管理系统开发类加载器ClassLoad-jdk1.8 1. 类加载器的作用2. 类加载器的种类#xff08;JDK8#xff09;3. jvm内置类加载器如何搜索加载类--双亲委派模型4. 如何打破双亲委派模型--自定义类加载器5. 自定义一个类加载器5.1 为什么需要自定义类加载器5.2 自定义一个类加载器 6. java代码加… 类加载器ClassLoad-jdk1.8 1. 类加载器的作用2. 类加载器的种类JDK83. jvm内置类加载器如何搜索加载类--双亲委派模型4. 如何打破双亲委派模型--自定义类加载器5. 自定义一个类加载器5.1 为什么需要自定义类加载器5.2 自定义一个类加载器 6. java代码加载类的方式7. jdk9 的类加载器结构参考文章 1. 类加载器的作用 顾名思义它是用来加载 Class 的。它负责将 Class 的字节码形式转换成内存形式的 Class 对象。延迟加载。JVM 运行并不是一次性加载所需要的全部类的它是按需加载也就是延迟加载。程序在运行的过程中会逐渐遇到很多不认识的新类这时候就会调用 ClassLoader 来加载这些类。加载完成后就会将 Class 对象存在 ClassLoader 里面下次就不需要重新加载了。传递性。程序在运行过程中遇到了一个未知的类它会选择哪个 ClassLoader 来加载它呢虚拟机的策略是使用调用者 Class 对象的 ClassLoader 来加载当前未知的类。何为调用者 Class 对象就是在遇到这个未知的类时虚拟机肯定正在运行一个方法调用静态方法或者实例方法这个方法挂在哪个类上面那这个类就是调用者 Class 对象。前面我们提到每个 Class 对象里面都有一个 classLoader 属性记录了当前的类是由谁来加载的。 2. 类加载器的种类JDK8 JVM 中内置了三个重要的 ClassLoader分别是 BootstrapClassLoader、ExtensionClassLoader 和 AppClassLoader。 BootstrapClassLoader 负责加载 JVM 运行时核心类这些类位于 JAVA_HOME/lib 目录下 ExtensionClassLoader 负责加载 JVM 运行时扩展类这些类位于 JAVA_HOME/lib/ext 目录下 AppClassLoader 负责加载用户目录下的class和第三方jar包 3. jvm内置类加载器如何搜索加载类–双亲委派模型 实现代码 protected synchronized Class? loadClass(String name, boolean resolve)throws ClassNotFoundException {// 首先判断该类型是否已经被加载Class c findLoadedClass(name);if (c null) {//如果没有被加载就委托给父类加载或者委派给启动类加载器加载try {if (parent ! null) {//如果存在父类加载器就委派给父类加载器加载c parent.loadClass(name, false);} else {//如果不存在父类加载器就检查是否是由启动类加载器加载的类通过调用本地方法native Class findBootstrapClass(String name)c findBootstrapClass0(name);}} catch (ClassNotFoundException e) {// 如果父类加载器和启动类加载器都不能完成加载任务才调用自身的加载功能c findClass(name);}}if (resolve) {resolveClass(c);}return c;}双亲委派逻辑 类加载器加载类时会先判断该类是否加载过如果加载过则直接返回。否则进行加载每个父加载器都重复这个过程类加载器不会直接加载该类先委派给父类去加载调用父加载器 loadClass()方法来加载类当父类返回null无法加载时子类尝试加载如果也加载不到抛出异常 好处 避免类的重复加载保证了 Java 的核心 API 不被篡改如果用户写一个 String 不会被加载 4. 如何打破双亲委派模型–自定义类加载器 自定义加载器的话需要继承 ClassLoader 。如果我们不想打破双亲委派模型就重写 ClassLoader 类中的 findClass() 方法即可无法被父类加载器加载的类最终会通过这个方法被加载。但是如果想打破双亲委派模型则需要重写 loadClass() 方法。 5. 自定义一个类加载器 5.1 为什么需要自定义类加载器 自定义类加载器是从实际场景出发解决一些应用上的问题比如 热部署、插件化类常用的比如SpringBoot-devtools和Arthas等工具其实现原理就用到了类加载机制加密有些核心代码不想公开但又必须使用可以通过加密类字节码的方式将编译后的加密代码交给类加载器加载再采用某种解密算法将真正的类载入JVM保证核心代码不被反编译泄漏类隔离在项目中可能不同的微服务用的某个类的版本不一样某些应用依赖于特定版本的SDK功能自定义类加载器可以解决某个同名的Class想要加载不同的版本的场景实现同名Class多版本共存相互隔离从而达到解决版本冲突的目的。如Java模块化规范 OSGi、蚂蚁金服的类隔离框架非标准化来源加载代码编译后的字节码在数据库、云端等情况 5.2 自定义一个类加载器 待实现… 6. java代码加载类的方式 命令行启动应用时候由JVM初始化加载通过 Class.forName() 方法动态加载通过 ClassLoader.loadClass() 方法动态加载自定义加载器调用它的 MyClassLoader.loadClass() 方法 7. jdk9 的类加载器结构 参考文章 https://javaguide.cn/java/jvm/classloader.html#%E5%8F%8C%E4%BA%B2%E5%A7%94%E6%B4%BE%E6%A8%A1%E5%9E%8B%E4%BB%8B%E7%BB%8Dhttps://blog.csdn.net/xyang81/article/details/7292380https://gityuan.com/2016/01/24/java-classloader/https://zhuanlan.zhihu.com/p/51374915https://blog.csdn.net/chengqiuming/article/details/119835564https://pdai.tech/md/java/jvm/java-jvm-classload.html
http://www.hkea.cn/news/14415803/

相关文章:

  • 免费建站系统下载乐平网站
  • dw做的网站能搜到吗wordpress主题柚子皮zip
  • 兔展在线制作网站html网页制作总结
  • 榆林尚呈高端网站建设学院评估 网站建设整改
  • 品牌企业网站建设公司价格网站开发端口查询
  • 网站建设有哪些问题视频网站建站程序
  • 做照片视频的网站资讯型电商网站优缺点
  • 襄阳手机网站建设合肥房产网365
  • 织梦网站栏目江苏省建设执业资格中心网站
  • 网站开发 视频播放器wordpress 好用插件
  • 学校网站设计思路系统集成项目管理
  • windows 2003做网站如何知道wordpress
  • html网站免费模板开发公司移交给物业资料说明
  • 做英文网站怎么赚钱网站做流量的论坛贴吧
  • 建站公司网站 phpwind网站建议反馈应该怎么做
  • 廊坊哪里能够做网站微信公众号做电影网站要域名吗
  • 网站建设目的与作用织梦系统做的网站打开慢
  • 龙岗网站建设工程17网站一起做网店质量怎么样
  • 营销型网站的建设重点是什么做爰视频网站在线看
  • 福永网站优化网站开发策划
  • 电子商务网站建设 教案北京如何优化网站
  • 天津建设网站公司高港区拖拽式网页制作平台
  • 四川微信网站建设蓝海电商怎么做
  • 购物帮做特惠的导购网站成都公司注册流程及费用
  • 工程网站建设最新国际新闻热点
  • 网站建设伍际网络平板网站建设
  • 杭州网站公司哪家服务好wordpress ckplayer
  • 全国思政网站的建设情况智慧团建电脑版登录
  • 做网站必须原创吗京东网上购物商城购物
  • 网站推广解释阿里云虚拟主机做企业网站