LeetCode刷題記錄

1. String, StringBuilder, StringBuffer的比較

要進(jìn)行字符串的翻轉(zhuǎn),可以直接使用java的StringBuffer.reverse()
String,StringBuffer和StringBuilder的區(qū)別
String其實(shí)是一個(gè)final的類,每次修改一個(gè)String對象,其實(shí)都是從常量池分配一個(gè)新的,而不是在原來的對象上進(jìn)行修改
StringBuffer和StringBuilder在修改的時(shí)候,都是在原有的對象基礎(chǔ)上進(jìn)行修改,這點(diǎn)不同于String
StringBuffer可以在多線程的環(huán)境中保證正確運(yùn)行,而StringBuilder只能在單線程的環(huán)境中使用,不是線程安全的。但是StringBuilder在大多數(shù)實(shí)現(xiàn)下都快于StringBuffer。

2. 什么是線程安全?

線程安全問題發(fā)生的前提

  1. 線程安全首先是發(fā)生在多線程的環(huán)境中
  2. 多個(gè)線程必須操縱同一個(gè)對象,如果每個(gè)線程操縱的都是不同的對象,則不會發(fā)生線程安全問題
  3. 必然包含修改操作,如果多個(gè)線程只是讀取一個(gè)對象,那么也不存在線程安全的問題

java中哪些數(shù)據(jù)可能會被線程共享,哪些不會呢?這個(gè)需要參考jvm的內(nèi)存分配方式,一般來說,對象的成員和靜態(tài)變量會被線程共享。局部變量則不會。
java對單個(gè)對象共享的一些方式
線程安全原理性分析

  1. JVM的內(nèi)存分配策略是什么?
    Java中線程自己擁有哪些資源,共享哪些資源?
  2. java中被final類修飾的各種情況是什么意思?
  3. C++中被final類修飾的各種情況是什么意思?
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,652評論 18 399
  • 夜里雨水拍打在地上,滴答滴答的響著 耳機(jī)里播放的藍(lán)調(diào)透露著一種憂郁感。我心里面的那片小河,慢慢的泛著波瀾,我的身子...
    Aroura閱讀 336評論 0 0
  • 第一次畫,感覺很有趣
    Wei_93e3閱讀 405評論 0 0

友情鏈接更多精彩內(nèi)容