java注解到底有什么用 Java中的注解到底是如何工作的?
Java中的注解到底是如何工作的?注釋用于描述Java類。您可以自定義注釋,然后通過反射獲取注釋以執(zhí)行指定的操作。舉個簡單的例子這樣可以通過反射獲得一些元信息,相當(dāng)于配置和業(yè)務(wù)邏輯的分離。當(dāng)然,這個自
Java中的注解到底是如何工作的?
注釋用于描述Java類。您可以自定義注釋,然后通過反射獲取注釋以執(zhí)行指定的操作。
舉個簡單的例子
這樣可以通過反射獲得一些元信息,相當(dāng)于配置和業(yè)務(wù)邏輯的分離。
當(dāng)然,這個自定義注釋還取決于一些特定的注釋,我們稱之為元注釋。一共有五種:
@保留:生存周期保留策略.SOURCE
保持在源階段保留策略.CLASS
Compile
retention policy,runtime
@documented將注釋中的元素包含到Javadoc中
@target注釋可用于類、方法、屬性、,等]@繼承的
@可重復(fù)的可重復(fù)的
我在日常生活中使用的主要語言是C和Java。在語法方面,寫C#更有趣。主要原因是C#有更多的語法糖,而且LINQ非常容易使用。其次,visualstudio被稱為世界上第一個ide。但個人更喜歡Java。
從java8出來后,我覺得Java正在追趕C#,Java和C#的語法越來越相似(原來很相似,哈哈)。這里有一些比較。
在java8中添加lambda表達式后,我感覺越來越像C。
1. 當(dāng)然,首先要看收入。在中國,基本上沒有使用C的大公司。最初,攜程在使用它,但后來,它也轉(zhuǎn)向了Java。
2. 從技術(shù)的角度來看,有很多優(yōu)秀的框架可以使用,因為Java可以制造很多輪子。在實際項目中你遇到問題,別人一定遇到過,能找到問題的關(guān)鍵。
3. 從生態(tài)學(xué)的角度來看,Java無疑是最好的選擇之一,因為它的開源較早,建立生態(tài)學(xué)的時間也較早。
4. 在性能方面,sun/Oracle熱點JVM內(nèi)置的JIT編譯器在運行時對字節(jié)碼進行了優(yōu)化。如果它不是一個性能敏感的應(yīng)用程序,Java就足夠了。
謝謝。
Java的哪個語法特性讓你覺得寫Java代碼很享受?
我認(rèn)為注解的流行主要是因為方便。
它放棄了Java最困難的部分,配置了一堆配置文件和新類。作為程序員,最直觀的是代碼,而不是配置文件。所以春靴自然就流行起來了。它完全可以通過代碼實現(xiàn)以前的配置,不需要配置文件。
那么注釋是如何工作的呢?首先,我們需要了解Java語言。Java是編譯和解釋之間的中間狀態(tài)(盡管Java嚴(yán)格地屬于編譯類型)。Java使用。運行過程中的類文件。
這種方式使Java非常靈活,因此反射應(yīng)運而生。它可以是無敵的。它可以通過反射動態(tài)地創(chuàng)建類對象,而不是使用傳統(tǒng)的新方法。
通過反射,您可以讀取類中的每個方法、每個成員變量,甚至私有變量和方法。
然后,為了方便使用,我們將使用設(shè)計模式,單例模式。這種模式的優(yōu)點是,您只需要創(chuàng)建一次新對象,就永遠(yuǎn)不會再使用新對象。實際上,它也可以理解為靜態(tài)成員對象。我不會談?wù)撛O(shè)計模式。我自己去百度。
最后,注解的操作機制是反映類,動態(tài)創(chuàng)建單例,注解后操作生效。那么誰來識別注釋呢?這也是通過反射來實現(xiàn)的。定義注釋類的要素類
例如,它是這樣寫的:
@demo
@retention(保留策略.RUNTIME)
@目標(biāo)(ElementType.ANNOTATIONType)
public@interface demo{
]這要求java根據(jù)類上的注釋動態(tài)實現(xiàn)函數(shù)。這不是很神奇嗎。