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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

請問如下代碼是為什么?,非常感謝

請問如下代碼是為什么?,非常感謝

ibeautiful 2022-10-20 15:15:38
//僅用于測試,無任何業務public class DateFormat2 {    public static SimpleDateFormat parse(){        SimpleDateFormat  adf=new SimpleDateFormat ();      return adf}}//多線程測試上述方法,局部變量應該在線程棧中,每個線程訪問該方法后都new一個對象,應該是不同的引用地址,但結果卻不是,測試方法如下public class Test {  public static class TestSimpleDateFormatThreadSafe extends Thread {       @Override       public void run() {           while(true) {               try {                   this.join(2000);               } catch (InterruptedException e1) {                   e1.printStackTrace();               }                   try {System.out.println(this.getName()+":"+DateFormat2.parse());} catch (ParseException e) {e.printStackTrace();}           }       }      }public static void main(String[] args) throws ParseException {for (int i = 0; i <3; i++) {new TestSimpleDateFormatThreadSafe().start();}}}
查看完整描述

2 回答

?
慕標5832272

TA貢獻1966條經驗 獲得超4個贊

這個問題的關鍵是不是在于,靜態方法中定義的內部變量是否屬于類或類實例共享級別?  如果是,那么這個是不就相當于public static SimpleDateFormat adf = new SimpleDateFormat();

查看完整回答
反對 回復 2022-10-24
?
aluckdog

TA貢獻1847條經驗 獲得超7個贊

說明你的例子 是不同的SimpleDateFormat對象
但是他們的hashCode()相同 


查看完整回答
反對 回復 2022-10-24
  • 2 回答
  • 0 關注
  • 127 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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