Java字符串性能优化
生活随笔
收集整理的這篇文章主要介紹了
Java字符串性能优化
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
對(duì)字符串的性能進(jìn)行優(yōu)化,找出一種方法能夠以最快的時(shí)間創(chuàng)建賦值字符串。
我們使用String intern() 的方法來優(yōu)化字符串。
完整代碼
public class Optimization {public static void main(String[] args){String variables[] = new String[50000]; for( int i=0;i <50000;i++){variables[i] = "s"+i;}long startTime0 = System.currentTimeMillis();for(int i=0;i<50000;i++){variables[i] = "hello";}long endTime0 = System.currentTimeMillis();System.out.println("直接使用字符串: "+ (endTime0 - startTime0) + " ms" );long startTime1 = System.currentTimeMillis();for(int i=0;i<50000;i++){variables[i] = new String("hello");}long endTime1 = System.currentTimeMillis();System.out.println("使用 new 關(guān)鍵字:" + (endTime1 - startTime1) + " ms");long startTime2 = System.currentTimeMillis();for(int i=0;i<50000;i++){variables[i] = new String("hello");variables[i] = variables[i].intern(); }long endTime2 = System.currentTimeMillis();System.out.println("使用字符串對(duì)象的 intern() 方法: " + (endTime2 - startTime2)+ " ms");} }結(jié)果輸出
直接使用字符串: 3 ms 使用 new 關(guān)鍵字:5 ms 使用字符串對(duì)象的 intern() 方法: 10 ms由于初始值的不同,所以對(duì)比的時(shí)間不具有對(duì)比性,我們應(yīng)該在同等的條件下計(jì)算花費(fèi)的時(shí)間。
完整代碼
public class StringOptimization {public static void main(String[] args) {String variables[] = new String[50000];long startTime0 = System.currentTimeMillis();for (int i = 0; i < 50000; i++) {variables[i] = "hello";}long endTime0 = System.currentTimeMillis();System.out.println("使用字面量直接賦值字符串,花費(fèi)時(shí)間:" + (endTime0 - startTime0) + "毫秒");String variables1[] = new String[50000];long startTime1 = System.currentTimeMillis();for (int i = 0; i < 50000; i++) {variables1[i] = new String("hello");}long endTime1 = System.currentTimeMillis();System.out.println("使用字符串對(duì)象花費(fèi)時(shí)間:" + (endTime1 - startTime1) + "毫秒");String variables2[] = new String[50000];long startTime2 = System.currentTimeMillis();for (int i = 0; i < 50000; i++) {variables2[i] = new String("hello");variables2[i] = variables2[i].intern();}long endTime2 = System.currentTimeMillis();System.out.println("使用字符串對(duì)象intern()方法花費(fèi)時(shí)間:" + (endTime2 - startTime2) + "毫秒");} }結(jié)果輸出
使用字面量直接賦值字符串,花費(fèi)時(shí)間:1毫秒 使用字符串對(duì)象花費(fèi)時(shí)間:3毫秒 使用字符串對(duì)象intern()方法花費(fèi)時(shí)間:8毫秒 創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的Java字符串性能优化的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Jsoup使用选择器语法来查找元素
- 下一篇: Java 获取集合元素的值