gpt4 book ai didi

java - Java中返回字符串的效率如何

转载 作者:行者123 更新时间:2023-12-02 08:45:07 25 4
gpt4 key购买 nike

由于某种原因,到目前为止我见过的所有示例函数都避免返回字符串。就 Java 而言,我是个菜鸟,所以我不确定这是否是故意的。我知道,例如在 C++ 中,返回对字符串的引用比返回该字符串的副本更有效。

这在 Java 中是如何工作的?

我对 Android 的 Java 特别感兴趣,其中资源比桌面/服务器环境更有限。

为了帮助这个问题更加集中,我提供了一个代码片段,我有兴趣在其中返回(给调用者)字符串page:

public class TestHttpGet {
private static final String TAG = "TestHttpGet";

public void executeHttpGet() throws Exception {
BufferedReader in = null;
try {
HttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet();
request.setURI(new URI("http://www.google.com/"));
HttpResponse response = client.execute(request); // actual HTTP request

// read entire response into a string object
in = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));

StringBuffer sb = new StringBuffer("");
String line = "";
String NL = System.getProperty("line.separator");
while ((line = in.readLine()) != null) {
sb.append(line + NL);
}
in.close();

String page = sb.toString();
Log.v(TAG, page); // instead of System.out.println(page);
}
// a 'finally' clause will always be executed, no matter how the program leaves the try clause
// (whether by falling through the bottom, executing a return, break, or continue, or throwing an exception).
finally {
if (in != null) {
try {
in.close(); // BufferedReader must be closed, also closes underlying HTTP connection
}
catch (IOException e) {
e.printStackTrace();
}
}
}
}
}

在上面的例子中,我可以定义:

    public String executeHttpGet() throws Exception {

而不是:

    public void executeHttpGet() throws Exception {

并返回:

        return (page); // Log.v(TAG, page);

最佳答案

Java 中的 String 或多或少对应于 C++ 中的 std::string const *。因此,它的传递成本很低,并且在创建后无法修改(String 是不可变的)。

关于java - Java中返回字符串的效率如何,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5194743/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com