亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

JAVA優化(5)

標簽:
Java

1.让工具类不可实例化
私有构造函数

2.getClass()和instance of 区别
用getClass()判断一个类是不是属于该类,是严格的判断,不存在继承关系
instance of 如果该判断的类属于该类的子类,也认为是相当的。

3.replanceAll(),中第一个表达是正则

String str = "好是好";
String  str1 = "|是|";
System.out.println(str.replaceAll("好",""));
System.out.println(str1.replaceAll("|",""));

打印结果:是 |是|
所以对特殊字符进行替换要注意

4.String,StringBuffer,StringBuilder使用场景
1)String 使用场景
在字符串不经常变化的场景可以使用,例如常量的声明,少量的变量运算等
2)StringBuffer使用场景
在频繁进行字符串运算(如拼接、替换、删除等),并且运行在多线程的环境中,则可以考虑使用StringBuffer,例如xml解析,HTTP参数解析和封装等。
3)StringBuilder类的场景
在频繁进行字符串运算(如拼接、替换、删除等),并且运行在单线程的环境中,则可以考虑使用StringBuilder例如SQL语句的拼装,JSON封装等。

5.中文排序(复杂的字不能)

String[] strs={"张三","李四","王五"};
Comparator c = Collator.getInstance(Locale.CHINA);
Arrays.sort(strs,c);
for (int i = 0; i <strs.length ; i++) {
   System.out.println(strs[i]);
}

打印:李四 王五 张三

6.谨防浅拷贝带来不必要的问题
1)map
直接赋值为浅拷贝

 HashMap  hm1 =new HashMap();
 hm1.put("name","张三");
 hm1.put("idNo","1454341541534");
 HashMap hm2 = hm1;
 hm2.put("name","zhang");
 hm2.put("idNo","4asdfasdf5");
 System.out.println("hm1  "+hm1.get("name")+"  "+hm1.get("idNo"));
 System.out.println("hm2  "+hm2.get("name")+"  "+hm2.get("idNo"));

打印结果如下:
hm1 zhang 4asdfasdf5
hm2 zhang 4asdfasdf5

利用putAll为深拷贝

HashMap  hm1 =new HashMap();
hm1.put("name","张三");
hm1.put("idNo","1454341541534");
HashMap hm3 = new HashMap();
hm3.putAll(hm1);
hm3.put("name","zhang");
hm3.put("idNo","4asdfasdf5");
System.out.println("hm1  "+hm1.get("name")+"  "+hm1.get("idNo"));
System.out.println("hm3  "+hm3.get("name")+"  "+hm3.get("idNo"));

打印结果如下:
hm1 张三 1454341541534
hm3 zhang 4asdfasdf5

點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
JAVA開發工程師
手記
粉絲
0
獲贊與收藏
3

關注作者,訂閱最新文章

閱讀免費教程

  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消