相关疑难解决方法(0)

为什么字符串在Java和.NET中不可变?

为什么他们决定在Java和.NET(以及其他一些语言)中使字符串不可变?他们为什么不让它变得可变?

.net java string mutable

189
推荐指数
9
解决办法
4万
查看次数

Java继承,扩展类如何影响实际类

我正在审查Sun认证研究指南,并且有一篇描述最终修饰符的段落.它说

"如果程序员可以自由扩展String类文明,因为我们知道它可能会崩溃"

他什么意思 ?如果可以扩展String Class ...我只是没有一个名为MyString的类继承了所有的Strings属性.如何通过仅扩展它来以任何方式更改实际的String类?

非常感谢您的回答

java inheritance final

8
推荐指数
2
解决办法
683
查看次数

为什么数组不引用与字符串相同的对象?

如果在不使用"new"关键字的情况下声明它们,则对同一对象的字符串引用,如下所示:

String s1 = "Some string";
String s2 = "Some string";

System.out.println(s1 == s2); 
//prints true because 
//they reference to the same object
Run Code Online (Sandbox Code Playgroud)

但是,与我的预期相反,这与数组不起作用:

char[] anArray = {'A', 'r', 'r', 'a', 'y'};
char[] oneArray = {'A', 'r', 'r', 'a', 'y'};
System.out.println("anArray == oneArray : " + (anArray == oneArray));
//prints false
Run Code Online (Sandbox Code Playgroud)

我们没有明确提到它们是"新"数组,为什么它们不引用堆上的同一个对象呢?

java arrays reference

4
推荐指数
1
解决办法
110
查看次数

Java中一些有趣的反射代码

我希望我写这篇文章,但我只是遇到过它.它有一行代码可以读取System.out.println("meep");并打印,令人抓狂Nutn.

import java.lang.reflect.*;
import java.util.*;

public class SomethingFun {
  public static void main(String[] args) throws java.lang.Exception {
    doSomething("meep");
    System.out.println("meep");
  }

  public static void doSomething(String s) throws java.lang.Exception {
    Field privateStringField = String.class.getDeclaredField("value");
    privateStringField.setAccessible(true);
    Field modifiersField = Field.class.getDeclaredField("modifiers");
    modifiersField.setAccessible(true);

    // This line is where the trouble is:
    modifiersField.setInt(privateStringField, privateStringField.getModifiers() & ~Modifier.FINAL);

    privateStringField.set(s, new char[] {'N', 'u', 't', 'n'});
  }
}
Run Code Online (Sandbox Code Playgroud)

我已经收集了一些关于反思课程的内容 - 我怀疑它是以某种方式搞乱实习.有人能否了解这里发生的事情?

特别是,这条线 modifiersField.setInt(privateStringField, privateStringField.getModifiers() & ~Modifier.FINAL); 是如此令人困惑.

java reflection

2
推荐指数
1
解决办法
140
查看次数

标签 统计

java ×4

.net ×1

arrays ×1

final ×1

inheritance ×1

mutable ×1

reference ×1

reflection ×1

string ×1