• Java反射-修改String常量


    /*
    * ReflectString.java
    * Version 1.0.0
    * Created on 2017年12月15日
    * Copyright ReYo.Cn
    */
    package reyo.sdk.utils.test.reflect;
    
    import java.lang.reflect.Field;
    
    public class ReflectString {
    
        public static void main(String[] args) {
            String s1 = "reyo";
            String s2 = "reyo";
            String s3 = new String("reyo");
            String s4 = new String(s1);
            System.out.println("s1==s2:" + (s1 == s2));
            System.out.println("s1==s3:" + (s1 == s3));
            System.out.println("s3==s4:" + (s3 == s4));
            try {
                Field f = String.class.getDeclaredField("value");
                System.out.print("Accessible: " + f.isAccessible());
                f.setAccessible(true);
                System.out.println(" -> " + f.isAccessible());
                char[] v = (char[]) f.get(s1);// 获取S1的内部value数组
                System.out.print("
    value:");
                System.out.println(v);
                v[0] = 'x';// 修改数组
                v = new char[1];// 目测因为是get到的是引用的复制,这个引用改变不影响原引用
                v[0] = 'y';
                System.out.print("value:");
                System.out.println(v);
    
            } catch (Exception e) {
                System.out.println(e.getMessage());
            }
            System.out.println("
    s1:" + s1 + "
    s2:" + s2 + "
    s3:" + s3 + "
    s4:" + s4);
            System.out.println("
    s1==s2:" + (s1 == s2));
            System.out.println("s1==s3:" + (s1 == s3));
            System.out.println("s3==s4:" + (s3 == s4));
        }
    }

    s1==s2:true
    s1==s3:false
    s3==s4:false
    Accessible: false -> true

    value:reyo
    value:y

    s1:xeyo
    s2:xeyo
    s3:xeyo
    s4:xeyo

    s1==s2:true
    s1==s3:false
    s3==s4:false

  • 相关阅读:
    2007上半年网络游戏企业报告总结
    2007中国网络游戏调查报告
    3G门户网总裁张向东:怎分享3G大蛋糕
    网络在线游戏开发心得(服务器端、Java)
    Apache服务器SSL配置
    详解 Windows下apache 实现 SSL
    10个既绚又实用的JQuery特效教程
    Zend Studio 快捷键
    jQuery最佳实践
    2月份13个jQuery最佳插件推荐
  • 原文地址:https://www.cnblogs.com/interdrp/p/8044744.html
Copyright © 2020-2023  润新知