「华为」一篇有趣的Java class
文章图片
文章图片
前言:本文主要想讲一下Java虚拟机的故事 ,可能有点偏门 , 不妥之处欢迎留言交流 。
第一回 陌生警察
我出生在C盘下面一个很深层次的目录下 ,也不知道是谁把我放到这里的 。
我一直在睡觉 , 外边的日出日落 , 风雨雷电和我一点关系都没有 。
直到有一天 , 有个家伙咣咣咣砸我房门把我叫醒 。
这个家伙穿着像警察的制服 ,左手拿着一个对讲机 ,右手递过来他的工作证: \"你好 ,我是Classloader 请问你是Account类吗\"
\"是啊 ,怎么了?\"
这个Classloader 没回答我 ,反而拿起对讲机:
\"头儿 , 你看看你能不能装载这个Account类?”
对讲机那头好像也在问他的上司 , 过了半天 , 终于有了回音:
\"我装载不了 ,我的上级也说了 , 他们也装载不了 ,你来干吧\"
\"那就报数吧~” 我这次注意到旁边站着另外一个笑眯眯的小个子 。
\"报什么数?\" 我一脸诧异 。
\"唉 , 果然没有被装载过 ,你是个class 文件 , 当然要报文件开头的那几个数了 ,就是Java 他爸James Gosling 在jdk 1.0时确定的那个数啊\"
\"奥 ,我看看 , 0xCAFEBABE\"
\"不错 ,是个java 类 ,把你后边的两个数也报一下\" ,小个子继续问
\"50,0\"
\"看来版本不高啊 ,是jdk 1.6编译出来的啊\" , 小个子接着说 \"最新的虚拟机都1.8了 都函数式了 , 你造不?”
我哪里知道? 我这才模模糊糊的回想起来 ,好像是有个什么javac 把我创建出来 , 扔到了这个屋子里 。
\"现在奉命带你去Java 虚拟机 有人需要你的帮助\"这个Classloader 态度冷冰冰的 ,我不喜欢他 。
\"大哥 , 你们咋找到我的?\" 我决定和小个子套近乎 。
\"那还不简单 ,我们老板有个列表 ,上面列举着所有应该检查的目录 , 我们顺藤摸瓜 , 一个一个找 , 肯定能找到\"
\"那万一找不到咋办?\"
\"基本不可能 ,你看老板给我们的目录列表中有 C:\\workspace\\myTaobao\\bin ,我们在下面再找三级 com/mytaobao/domain ,这不就找到你了吗 ,
Account.class话说回来 ,万一真找不到 ,将来在执行时会抛出ClassNotFound异常了 那不归我们管\"
我后来才知道 ,我的全名其实叫做com.mytaobao.domain.Account !
\"来来来 ,让我验证一下 ,你这class编译的对不对\", 小个子拿出一个放大镜
\"恩 ,常量池 访问标识 ,字段 , 方法... 看起来没有问题“,小个子对Classloader说 。
被人拿着放大镜看 , 这种感觉极为不爽 。
\"走 ,去虚拟机\" ,Classloader还是冷冰冰的 。
这哥俩不容我带任何东西 ,便把我推上车 , 飞奔向我没听说过的“虚拟机” 。
第二回 刺探信息
我感到前途未卜 ,但也不能坐以待毙 ,一定得多了解信息 。
\"大哥 ,你叫什么名字\",我看小个子还算和气 。
\"我就是大名鼎鼎的文件验证器了 ,能管很多事\"
\"那刚才他为啥还得请示上级呢\",我用眼神指了一下开车的ClassLoader
文件验证器的声音一下子就压低了:
\"你不知道 , 说来话长 ,我们之前出现过事故 , 有个黑客写了个类java.lang.String 和我们老板手下有一个干活最卖力的员工名字一模一样 , 只是这个黑客类里边竟然有格式化硬盘的代码 , 我们的小兵Classloader 不明就里 , 就把这个黑客类给先装载了 , 也执行了 ,最后的结果 , 唉 , 很惨的... \"
推荐阅读
- 『华为』华为羡慕不已!全球单品销量TOP10小米独占三席,红米Note8高居第二
- 「麒麟980」华为旗舰跌至3199,配有麒麟980+40W快充+徕卡四摄,销量依旧惨淡
- 『摄像头』华为P40 Pro还没捂热,又一款新品重磅推出?网友期待早日体验
- 华为荣耀:0-1999元手机性价比排名出炉,可能对你有用!
- 叽歪数码P30Pro跌至“新低价”,网友:终于等到了,华为再亮剑
- 华为:华为最强神秘新旗舰来了! 首发鸿蒙OS系统+屏下摄像头: 售价或破万
- 「麒麟990」华为旗舰一降再降,徕卡+麒麟990,网友:终于等到你
- 阿里巴巴■公有云竞争格局:阿里云一枝独秀,华为实现弯道超车
- 「华为」2020年全球十大畅销机型:没有一部是华为,唯独这个国产品牌上榜
- 『』疑似华为Mate40工程机照片曝光,屏下摄像头和鸿蒙系统稳了?