相关疑难解决方法(0)

String类如何覆盖+运算符?

为什么在Java中,当String是一个类时,你能用+运算符添加字符串?在String.java代码中我没有找到该运算符的任何实现.这个概念是否违反了面向对象?

java string object

127
推荐指数
4
解决办法
3万
查看次数

= java中的运算符

有人可以解释我为什么可以这样做:

String s = "foo";
Run Code Online (Sandbox Code Playgroud)

如果没有运算符重载,这怎么可能(在这种情况下,"=")

我来自C++背景,所以解释......

java string operators

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

字符串实例化与stringbuffer实例化

我无法弄清楚是否

String ab = "hello";        //straight initialization

String ab_1 = new String ("hello_1");  //initializing using new
Run Code Online (Sandbox Code Playgroud)

两者都有效,但是

StringBuffer bfr = new StringBuffer("hi");   //works only with new
Run Code Online (Sandbox Code Playgroud)

只有在使用new创建时才有效.

为什么String可以直接实例化,但StringBuffer需要new运算符.有人可以解释我的主要原因.

java

3
推荐指数
1
解决办法
2591
查看次数

用Java连接字符串

可能重复:
为什么+使用Java中的字符串?

以下语句在Java中有效.

int a=50;
String tmp="a = ";
String b=tmp+a;
Run Code Online (Sandbox Code Playgroud)

bString类型现在包含a = 50(作为String).

虽然tmp是String类型并且a是类型int,但是进行连接(即使Java不支持运算符重载).

Java不支持运算符重载的原因之一(与其他语言一样.事实上,我对任何语言都没有深度知识).

Java不支持运算符重载.运算符重载有时是C++程序中模糊不清的原因,而Java设计团队认为它会带来更多麻烦而不是利益.

更多关于它.

该声明如何String b=tmp+a;评估?内部必须有一些等效的运算符重载概念.


只有一个问题:我们能从字面上看到它如何实现的,或者我们应该只相信" 它只是语言的一个特征 "?

我听说Java编译器使用StringBuilder/StringBuffer(使用该append()方法)来实现这一点,但我不确定.

java string operator-overloading string-concatenation

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

Java中'String'运算符的实现是什么?我可以看到这个实现?

任何人都可以告诉我Java中String的'+'运算符的确切实现.我知道这是concat运算符连接两个字符串,即使那时因为String是一个类,那么这个运算符的实现在哪里以及它是如何工作的?

java

0
推荐指数
1
解决办法
522
查看次数