亚洲精品久久久久久第一页-人妻少妇精彩视品一区二区三区-91国产自拍免费视频-免费一级a在线播放视频正片-少妇天天日天天射天天爽-国产大屁股喷水视频在线观看-操美女骚穴抽插性爱视频-亚洲 欧美 中文字幕 丝袜-成人免费无码片在线观看

string函數的用法 string是什么意思


string函數的用法 string是什么意思

文章插圖

string函數的用法 string是什么意思

文章插圖
作者 | 平頭哥的技術博文
責編 | 屠敏
出品 | CSDN 博客

string函數的用法 string是什么意思

文章插圖
String 對象的實現
String對象是 Java 中使用最頻繁的對象之一,所以 Java 公司也在不斷的對String對象的實現進行優(yōu)化,以便提升String對象的性能,看下面這張圖,一起了解一下String對象的優(yōu)化過程 。

string函數的用法 string是什么意思

文章插圖
1. 在 Java6 以及之前的版本中
String對象是對 char 數組進行了封裝實現的對百思特網象,主要有四個成員變量:char 數組、偏移量 offset、字符數量 count、哈希值 hash 。
String對象是通過 offset 和 count 兩個屬性來定位 char 數組,獲取字符串 。這么做可以高效、快速地共享數組對象,同時節(jié)省內存空間,但這種方式很有可能會導致內存泄漏 。
2. 從 Java7 版本開始到 Java8 版本
從 Java7 版本開始,Java 對String類做了一些改變 。String類中不再有 offset 和 count 兩個變量了 。這樣的好處是String對象占用的內存稍微少了些,同時 String.substring 方法也不再共享 char,從而解決了使用該方法可能導致的內存泄漏問題 。
3. 從 Java9 版本開始
將 char 數組改為了 byte 數組,為什么需要這樣做呢?我們知道 char 是兩個字節(jié),如果用來存一個字節(jié)的字符有點浪費,為了節(jié)約空間,Java 公司就改成了一個字節(jié)的byte來存儲字符串 。這樣在存儲一個字節(jié)的百思特網字符是就避免了浪費 。
在 Java9 維護了一個新的屬性 coder,它是編碼格式的標識,在計算字符串長度或者調用 indexOf 函數時,需要根據這個字段,判斷如何計算字符串長度 。coder 屬性默認有 0 和 1 兩個值,0 代表Latin-1(單字節(jié)編碼),1 代表 UTF-16 編碼 。如果 String判斷字符串只包含了 Latin-1,則 coder 屬性值為 0 ,反之則為 1 。

string函數的用法 string是什么意思

文章插圖
String 對象的創(chuàng)建方式
1、通過字符串常量的方式
String str= "pingtouge"的形式,使用這種形式創(chuàng)建字符串時,JVM 會在字符串常量池中先檢查是否存在該對象,如果存在,返回該對象的引用地址,如果不存在,則在字符串常量池中創(chuàng)建該字符串對象并且返回引用 。使用這種方式創(chuàng)建的好處是:避免了相同值的字符串重復創(chuàng)建,節(jié)約了內存 。
2、String構造函數的方式
String str = new String("pingtouge")的形式,使用這種方式創(chuàng)建字符串對象過程就比較復雜,分成兩個階段,首先在編譯時,字符串pingtouge會被加入到常量結構中,類加載時候就會在常量池中創(chuàng)建該字符串 。然后就是在調用new時,JVM 將會調用String的構百思特網造函數,同時引用常量池中的pingtouge字符串,在堆內存中創(chuàng)建一個String對象并且返回堆中的引用地址 。
了解了String對象兩種創(chuàng)建方式,我們來分析一下下面這段代碼,加深我們對這兩種方式的理解,下面這段代碼片中,str是否等于str1呢?
String str = "pingtouge";String str1 = new String("pingtouge");system.out.println(str==str1) 我們逐一來分析這幾行代碼,首先從String str = "pingtouge"開始,這里使用了字符串常量的方式創(chuàng)建字符串對象,在創(chuàng)建pingtouge字符串對象時,JVM會去常量池中查找是否存在該字符串,這里的答案肯定是沒有的,所以JVM將會在常量池中創(chuàng)建該字符串對象并且返回對象的地址引用,所以str指向的是pingtouge字符串對象在常量池中的地址引用 。


以上關于本文的內容,僅作參考!溫馨提示:如遇健康、疾病相關的問題,請您及時就醫(yī)或請專業(yè)人士給予相關指導!

「愛刨根生活網」www.malaban59.cn小編還為您精選了以下內容,希望對您有所幫助: