小問題大智慧

來源:互聯網
上載者:User

說到字串比較,大家都知道,但你真的知道如何比較才是最正確的嗎?

不知道的人,幾乎都是用以下方法來比較的

String str = nullif (str == null || str.equals("")) {}

這實際上是效率最低的,正確的做法是:

String str = null;if (str == null || str.isEmpty()) {}

但上述方法需要jdk在1.6以上,那麼也可以用:

String str = null;if (str == null || str.length() == 0) {}

另外str.equals("1")與"1".equals(str)不同,前者如果str為null,會報null 指標異常,而後者不會。

上述問題雖然看似簡單,但卻反映出一名程式員的編程素質和態度,在我以前的文章中曾反覆強調,一段好的代碼,不是說實現功能就完了,而是在實現功能的前提下如何能高效、穩定、健全。同樣的業務,你可能要花費1s,別人卻只需0.3s,放大到伺服器上,在高負載的情況下,別人的項目能正常運行,你的就掛了。

無論是怎樣優秀的程式員,也都是從無知到有知,誰都是從菜鳥層級一步步成長來的,但一些人在成長到一定階段後便再也無法成長的原因在於,欠缺思考、永不放棄的堅強毅力和追求理想的心態。

軟體本身代表著自動化、智能化、高效化,軟體是有代碼編寫而來的,因此代碼本身也是具有這些特徵的,一些程式員之所以顯得“苦逼”,日日夜夜寫代碼,實際根本原因在於代碼品質不高,失去了代碼本身的特色,變成了純粹體力話,不斷重複著縫縫補補、複製粘貼。將自己由一個“藝人”變成了“工人”。

所以,要想成為藝術大師,就必須從小做起,一點一滴不斷加深思考,要有不滿足於現狀,最求完美的心態。

以下,我還總結了一些例子,大家可以進一步體會下:

1.

for (int i = 0; i < size() * 2; i++) {}
for (int i = 0, stop = size() * 2; i < stop; i++) {}

2.

if (birds.elementAt(i).isGrower()) ...if (birds.elementAt(i).isPullet()) ... 
Bird bird = birds.elementAt(i);if (bird.isGrower()) ...if (bird.isPullet()) ... 

3.

TestBean bean = new TestBean();if (bean instanceof TestBean) {}
TestBean bean = new TestBean();if (bean.getClass().equals(TestBean.class)) {}

4. 用switch代替長if-else-if

String s = "";for (int i = 0; i < n; i++) {s += "#" + i;}
StringBuilder sbuf = new StringBuilder();for (int i = 0; i < n; i++) {sbuf.append("#").append(i);}String s = sbuf.toString();

但如果是

String s = "(" + x + ", " + y + ")";

會自動編譯使用StringBuilder.append(""),這樣拼字串是可以的。

5. 實體類的get、set方法,加上final

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.