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

wordpress画界面长沙有实力的关键词优化价格

wordpress画界面,长沙有实力的关键词优化价格,平度城乡建设局网站,wordpress 分享后阅读前言之前详细介绍了Java类的整个加载过程(类加载机制详解)。虽然#xff0c;篇幅较长#xff0c;但是也不要被内容吓到了#xff0c;其实每个阶段都可以用一句话来概括。1)加载#xff1a;查找并加载类的二进制字节流数据。2)验证#xff1a;保证被加载的类的正确性。3)准…前言之前详细介绍了Java类的整个加载过程(类加载机制详解)。虽然篇幅较长但是也不要被内容吓到了其实每个阶段都可以用一句话来概括。1)加载查找并加载类的二进制字节流数据。2)验证保证被加载的类的正确性。3)准备为类的静态变量分配内存并设置默认初始值。4)解析把类中的符号引用转换为直接引用。5)初始化为类的静态变量赋予正确的初始值。当然要想掌握类加载机制还是需要去深入研究的。(好吧说了一句正确的废话)因为其中有很多知识点也是面试中常问的。比如我之前去面试的时候面试官就问到了一个和类初始化相关的问题。就是给一段代码有父子类关系父子类中包含静态代码块、构造代码块、普通代码块、构造函数等然后让判断代码最终的执行顺序。(可自行思考一下具体内容细节暂时不做扩展)类加载器终于来到了本文的主题 —— 类加载器和双亲委派机制。在《深入理解Java虚拟机》中对于类加载器的定义是这样的虚拟机设计团队把类加载阶段中的“通过一个类的权限定名来获取描述此类的二进制字节流”这个动作放到Java虚拟机外部去实现以便让应用程序自己决定如何去获取所需要的类。实现这个动作的代码模块称为“类加载器”。简单来说类加载器的作用就是去加载class类的二进制字节流的。类加载器有以下三种1)启动类加载器(Bootstrap ClassLoader),或者叫根加载器。这个类加载器主要是去加载你在本机配置的环境变量 Java_Home/jre/lib 目录下的核心API如rt.jar2)扩展类加载器(Extension ClassLoader)。这个加载器负责加载 Java_Home/jre/lib/ext 目录下的所有jar包。3)应用程序类加载器(Application ClassLoader)。这个加载器加载的是你的项目工程的ClassPath目录下的类库。如果用户没有自定义自己的类加载器这个就是程序默认的类加载器。另外如果有需要的话用户也可以自定义自己的类加载器(去继承ClassLoader类)。我们也可以通过代码把类加载器打印出来public class TestClassLoader {public static void main(String[] args) {Object obj new Object();System.out.println(obj.getClass().getClassLoader());TestClassLoader t new TestClassLoader();System.out.println(t.getClass().getClassLoader());System.out.println(t.getClass().getClassLoader().getParent());System.out.println(t.getClass().getClassLoader().getParent().getParent());}}打印结果nullsun.misc.Launcher$AppClassLoader58644d46sun.misc.Launcher$ExtClassLoader6d6f6e28null注意上面第一行和第四行的null此处可不是空的意思它代表的是启动类加载器。因为启动类加载器是用C代码来实现的严格来说不属于Java类所以Java代码访问不到故返回null。第二行是应用程序类加载器第三行是扩展类加载器。双亲委派机制在介绍双亲委派机制之前先观察一下以下代码能否正确运行//自己定义的一个 java.lang包package java.lang;public class String {public static void main(String[] args) {String s new String();System.out.println(s);}}以上代码编译没有任何问题但是运行时却报错为什么提示在java.lang.String类中找不到main方法呢我这明明不是定义了吗其实问题的关键就在于类加载遵循双亲委派机制。类加载器有以下这样的层次关系当一个类在加载的时候都会先委派它的父加载器去加载这样一层层的向上委派直到最顶层的启动类加载器。如果顶层无法加载(即找不到对应的类)就会一层层的向下查找直到找到为止。 这就是类的双亲委派机制。这样做有什么好处呢这就相当于维护了一个有优先级的层级关系即总是从最顶层的父加载器开始加载。这就如同你工作中遇到了问题需要向上反馈比如先反馈给小组长然后小组长反馈给上级经理最后经理反馈给boss。然后boss感觉这问题太简单了不需要他亲自出手让经理自己解决吧然后经理又向下交给小组长。小组长一看这问题不算难人也比较热心于是就帮你把问题解决了。(可能例子不是太恰当哈意思理解即可)到此我们就明白了为什么上边的代码会报错。因为双亲委派机制的存在去加载我们自己定义的“java.lang.String”类的时候会最终委派到顶层的启动类加载器然后找到了rt.jar包下的“java.lang.String”。找到之后就直接加载rt.jar包的String类(也就是我们经常使用的那个字符串类)不再去向下查找也就加载不了我们自定义的String类了。由于rt.jar包下的String类中确实没有main方法所以才会有以上的报错信息。我们可以试想一下如果没有双亲委派机制的存在那我这段代码是不是就可以执行成功了。如果这样的话岂不是说明我可以随意覆盖rt.jar包中的类(如StringInteger类等)。这样的话将会使程序陷入混乱Java核心包中的类的安全也无法保证。
http://www.yutouwan.com/news/384662/

相关文章:

  • 举报的网站是国外的域名和空间wordpress标签美化代码
  • 网站风格包括哪些如何实现网站开发
  • 做拍拍拍拍网站南安市城乡住房建设局网站
  • wordpress后台无法登录兰州新站点seo代理
  • 网站开发加维护需要多少钱wordpress 微信注册
  • 桥东区住房和建设局网站学做网站要学什么东西
  • 网站无障碍建设标准模板网站的建设方式与方法
  • php开发网站的优势批量关键词排名查询工具
  • 永久空间网站手机app制作需要多少钱
  • 网站建设开发报价方案模板中文网站建设教程
  • 北京网站建设 云智互联电脑编程培训
  • 优化网站排名软件wordpress 手机无法访问
  • 福田商城网站制作网站开发建设及推广合同
  • 网站做树状结构有什么作用哪些域名商可以自助wordpress
  • 广州网站建设 讯度网络贵州省建设银行网站
  • 网站开发怎么人员组织推广引流网站
  • 先做网站还是先域名备案看广告得收益的app
  • 建公司网站需要自己有系统吗网页设计期末考试作品
  • 黑河哈尔滨网站建设wordpress登陆网址
  • 青岛一品网站建设wordpress 突然502
  • 网站做百度推广网站存在的问题
  • 住房城乡建设部办公厅网站PHP做网站的核心是什么
  • 什么是响应网站设计东营抖音代运营
  • 烟台专业的网站建站公司教你如何做网站
  • 网站营销案例展示查询网站服务器提供商
  • 整站优化关键词推广品牌vi形象设计公司
  • 物流那个网站做推广好北京互联网公司大厂有哪些
  • 做博客的网站有哪些制作app费用
  • 网站增长期怎么做wordpress中文免费企业模板
  • 网络营销 企业网站杭州专门做网站