String的substring()方法導致的內存泄露問題

JDK 6的實現

String(int offset, int count, char value[]) {this.value = value;this.offset = offset;this.count = count;
}public String substring(int beginIndex, int endIndex) {//check boundaryreturn  new String(offset + beginIndex, endIndex - beginIndex, value);
}

示例:?

String string = "abcdef";
String subString = string.substring(1, 3);
string = null;

最后雖然將String賦值為null,但是subString仍然引用了最初的string,將不會被垃圾回收?。

在JDK 7之后,String的實現

public String(char value[], int offset, int count) {//check boundarythis.value = Arrays.copyOfRange(value, offset, offset + count);
}public String substring(int beginIndex, int endIndex) {//check boundaryint subLen = endIndex - beginIndex;return new String(value, beginIndex, subLen);
}

Arrays.copyOfRange將會拷貝一份新的數組,不使用之前的數組。就不會發生上面的內存泄露的問題了。?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/10574.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/10574.shtml
英文地址,請注明出處:http://en.pswp.cn/web/10574.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

r語言數據分析案例-北京市氣溫預測分析與研究

一、選題背景 近年來,人類大量燃燒煤炭、天然氣等含碳燃料導致溫室氣 體過度排放,大量溫室氣體強烈吸收地面輻射中的紅外線,造 成溫室效應不斷累積,使得地球溫度上升,造成全球氣候變暖。 氣象溫度的預測一直以來都是…

[算法][差分][延遲相差][leetcode]2960. 統計已測試設備

題目地址: https://leetcode.cn/problems/count-tested-devices-after-test-operations/description/ 解法一:暴力解法 class Solution {public int countTestedDevices(int[] batteryPercentages) {//特殊條件判斷if(null batteryPercentages || ba…

JavaScript DOM 對元素進行的操作

DOM(Document Object Model)是一種用于訪問和操作HTML和XML文檔的編程接口。JavaScript通過DOM提供的方法和屬性可以對網頁的元素進行各種操作,比如修改元素的內容、樣式、屬性等。 下面是一些常見的對DOM元素的操作以及相應的代碼示例&…

@RequestMapping path正則規范

RequestMapping 注解是 Spring MVC 中用于映射 HTTP 請求的注解之一。它可以用于處理各種 HTTP 請求,包括 GET、POST、PUT、DELETE 等,并且可以指定請求的路徑、請求方法、請求參數等信息。 在使用 RequestMapping 注解時,可以使用正則表達式…

51單片機入門:串口通信

串行通信的初步認識 通信方式分類 1、按照數據傳送方式: 并行通信:通信時數據的各個位同時傳送,可以實現字節為單位的通信。 但是通信線多,占用資源多,成本高。 串行通信:一次只能發送一位&#xff0c…

python把png轉成jpg

在Python中,你可以使用PIL(Python Imaging Library,也稱為Pillow)庫來讀取PNG圖片并將其轉換為JPG格式。下面是一個簡單的示例代碼: from PIL import Image# 打開PNG圖片 png_image Image.open(input.png)# 保存為JP…

微軟exchange郵箱發送

使用java發送exchange類型的郵件&#xff0c;foxmail中配置如下圖&#xff1a; 需要的maven依賴如下&#xff1a; <dependency><groupId>com.microsoft.ews-java-api</groupId><artifactId>ews-java-api</artifactId><version>2.0</ve…

PCIE協議-2-事務層規范-Message Request Rules

2.2.8 消息請求規則 本文檔定義了以下幾組消息&#xff1a; INTx 中斷信號電源管理錯誤信號鎖定事務支持插槽電源限制支持廠商定義消息延遲容忍度報告&#xff08;LTR&#xff09;消息優化緩沖區沖洗/填充&#xff08;OBFF&#xff09;消息設備就緒狀態&#xff08;DRS&#…

【系統架構師】-案例篇(八)數據流圖

數據流&#xff1a;數據流是系統中數據的流動&#xff0c;它可以是輸入、輸出或存儲在系統中的數據。 數據處理過程&#xff1a;數據處理過程是對數據進行處理的單元&#xff0c;可以是一個物理設備或軟件模塊。 數據存儲&#xff1a;數據存儲是系統中存儲數據的單元&#xff0…

焦作定制在線教育系統上線,小學英語教案怎么寫?教案要怎么下筆?

說到小學英語這也是當前&#xff0c;學生們的重點&#xff0c;那作為配套的輔導機構&#xff0c;要怎么寫教案?這也是需要關注的地方&#xff0c;因為教案關系著教學&#xff0c;有了它學生們上課才會更有效率&#xff0c;所以&#xff0c;會寫教案也是上課的第一步。 教案要怎…

