java線程池有幾種 Java中的注解到底是如何工作的?
Java中的注解到底是如何工作的?注解是用來描述Java類的,可以自定義注解,然后通過反射獲取注解執(zhí)行指定的動(dòng)作。舉個(gè)簡(jiǎn)單的例子這樣就可以通過反射來獲取到一些元信息了,相當(dāng)于配置和業(yè)務(wù)邏輯實(shí)現(xiàn)了分離。
Java中的注解到底是如何工作的?
注解是用來描述Java類的,可以自定義注解,然后通過反射獲取注解執(zhí)行指定的動(dòng)作。
舉個(gè)簡(jiǎn)單的例子
這樣就可以通過反射來獲取到一些元信息了,相當(dāng)于配置和業(yè)務(wù)邏輯實(shí)現(xiàn)了分離。
當(dāng)然這個(gè)自定義注解還需要依賴一些特定的注解,我們稱為元注解。一共有5種:
@Retention:存活的周期
RetentionPolicy.SOURCE
保留在源碼階段RetentionPolicy.CLASS
編譯RetentionPolicy,RUNTIME 運(yùn)行階段
@Documented 將注解中的元素包含到JavaDoc中
@Target 注解可以用到的地方 有類、方法、屬性等
@Inherited 繼承
@Repeatable 可重復(fù)
java中的幾種注釋方式?
1、第一步我們首先需要知道java一共有三種注釋方式,單行注釋//,多行注釋 /* */,文檔注釋/** */,如下圖所示:
2、第二步打開eclipse,在java代碼中使用單行注釋//,一般單行注釋,注釋少量代碼或者說明內(nèi)容,如下圖所示:
3、第三步j(luò)ava代碼中使用多行注釋/* */,一般使用多行注釋大量的代碼或者說明內(nèi)容,如下圖所示:
4、第四步使用文檔注釋/** */,文檔注釋一般用于對(duì)類和方法進(jìn)行功能說明,如下圖所示:
5、第五步我們也可以使用快捷鍵注釋代碼,選中要注釋的代碼,如下圖所示:
6、第六步使用ctrl ?鍵進(jìn)行注釋代碼,再次按ctrl ?鍵就取消注釋,也可以使用ctrl shift c對(duì)jsp的代碼進(jìn)行注釋,如下圖所示:
Java的哪個(gè)語(yǔ)法特性讓你覺得寫Java代碼很享受?
本人在日常主要使用的語(yǔ)言為c#和Java,就語(yǔ)法而言,寫c#更讓人享受。主要原因?yàn)閏#更多的語(yǔ)法糖,linq真的好用,其次visual studio號(hào)稱宇宙第一IDE。但是個(gè)人還是更愿意用java。
從java8出來后,感覺java在追趕著c#的步伐, java和c#的語(yǔ)法上越來越像(本來也挺像的,哈哈)。以下做一個(gè)小小的比較。
c#
java
以上實(shí)現(xiàn)的功能差不多,在java8中加入lambda表達(dá)式后,個(gè)人感覺越來越像c#了。
拋開語(yǔ)法層面,現(xiàn)在來說一說為什么更愿意用java
1、首先當(dāng)然是看收益啦,在國(guó)內(nèi)基本上沒有用c#的大廠,本來攜程在用,后來也轉(zhuǎn)為java了。
2、從技術(shù)層面來講,因?yàn)閖ava造輪子的多,有很多優(yōu)秀的框架可以使用。在實(shí)際做項(xiàng)目中你遇到的問題,其他人肯定遇到過,能夠很好的找到問題關(guān)鍵。
3、從生態(tài)上來講,Java無疑是最好的選擇之一,因?yàn)槠溟_源的早,建立生態(tài)的時(shí)間早。
4、從性能來說,Sun/Oracle的HotSpot JVM內(nèi)置的JIT編譯器在運(yùn)行時(shí)對(duì)字節(jié)碼已經(jīng)做出了非常大的優(yōu)化努力,如果不是對(duì)性能十分敏感的應(yīng)用,java足夠用了。
謝謝。