相关疑难解决方法(0)

有没有合理的理由在Java中的数字类上使用new和构造函数?

在Java中是否有任何合理的理由

Long l = new Long(SOME_CONSTANT)
Run Code Online (Sandbox Code Playgroud)

这会创建一个额外的对象并被FindBugs标记,这显然是一种不好的做法.我的问题是,是否有充分的理由这样做?

我之前问过有关String构造函数的问题并得到了一个很好的答案,但这个答案似乎并不适用于数字.

java constructor numbers

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

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

对象问题.是否使用构造函数?

我是Java的新手,我对使用构造函数有一些疑问:

Map<String, Object> map = new HashMap<String, Object>();
        map.put("one", new String("Hello"));//1
        map.put("two", "world");//2
Run Code Online (Sandbox Code Playgroud)

哪个陈述更加糟糕?有什么区别?哪一个是最好的?

java string object map

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

Java字符串创建和字符串池

使用关键字new创建String时,它使用带有String文字的构造函数创建一个新的String对象.

在调用String构造函数之前,文字是否存储在常量池中?

String hello = new String("Hello");
String literal = "Hello";             //Does "Hello" already exist in the pool
                                      //or is it inserted at this line?
Run Code Online (Sandbox Code Playgroud)

编辑

在"OCA Java SE 7程序员I认证指南"中,Mala Gupta写道:

public static void main(String[] args)
{
    String summer  = new String("Summer");   // The code creates a new String object with the value "Summer". This object is not placed in the String constant pool.
    String summer2 = "Summer"                // The code creates a new String object with the …
Run Code Online (Sandbox Code Playgroud)

java string

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

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

==,equals()和instanceof()之间的区别

String s=new String("Computer");
if(s=="Computer")
    System.out.print("equals A");
if(s.equals("Computer"))
    System.out.print("Equal B");
Run Code Online (Sandbox Code Playgroud)

输出是 Equal B

现在为什么 ==不生产equals A

是什么instanceof

java string string-comparison

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

为什么不可变的新String("fish")!= new String("fish")?

我记得读过一篇可能在Bloch的Effective Java中的部分,它说大多数情况下,在哪里

String a = "fish";
String b = "fish";
Run Code Online (Sandbox Code Playgroud)

在大多数情况下,a == b因为字符串是不可变的.但是由于临时构造对象或其他一些东西,新的String("fish")会产生一个独特的对象引用.

我通过Bloch章节了解了equals(),不变性和对象创建,但是找不到这一点我记得!! 撕掉我的头发,有没有人记得这是什么原因的描述?它甚至可能不在EJ中,但我想找到它.提示:这解释的是我的实际问题.

java puzzle immutability effective-java

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

为什么要使用new创建String对象

可能重复:
Java字符串:"String s = new String("silly");"
Java中表达式"new String(...)"的目的是什么?

有两种方法可以创建String对象:

1)在String中使用literal s ="hello"(创建一个对象)
2)在String中使用new s = new String("hello")(创建两个对象)

我想知道为什么我需要采取方法?

java string

0
推荐指数
2
解决办法
2943
查看次数

字符串[= new String vs =""]

所以我的问题是关于声明和分配字符串.

我通常声明字符串的方式是执行以下操作:

String s1 = "Stackoverflow";
Run Code Online (Sandbox Code Playgroud)

然后,如果我需要更改s1的值,我会执行以下操作:

s1 = "new value";
Run Code Online (Sandbox Code Playgroud)

今天我找到了另一种方法,然后声明一个字符串就像:

String s2 = new String("Stackoverflow");
Run Code Online (Sandbox Code Playgroud)

然后更改值将是:

s2 = new String("new value");
Run Code Online (Sandbox Code Playgroud)

我的问题是两者之间有什么区别,还是只是优惠.从第四行查看代码

s2 = new String ("new value"); 
Run Code Online (Sandbox Code Playgroud)

我假设这样做会创建一个新的内存位置,然后s2指向它,所以我怀疑它会用于更改值,但我可以看到它在声明字符串时被使用.

java string

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

两个字符串语句的区别

这两种说法到底有什么区别

String s1="abc";
String s2=new String("abc");
Run Code Online (Sandbox Code Playgroud)

据我所知,第一个语句将在字符串池中创建一个对象,即 s1 将冷藏它。在第二个语句中,它将创建两个对象,因为我使用了 new 关键字,而 s2 将引用字符串池中的对象

现在,如果我一个接一个地执行这两个语句。因为第一个语句对象“abc”将在字符串池中,并且执行第二个语句 s2 将引用字符串池中已经存在的对象,如果我执行 s1= =s2 它应该返回 true 但是它返回 false。

你能解释一下为什么吗?

java

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