在学习String文字和String对象时,我发现一个事实,有两种方法可以实例化String类型的变量
//Using literals
String s1 = "text";
//Using constructor
String s2 = new String("text");
我想知道是否可以通过某种方式创建一个类,而不是使用构造函数实例化它,而可以使用文字来实例化它
这是我的意思
class Value {
int value;
//Some methods
}
Value val = 10; //Program automatically sets val.value = 10
答案 0 :(得分:1)
否,这是不可能的。 Java与之最接近的是autoboxing,您可以在其中编写如下内容:
Integer val = 10;
,编译器会自动将该赋值转换为涉及原语缓存的赋值(有一组固定的原语值可保证被缓存:布尔值true / false,字节和char值0-127,以及int值-128至127 ,As per the spec。尽管JVM可能而且几乎总是如此,但具有比其更广泛的基元缓存)。
答案 1 :(得分:0)
不。尽管您可以编写String s1 = "text";
,但是Java编译器会自动创建一个对象。这可能是误导您的原因。但是它发生在里面。
答案 2 :(得分:0)
大多数情况下都是不可能的。像您一样创建String
并分配int
值都使用了构造函数,即使我们无法直接看到它。
但是很少有这样的场景。请阅读this。可以增加您的知识:)