java如何隐式创建对象?比如字符串类

java如何隐式创建对象?比如字符串类,java,string,objectinstantiation,Java,String,Objectinstantiation,我无法理解对象是如何隐式创建的 例如: String s = "implicit instantiation"; 我可以创建自己的类,其对象可以隐式创建吗?否,字符串实例化由编译器隐式处理。只有字符串和数组类具有此属性 String greeting = "Hello world!"; char[] helloArray = { 'h', 'e', 'l', 'l', 'o', '.' }; 允许隐式实例化基本包装器类型的对象,但这也是编译器处理的特殊情况。您不能使用此功能创建自己的类 Bo

我无法理解对象是如何隐式创建的

例如:

String s = "implicit instantiation";

我可以创建自己的类,其对象可以隐式创建吗?

否,字符串实例化由编译器隐式处理。只有字符串和数组类具有此属性

String greeting = "Hello world!";
char[] helloArray = { 'h', 'e', 'l', 'l', 'o', '.' };
允许隐式实例化基本包装器类型的对象,但这也是编译器处理的特殊情况。您不能使用此功能创建自己的类

Boolean b = false;
Integer i = 0;
Double pi = 3.1416;

不,字符串实例化由编译器隐式处理。只有字符串和数组类具有此属性

String greeting = "Hello world!";
char[] helloArray = { 'h', 'e', 'l', 'l', 'o', '.' };
允许隐式实例化基本包装器类型的对象,但这也是编译器处理的特殊情况。您不能使用此功能创建自己的类

Boolean b = false;
Integer i = 0;
Double pi = 3.1416;

不幸的是,你不能这样做

<>与C或C++相反,不能用java语言重载任何操作符,所以没有可能的方法来做类似< /P>的事情。
Foo myFoo = 1
对于字符串类:

String s = "implicit instantiation"
对于开发人员来说,这就是sugar sintax,在幕后是编译器执行“脏”工作,并执行类似的操作(记住有一个字符串池):



这同样适用于其他一些类型,如数组或数字包装…

不幸的是,您无法做到这一点

<>与C或C++相反,不能用java语言重载任何操作符,所以没有可能的方法来做类似< /P>的事情。
Foo myFoo = 1
对于字符串类:

String s = "implicit instantiation"
对于开发人员来说,这就是sugar sintax,在幕后是编译器执行“脏”工作,并执行类似的操作(记住有一个字符串池):



这同样适用于一些其他类型,如数组或数字包装…

对于对象的每个实例,都需要一个构造函数,而构造函数是构造和初始化方法的特殊方法。例如:

String s;  // Is not initialized and it's nos constructed.
Integer i = 3; 
Double d = 3.3d;
那么,如何在java中构造一个新对象呢?使用
新操作符轻松创建新对象

s = new String("qwe"); // New object constructed
但有一点很多新手都感到困惑。为什么我可以这样做:

String s= "asdfasd;" 

因为
String
在Java中是一个特例,您不需要像类中的所有基本变量一样添加
新操作符。例如:

String s;  // Is not initialized and it's nos constructed.
Integer i = 3; 
Double d = 3.3d;

等等。

对于对象的每个实例,您都需要一个构造函数,而构造函数是构造和初始化方法的特殊方法。例如:

String s;  // Is not initialized and it's nos constructed.
Integer i = 3; 
Double d = 3.3d;
那么,如何在java中构造一个新对象呢?使用
新操作符轻松创建新对象

s = new String("qwe"); // New object constructed
但有一点很多新手都感到困惑。为什么我可以这样做:

String s= "asdfasd;" 

因为
String
在Java中是一个特例,您不需要像类中的所有基本变量一样添加
新操作符。例如:

String s;  // Is not initialized and it's nos constructed.
Integer i = 3; 
Double d = 3.3d;

等等。

简言之:你不能。
String
是一个特殊的对象,它周围有一些语法糖——字符串文本、连接运算符,能够在
开关
情况下使用。只有字符串才有这种能力(数组也有“文字”)。简而言之,你不能。
String
是一个特殊的对象,它周围有一些语法糖-字符串文字、连接运算符,能够在
开关
情况下使用。只有字符串才有这种能力(数组也有“文字”)。我们不能也做
整数i=5
吗?@Shashwat哦,是的,让我补充一下。我们不能也做
整数i=5
吗?@Shashwat哦,是的,让我补充一下。