java - 我的代码为什么会OutOfMemory
高洛峰
高洛峰 2017-04-17 11:28:53
0
1
245

为什么这样写会出现OutOfMemory错误,而第二段那样写就不会?

URL url = new URL(urlStr); HttpURLConnection urlConn = (HttpURLConnection) url.openConnection(); BufferedReader buffer = new BufferedReader(new InputStreamReader(urlConn.getInputStream())); line = buffer.readLine(); while(line != null){ sb.append(line); }
URL url = new URL(urlStr); HttpURLConnection urlConn = (HttpURLConnection) url.openConnection(); BufferedReader buffer = new BufferedReader(new InputStreamReader(urlConn.getInputStream())); while ((line = buffer.readLine()) != null) { sb.append(line); }
高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

reply all (1)
刘奇

第一段:

line = buffer.readLine(); while (line != null){ sb.append(line); }

line 的值始终不变,这是一个死循环,所以 sb 会越来越大。

第二段:

while ((line = buffer.readLine()) != null) { sb.append(line); }

line 的值会不断改变,最后读到流的末尾,readLine()会返回null,于是循环结束。

    Latest Downloads
    More>
    Web Effects
    Website Source Code
    Website Materials
    Front End Template
    About us Disclaimer Sitemap
    php.cn:Public welfare online PHP training,Help PHP learners grow quickly!