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

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

如何理解繞過編譯運行

項目是先編譯,在編譯期間為類分配資源,編譯后生成.class文件,運行是運行已經編譯好的文件。 問:那如何理解繞過編譯運行呢? 老師的意思并不是真正的繞過,而是,eclipse你點run的時候,是編譯運行一起來,而老師的操作是,我不需要你編譯了,因為第一次我就編譯運行了,我現在拿編譯好的.class文件,直接運行,不需要再次編譯,因為編譯好的文件沒有泛型的概念,所以老師可以任意輸入類型然后運行而沒有報錯。這是我自己的理解。

正在回答

3 回答

list<string>里面的string只是在編譯的時候用來檢測放入的數據類型是否正確,編譯成class的時候已經去掉string了,你再通過反射進行添加的時候已經沒有限制了。

0 回復 有任何疑惑可以回復我~

反射做了什么:反射使代碼的靈活性提高了;

就相當于人的逆向思維;

0 回復 有任何疑惑可以回復我~

我覺得不是這個意思,我idea直接運行的,其中就包括了生成字節碼這一環節,總結就是,依然走正常的編譯流程,通過反射的方法,只是不會再報錯而已。

0 回復 有任何疑惑可以回復我~
#1

Nomo_Air 提問者

編譯的過程是生成.class文件的過程,idea的運行是編譯+運行。比如我們想用Util這個jar包。你會發現包下邊都是.class結尾的文件,你可以用這個包下的方法,也就是說你用List,Map這些方法都是人家給你編譯好的.class文件,你可以用它相關的方法,老師演示的int.class。就是這個意思,通過反射可以拿到的是這個類對應一些東西,如方法,參數這些,編譯后的文件沒有泛型的約束,也就是.class文件沒有泛型的約束,所以,你用反射拿到這個方法對應的.class。然后運行這個.class。你就繞過了泛型約束,不知道你是怎么理解編譯和運行,還有反射究竟做了什么。
2017-08-07 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

如何理解繞過編譯運行

我要回答 關注問題
微信客服

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

幫助反饋 APP下載

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

公眾號

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