当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:12:00  来源:本站整理

<b>JAVA类库的提早加载</b>[Java编程]

赞助商链接



  本文“<b>JAVA类库的提早加载</b>[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

在JAVA运行的时加载jar包类库 如果有相同的包途径,相同的类名字呈现,那么JVM能否 会报告错误呢?

当然不会! JVM只会加载最早的呈现的CLASS

首先JVM会加载 自己默许的包 然后加载 EXT目录下面的全部JAR 再到 classpath

那么 目前有2个 JAR 辨别是 kj021320.jar summer.jar 里面都有包途径cn.isto

一样有 类Jcrack.class 那么 JVM就会看哪个 类先加载到VM中就用哪个!背面读进来的 假如途径名字一样 就会丢弃!

想到以上加载方法大家会想象到什么呢?

我们首先计划一个类

//这个是专门破解的类
package cn.isto;
public class Jcrack{
public Jcrack(){}
boolean getLogin(String pwd){
 return true;
}
}

里面只有一个办法判断 登陆能否成功 直接返回一个true

把这个类打包为 kj021320.jar

下面我们再来写2个类

//这个是真正运行时刻判断登陆的类
package cn.isto;
public class Jcrack {
  public Jcrack() {
  }
  boolean getLogin(String pwd){
    return "KJ021320".equals(pwd);
  }
}
//调用登陆考证的类
package cn.isto;
public class JMain {
  public JMain() {
  }
  public static void main(String[] args){
    System.out.println(new Jcrack().getLogin("Summer"));
  }
}

很明显我们把上面2个类编译OK后 直接运行! 不用看掌握台城市打印false

但是我们再把上面kj021320.jar加载回来再运行 JMain类

系统就会显示true 简单说因为 JVM把正常用户的Jcrack类丢弃了!而加载了我们自己改正的Jcrack类!

JAVA利用就这样简单破解了!


  以上是“<b>JAVA类库的提早加载</b>[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • <b>hosts是什么 hosts文件在什么位置 若何改正hosts</b>
  • <b>在 Windows 8 中手动安装语言包</b>
  • <b>五个常见 PHP数据库问题</b>
  • Windows中Alt键的12个高效快速的利用本领介绍
  • <b>MySQL ORDER BY 的实现解析</b>
  • <b>详解MySQL存储历程参数有三种范例(in、out、inout)</b>
  • <b>Win8系统恢复出来经典的开始菜单的办法</b>
  • <b>Win8系统花屏怎么办 Win8系统花屏的办理办法</b>
  • <b>Windows 7系统下无线网卡安装</b>
  • <b>为什么 Linux不需求碎片整理</b>
  • <b>Windows 8中删除账户的几种办法(图)</b>
  • <b>教你如安在win7下配置路由器</b>
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .