首页 新闻 会员 周边 捐助

string作为final类是怎么对系统安全进行保护的

0
悬赏园豆:5 [已解决问题] 解决于 2018-04-25 17:46

string作为final类,不能有任何子类,这是对系统安全性的保护,能举个例子,或者说说是怎么保护的么

小光的主页 小光 | 小虾三级 | 园豆:1766
提问于:2018-04-23 09:54
< >
分享
最佳答案
0

首先String是不可变的关键都在底层的实现,而不是一个final。假如有这么一段代码

 public static void main(String[] args) {  
  
        String a, b, c;  
        a = "test";  
        b = a;  
        c = b;  
        String processA = processA(a);  
        String processB = processB(b);  
        String processC = processC(c);  
        System.out.println(processA);  
        System.out.println(processB);  
        System.out.println(processC);  
    }  
      
    static String processA(String str){  
        return str + "A";  
    }  
      
    static String processB(String str){  
        return str + "B";  
    }  
      
    static String processC(String str){  
        return str + "C";  
    }  

我们本意是想分别输出testA,testB,testC.试想一下String是可变的。那结果可能是testA,testAB,testABC .这也是一种保护。

收获园豆:5
ʚ一只咩ɞ | 初学一级 |园豆:169 | 2018-04-23 10:07

有道理,还有其他方面的保护么

小光 | 园豆:1766 (小虾三级) | 2018-04-23 10:17
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册