java字符串加減運(yùn)算 為什么說java的String相加減效率低?
為什么說java的String相加減效率低?由于string是一個(gè)不可變的變量,為了保證線程的安全,采用了不可變的設(shè)計(jì)模式,所以每次對string進(jìn)行加減操作,都會(huì)生成一個(gè)新的對象。經(jīng)過多次加法或減法
為什么說java的String相加減效率低?
由于string是一個(gè)不可變的變量,為了保證線程的安全,采用了不可變的設(shè)計(jì)模式,所以每次對string進(jìn)行加減操作,都會(huì)生成一個(gè)新的對象。經(jīng)過多次加法或減法運(yùn)算,會(huì)產(chǎn)生許多新的對象,占用內(nèi)存,影響程序性能。因此,對于字段字符串的加法或減法,通常使用StringBuffer和StringBuilder,其中StringBuffer是線程安全的。StringBuilder不是線程安全的。StringBuffer為每個(gè)方法使用synchronized,以確保線程安全。