成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

replace java.lang.String.equals by Xbootclasspath

jzman / 3399人閱讀

摘要:

env:
os:ubuntu 16.04 x64
openjdk8u

//java.lang.String
package java.lang;
import java.lang.StringDebugHelper;
//...
public final class String{

final char value[];//remove private
    public boolean equals(Object anObject) {
        if (this == anObject) {
            return true;
        }
        if (anObject instanceof String) {
         // {replace begin
            String anotherString = (String)anObject;
            if(StringDebugHelper.Equals.isInAttention(this) || StringDebugHelper.Equals.isInAttention(anotherString)){
                //new Throwable().getStackTrace();//not crash
                //System.out.println("xxxxx");//not crash
                new Throwable("attention:"+this).printStackTrace();
            }
            //Thread.currentThread().getStackTrace();//crash
            //new Throwable().getStackTrace();//crash
            //new Exception("uuuuuuuuuu");//crash
            //new String("ffffdxx");//not crash
            //System.out.println("xxxxx");//crash
            int n = value.length;
            return StringDebugHelper.Equals.equals(this.value, anotherString.value);
        //replace end}
        }
        return false;
    }
}
package java.lang;

//import java.util.Set;

public class StringDebugHelper{

    public static class Equals{
        public static String[] attention;
        
        
        public static boolean isInAttention(final String str){
            if(attention==null) return false;
            for(int i = 0; i < attention.length; i++){
                if(null != attention[i] && StringDebugHelper.Equals.equals(attention[i].value, str.value))
                    return true;
            }
            return false;
        }

        public static boolean equals(final char [] thiz,final char [] anotherString) {
            int n = thiz.length;
            if (n == anotherString.length) {
                char v1[] = thiz;
                char v2[] = anotherString;
                int i = 0;
                while (n-- != 0) {
                    if (v1[i] != v2[i])
                        return false;
                    i++;
                }
                return true;
            }
            return false;
        }

    
    }

}
import java.util.HashSet;
import java.util.Set;

