可能重复:
Java字符串:"String s = new String("silly");"
Java中表达式"new String(...)"的目的是什么?
有两种方法可以创建String对象:
1)在String中使用literal s ="hello"(创建一个对象)
2)在String中使用new s = new String("hello")(创建两个对象)
我想知道为什么我需要采取方法?
我在Kathy Sierra的书中读到,当我们使用像String这样的新运算符创建String时s = new String("abc")在这种情况下,因为我们使用new关键字,Java将在普通(非池)内存中创建一个新的String对象,并且s将参考它.此外,文字"abc"将被放置在池中.
intern()表示如果String池已包含字符串,则返回池中的字符串.否则,将String对象添加到池中,并返回对此String对象的引用.
如果使用new创建的字符串"abc"也将字符串放在池中,那么如果字符串池包含字符串,则intern()表示返回池中的字符串,否则将字符串对象添加到池中.
另外我想知道我们是否使用new创建一个String然后实际创建了多少个对象?
我在项目中看到了java代码,它从各种参数构造一个文件名.java代码是这样的
String file = null;
String fileDirSeperator = System.getProperty("file.separator");
String pwd = System.getProperty("user.dir");
file = pwd + fileDirSeperator + "properties" + fileDirSeperator + folder_name + file_name;
Run Code Online (Sandbox Code Playgroud)
我想知道我是否应该StringBuffer代替你String.我知道将任何内容附加到String会创建新对象,所以我想我应该StringBuffer.
我可以知道你的建议吗?
也,
file = pwd + fileDirSeperator + "properties" + fileDirSeperator + folder_name + file_name;
Run Code Online (Sandbox Code Playgroud)
在上面的文件名构造中,是否会创建6个对象(每个变量一个)?
我在Java Maven项目中工作..bat项目的根目录中有一个文件调用Java类,其中包含一些类似这样的参数:
java my.package.MyClass abc hi 1
Run Code Online (Sandbox Code Playgroud)
现在,当我这样做时,我的项目jar就构建在该项目的目标目录中mvn clean install.当我运行该.bat文件时,它给出了以下错误
Error: Could not find or load main class my.package.MyClass
Run Code Online (Sandbox Code Playgroud)
Project pom.xml仅包含jar作为依赖项.
有人可以帮我解决这个问题.我需要做些什么pom.xml才能让它发挥作用.