java oca_OCA第1部分中的Java难题
java oca
我在業(yè)余時(shí)間正在閱讀Mala Gupta的Oracle認(rèn)證Java SE程序員助理書(shū),我對(duì)所學(xué)到的一些新知識(shí)感到驚訝。 有時(shí)候他們真的沒(méi)有道理,有時(shí)候他們說(shuō)得通,但真的讓人驚訝。 因此,在本系列文章中,我想將它們共享為“ Java Puzzlers”,聽(tīng)起來(lái)比“ Java Surprises”要酷得多。
讓我們檢查下面的代碼,看看調(diào)用空對(duì)象引用的靜態(tài)方法或字段時(shí)會(huì)發(fā)生什么。
public class Puzzler { public static int field = 1 ; public static void printField() { System.out.println(field); } public static void main(String[] args){ /* * Lets see what happens when the * reference is null. * */ Puzzler puzzler = null ; puzzler.printField(); // prints 1 System.out.println(puzzler.field); // prints 1 } }當(dāng)您嘗試猜測(cè)將會(huì)發(fā)生什么時(shí),您可以認(rèn)為在進(jìn)行方法和字段調(diào)用時(shí)會(huì)得到NullPointerException,因?yàn)橐脹](méi)有附加對(duì)象。 但是請(qǐng)記住,靜態(tài)方法和字段屬于類本身,而不屬于實(shí)例。 因此,不需要關(guān)聯(lián)的對(duì)象,您可以使用它們,并且不會(huì)因此而異常。 我們調(diào)用靜態(tài)方法的另一種方式通常是使用Puzzler.printField()形式,它可以提供更多信息。
翻譯自: https://www.javacodegeeks.com/2020/04/java-puzzlers-from-oca-part-1.html
java oca
總結(jié)
以上是生活随笔為你收集整理的java oca_OCA第1部分中的Java难题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: (linux tar安装)
- 下一篇: 灭菌炉的备案号是什么(灭菌炉的备案)