小紅書·電商運營課:小紅書開店流程,小紅書電商如何運營(18節視頻課)

課程目錄 第1節課:學習流程以及后續實操流程注意事項 第2節課:小紅書店鋪類型解析以及開店細節 第3節課:小紅書電商運營兩種玩法之多品店鋪解析 第4節課:小紅書電商運營兩種玩法之單品店鋪解析 第5節課:選品課(多品類類目推薦) 第6節課:選品課(多品類類目推薦) 第7節課:…

百度GL地圖實現某一段路的路況(new BMapGL.DrivingRouteLine)

功能描述&#xff1a; 1.百度地圖實現點擊地圖出現起點&#xff0c;再次點擊出現終點&#xff08;起點終點能拖動&#xff09;繪制完終點后獲取該路的路況并且起點和終點可以拖動實現實時更新&#xff08;新繪制的路段的&#xff09;路況 2.地點搜索 效果如下&#xff1a; 關鍵…

Springboot+Vue項目-基于Java+MySQL的制造裝備物聯及生產管理ERP系統(附源碼+演示視頻+LW)

大家好&#xff01;我是程序猿老A&#xff0c;感謝您閱讀本文&#xff0c;歡迎一鍵三連哦。 &#x1f49e;當前專欄&#xff1a;Java畢業設計 精彩專欄推薦&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; &#x1f380; Python畢業設計 &…

Web自動化-日志收集

目標 1. 理解日志的相關概念 2. 掌握日志的基本用法 3. 掌握日志的高級用法 一、日志相關概念 目標 1. 了解日志的概念 2. 理解日志的作用 3. 掌握常見的日志級別 1. 日志 概念&#xff1a;日志就是用于記錄系統運行時的信息&#xff0c;對一個事件的記錄&#xff1b…

ffmpeg解析rtsp流獲取視頻的寬高

要使用FFmpeg來解析RTSP流并獲取視頻的寬度和高度,你可以使用avformat_find_stream_info函數來獲取流的信息,然后從AVStream結構體中讀取視頻的寬度和高度。以下是一個簡單的示例代碼: #include <libavformat/avformat.h> int main(int argc, char *argv[]) {AVForm…

ppt轉pdf的java實現

一、實現方式 java采用jacob包的功能&#xff0c;把ppt演示文稿轉換為pdf。 支持文件格式&#xff1a;pptx,ppt 二、事先準備 1、依賴于office&#xff0c;需安裝office辦公軟件 2、需要下載一個jacob-1.20-x64.dll的文件&#xff0c;放到java的bin目錄下。 文件可以網上搜…

電影網站|基于SSM+vue的電影網站系統(源碼+數據庫+文檔)

電影網站 目錄 基于SSMvue的電影網站系統 一、前言 二、系統設計 三、系統功能設計 1 系統功能模塊 2 管理員功能模塊 四、數據庫設計 五、核心代碼 六、論文參考 七、最新計算機畢設選題推薦 八、源碼獲取&#xff1a; 博主介紹&#xff1a;??大廠碼農|畢設布道…

Linux sliplogin命令教程:如何使用sliplogin命令建立SLIP服務器(附實例詳解和注意事項)

Linux sliplogin命令介紹 sliplogin&#xff08;Serial Line Internet Protocol Login&#xff09;命令用于將SLIP接口加入標準輸入&#xff0c;把一般終端機的連線變成SLIP連線。通常可用來建立SLIP服務器&#xff0c;讓遠端電腦以SLIP連線到服務器。 Linux sliplogin命令適…

貪心算法-----檸檬水找零

今日題目&#xff1a;leetcode860 題目鏈接&#xff1a;點擊跳轉題目 分析&#xff1a; 顧客只會給三種面值&#xff1a;5、10、20&#xff0c;先分類討論 當收到5美元時&#xff1a;不用找零&#xff0c;面值5張數1當收到10美元時&#xff1a;找零5美元&#xff0c;面值5張數…

未授權訪問:JBoss未授權訪問漏洞

目錄 1、漏洞原理? 2、環境搭建 3、未授權訪問 4、利用jboss.deployment getshell 防御手段 今天繼續學習各種未授權訪問的知識和相關的實操實驗&#xff0c;一共有好多篇&#xff0c;內容主要是參考先知社區的一位大佬的關于未授權訪問的好文章&#xff0c;還有其他大佬…