public class StringDebugHelperTest{
    public static void main(String[] args){
        
        // to this before boot app {
        String[] st = new String[5];
        st[0] = "java";
        st[1] =  "tsogvilin";
        StringDebugHelper.Equals.attention = st;
        
        // }
        
        // app content:
        //"java".equals(new String("java"));
        "tsogvilin".equals(new String("tsogvilin"));
        
    }

}
#compile
javac -sourcepath main/src/ -d main/classes/ main/src/*.java  
javac -Xbootclasspath/p:main/classes -d test/classes/ test/src/*.java  
#run
java -Xbootclasspath/p:main/classes -cp test/classes T   
java -Xbootclasspath/p:main/classes -cp test/classes StringDebugHelperTest

real exmaple :apktool:

#replace javac cmd:

mv /usr/lib/jvm/java-8-openjdk-amd64/bin/javac /usr/lib/jvm/java-8-openjdk-amd64/bin/javac.real

cat  /usr/lib/jvm/java-8-openjdk-amd64/bin/javac
#!/bin/sh

/usr/lib/jvm/java-8-openjdk-amd64/bin/javac.real -Xbootclasspath/p:/home/z/hg_openjdk_java_net/jdk8u_jdk8u/str.eq.dbg/main/classes/ "$@"
Apktool/build.gradle:
    tasks.withType(JavaCompile) {
        options.compilerArgs += ["-Xlint:-options"]
        // add this:
        options.bootClasspath = "/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/rt.jar:/home/z/hg_openjdk_java_net/jdk8u_jdk8u/str.eq.dbg/main/classes/"  //add this
    }
//Apktool/brut.apktool/apktool-cli/src/main/java/brut/apktool/Main.java:
        // to this before boot app {
        String[] st = new String[1];
        st[0] = "resources.arsc";
        //st[1] =  "tsogvilin";
        StringDebugHelper.Equals.attention = st;
        System.out.println("rrrrrrrrrrrrrrrrrr");
        
        // }
java -Xbootclasspath/p:main/classes -cp /home/z/a/Apktool/brut.apktool/apktool-cli/build/libs/apktool-cli-all.jar  -Duser.language=en -Dfile.encoding=UTF8  brut.apktool.Main d  ~/a/game.v182815.apk -o ~/a/myoutdir

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/73154.html

相關(guān)文章

  • Java語法糖的編譯結(jié)果分析(二)

    摘要:因此,對應(yīng)地我們可以翻譯這段二進(jìn)制字節(jié)碼為這樣的代碼注意,這段代碼并不能通過編譯,因為源碼這一層是不允許直接繼承的,這個繼承過程只允許在編譯器內(nèi)部解語法糖的過程中被編譯器添加,添加之后的類才會有的訪問標(biāo)識符。 語法糖(Syntactic Sugar)的出現(xiàn)是為了降低我們編寫某些代碼時陷入的重復(fù)或繁瑣,這使得我們使用語法糖后可以寫出簡明而優(yōu)雅的代碼。在Java中不加工的語法糖代碼運(yùn)行時可...

    LeviDing 評論0 收藏0
  • 手寫Spring之DI依賴注入

    摘要:如感興趣,可移步手寫之基于動態(tài)創(chuàng)建對象手寫之基于注解動態(tài)創(chuàng)建對象今天將詳細(xì)介紹如何手寫依賴注入,在運(yùn)行過程中如何動態(tài)地為對象的屬性賦值。完成后在中會有相關(guān)的包出現(xiàn)進(jìn)行注入前需要創(chuàng)建工廠,在運(yùn)行時從工廠中取出對象為屬性賦值。 前兩篇文章介紹了關(guān)于手寫Spring IOC控制反轉(zhuǎn),由Spring工廠在運(yùn)行過程中動態(tài)地創(chuàng)建對象的兩種方式。如感興趣,可移步: 手寫Spring之IOC基于xml...

    Cruise_Chan 評論0 收藏0
  • 手寫Spring之IOC基于注解動態(tài)創(chuàng)建對象

    摘要:上一篇博客介紹了如何基于配置文件在運(yùn)行時創(chuàng)建實例對象,這篇博客將介紹基于注解方式怎樣實現(xiàn)對象的創(chuàng)建。方便測試,該類型分別創(chuàng)建兩個單例和多例的類型。注意這種為對象注入屬性值的方式耦合度較高,可根據(jù)情況使用。 上一篇博客介紹了如何基于xml配置文件在運(yùn)行時創(chuàng)建實例對象,這篇博客將介紹基于注解方式怎樣實現(xiàn)對象的創(chuàng)建。 廢話不多說,直接上代碼。 首先還是創(chuàng)建項目,由于這次不需要使用第三方的AP...

    Andrman 評論0 收藏0
  • 手寫Spring之IOC基于xml動態(tài)創(chuàng)建對象

    Spring作為Java Web最為流行的框架之一,其功能之強(qiáng)大,封裝細(xì)節(jié)之全面不用過多贅述。使用Spring的方式很簡單,不需要關(guān)注細(xì)節(jié),把對象的創(chuàng)建和對象之間的關(guān)系都交給框架來管理,僅僅做好配置文件和實現(xiàn)具體的業(yè)務(wù)邏輯即可??梢哉fSpring為我們在編寫Java Web應(yīng)用時省去了大量重復(fù)的代碼,并且可以降低對象與對象之間的耦合度。但若只是知其然,而不知其所以然,在編程時也難免會遇到各種問題,...

    monw3c 評論0 收藏0
  • IntelliJ IDEA 2017.1 JDK 8 性能調(diào)優(yōu)

    IntelliJ IDEA 問題描述 IntelliJ IDEA 在 多窗口、多項目協(xié)作開發(fā)時,MacBook Pro的散熱風(fēng)扇兇猛地轉(zhuǎn)動,相關(guān)配置如下: MacBook Pro 配置 MacBook Pro (Retina, 15-inch, Mid 2015) 型號名稱: MacBook Pro 型號標(biāo)識符: MacBookPro11,4 處理器名稱: Intel Core ...

    RobinQu 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<