⑴ java 什麼是註解及註解原理詳細介紹
1、註解是針對Java編譯器的說明。
可以給Java包、類型(類、介面、枚舉)、構造器、方法、域、參數和局部變數進行註解。Java編譯器可以根據指令來解釋註解和放棄註解,或者將註解放到編譯後的生成的class文件中,運行時可用。
2、註解和註解類型
註解類型是一種特殊的介面類型,註解是註解註解類型的一個實例。
註解類型也有名稱和成員,註解中包含的信息採用鍵值對形式,可以有0個或多個。
3、Java中定義的一些註解:
@Override 告訴編譯器這個方法要覆蓋一個超類方法,防止程序員覆蓋出錯。
@Deprecated 這個標識方法或類(介面等類型)過期,警告用戶不建議使用。
@SafeVarargs JDK7新增,避免可變參數在使用泛型化時候警告」執行時期無法具體確認參數類型「,當然,也可以用@SuppressWarnings來避免檢查,顯然後者的抑制的范圍更大。
@SuppressWarnings(value={"unchecked"}) 抑制編譯警告,應用於類型、構造器、方法、域、參數以及局部變數。 value是類型數組,有效取值為:
all, to suppress all warnings
boxing, to suppress warnings relative to boxing/unboxing operations
cast, to suppress warnings relative to cast operations
dep-ann, to suppress warnings relative to deprecated annotation
deprecation, to suppress warnings relative to deprecation
fallthrough, to suppress warnings relative to missing breaks in switch statements
finally, to suppress warnings relative to finally block that don't return
hiding, to suppress warnings relative to locals that hide variable
incomplete-switch, to suppress warnings relative to missing entries in a switch statement (enum case)
javadoc, to suppress warnings relative to javadoc warnings
nls, to suppress warnings relative to non-nls string literals
null, to suppress warnings relative to null analysis
rawtypes, to suppress warnings relative to usage of raw types
restriction, to suppress warnings relative to usage of discouraged or forbidden references
serial, to suppress warnings relative to missing serialVersionUID field for a serializable class
static-access, to suppress warnings relative to incorrect static access
static-method, to suppress warnings relative to methods that could be declared as static
super, to suppress warnings relative to overriding a method without super invocations
synthetic-access, to suppress warnings relative to unoptimized access from inner classes
unchecked, to suppress warnings relative to unchecked operations
unqualified-field-access, to suppress warnings relative to field access unqualified
unused, to suppress warnings relative to unused code and dead code
4、註解的定義
使用 @interface 關鍵字聲明一個註解
public @interface MyAnnotation1
註解中可以定義屬性
String name default 「defval」;
value是註解中的特殊屬性
註解中定義的屬性如果名稱為 value, 此屬性在使用時可以省寫屬性名
例如,聲明一個註解:
@Retention(RetentionPolicy.RUNTIME)
public @interface MyAnno1 {
String msg();
int value();
}
⑵ JAVA中 注釋行做什麼用的
簡單的說
注釋是一種良好變成習慣 用於解釋您的程序含義
有//單行注釋 有/**/多行注釋 有/***/多行注釋會保留 三種
大型程序代碼量很大 程序開發周期長 當開發了一段時間後
一些程序代碼的含義您也許不會記得很清楚這時您的注釋就會有更強的使用意義。
還有一些情況比如前人開發完的程序需要你去維護或擴充功能時
如果有很多清楚的注釋就可以去相對容易的去讀懂程序的流程以便修改。
更多的代碼注釋寫法您可以參照SUN自己的類注釋方法等等。
養成良好的編碼習慣是非常重要的。
您也可以參照軟體工程的知識進行學習。
JAVA學習很有樂趣 記住多實踐 多學習 打好底層知識的功底 打開學習面 以書本為例 不斷前進 加油吧!
⑶ JAVA程序中注釋的作用及類型分別是什麼
對於Java注釋我們主要了解三種:
1,// 注釋一行
2,/* ...... */ 注釋若干行
3,/**……*/文檔注釋 /** ...... */ 注釋若干行,並寫入 javadoc文檔
java圖標通常這種注釋的多行寫法如下: /** * ......... * ......... */
⑷ 什麼是注釋如何在Java程序中加入注釋
試想一下,一個沒有一句注釋的程序源碼,怎麼讀,一個程序要上萬條代碼不可能全部記得住哪一塊是什麼用,而且一個項目也不會是一個人獨自完成,那樣效率太低,多人合作就要給別人說明,每一塊是什麼用,方便他人使用,方便自己更正,而這些說明文字就是注釋,注釋不會被執行,不影響運行結果。
Java中代碼的注釋有三種:
// 注釋一行
/* ...... */ 注釋若干行
/** ...... */ 注釋若干行,並寫入 javadoc 文檔
前兩種比較容易理解,至於第三種,你學習Java看的api文檔就是javadoc程序根據第三種的注釋生成的。
注釋就是對代碼的解釋和說明,其目的是讓人們能夠更加輕松地了解代碼。注釋是編寫程序時,寫程序的人給一個語句、程序段、函數等的解釋或提示,能提高程序代碼的可讀性。
⑸ java中」 /** */」注釋和」 /* */」注釋 有什麼區別嗎
1、/**/只代表單純的注釋 ,java文檔注釋
2、/***/ 不僅有注釋的功效而且你滑鼠放在你注釋的方法上面他會把你注釋的內容顯示出來,
3、只要把滑鼠放在你注釋的方法或屬性上就會顯示了
⑹ java注釋
java 注釋有三種
1.//的形式
2./*
*
/的形式
3. /**
*
*
/的形式
第三種形式主要是為了生成javadoc文件,生成api用的.一般這種注釋有 author parementer return Exception等
⑺ java 註解都有哪些東西
Java註解相當於對類或者方法或者變數額外的注釋(標識)。以下是轉載
-------------------------------------------------------
Annotation是Java5、6隻後的新特徵(中文稱之為註解),並且越來越多的得到了應用,比如Spring、Hibernate3、Struts2、iBatis3、JPA、JUnit等等都得到了廣泛應用,通過使用註解,代碼的靈活性大大提高。
這些都是使用別人定義的註解,一般註解的使用都是在一些基礎框架或者類庫中來定義的,因此很少見過有人自己去寫一個註解出來並使用在程序中,因此註解的使用常常給人感覺很神秘,這就為你揭開註解的面紗。
註解的神秘之處在於:通過類似注釋的方式,可以控製程序的一些行為,運行時的狀態,可以為成員賦值,做配置信息等等,與常規編碼思維大相徑庭。
只用別人定義好的註解是搞不懂這些問題的,要想真正知道註解內部的秘密,要自己定義註解,然後在程序中獲取註解信息,拿到註解信息後,就可以為我所用了。
下面我簡單演示下三類註解的用法:類註解、方法註解、欄位(也稱之域)註解的定義與適用,並看看如何獲取註解的信息。
一、定義註解
package lavasoft.anntest;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* 類註解
*
* @author leimin 2009-12-18 14:15:46
*/
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
public @interface MyAnnotation4Class {
public String msg();
}
package lavasoft.anntest;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* 方法註解
*
* @author leimin 2009-12-18 14:16:05
*/
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface MyAnnotation4Method {
public String msg1();
public String msg2();
}
package lavasoft.anntest;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* 欄位註解
*
* @author leimin 2009-12-18 15:23:12
*/
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
public @interface MyAnnotation4Field {
public String commont();
public boolean request();
}
二、寫一個類,用上這些註解
package lavasoft.anntest;
/**
* 一個普通的Java類
*/
@MyAnnotation4Class(msg = "測試類註解信息")
class TestClass {
@MyAnnotation4Field(commont = "成員變數的註解信息", request = true)
private String testfield;
@MyAnnotation4Method(msg1 = "測試方法註解信息1", msg2 = "測試方法註解信息2")
public void testMethod() {
System.out.println("Hello World!");
}
}
三、測試註解
為了使用註解,需要通過反射獲取註解的對象。通過註解對象來操作註解信息。
package lavasoft.anntest;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
/**
* 測試類
*
* @author leimin 2009-12-18 14:13:02
*/
public class TestOptAnnotation {
public static void main(String[] args) throws NoSuchMethodException, NoSuchFieldException {
TestClass t = new TestClass();
System.out.println("-----------MyAnnotation4Class註解信息---------");
MyAnnotation4Class an4clazz = t.getClass().getAnnotation(MyAnnotation4Class.class);
System.out.println(an4clazz.msg());
System.out.println("-----------MyAnnotation4Method註解信息---------");
Method method = t.getClass().getMethod("testMethod", new Class[0]);
MyAnnotation4Method an4method = method.getAnnotation(MyAnnotation4Method.class);
System.out.println(an4method.msg1());
System.out.println(an4method.msg2());
System.out.println("-----------MyAnnotation4Field註解信息---------");
Field field = t.getClass().getDeclaredField("testfield");
MyAnnotation4Field an4field = field.getAnnotation(MyAnnotation4Field.class);
System.out.println(an4field.commont());
System.out.println(an4field.request());
}
}
運行結果:
-----------MyAnnotation4Class註解信息---------
測試類註解信息
-----------MyAnnotation4Method註解信息---------
測試方法註解信息1
測試方法註解信息2
-----------MyAnnotation4Field註解信息---------
成員變數的註解信息
true
Process finished with exit code 0
四、總結
看完上面的測試過程,Annotation已經不再神秘了,這里總結下自定義註解的使用方法:
1、自定義註解,注意註解的時空范圍,簡單說就是註解針對的目標(類、方法、欄位),以及註解的時效(運行時、或者源碼中有效)。
2、要獲取註解的信息,必須通過Java的反射技術來獲取Annotation對象,因為你除此之外沒有別的獲取註解對象的方法。
3、獲取了註解對象,就可以調用註解的方法來獲取相對應的值了。為基礎框架所用。
4、當然,註解也可以沒有定義成員,這樣註解就成了一個標記符號了。
⑻ java中什麼是注釋
注釋就是,相當於解釋說明。有些項目太大了,就算是自己寫的代碼,時間長了也不知道是什麼意思。此時就需要注釋,方便查找。單行注釋 // 。多行注釋用/* */
⑼ java 文檔注釋是注釋什麼的,不是有多行注釋了嗎
1、【文檔注釋】是寫在類或者方法的上面的。
文檔注釋可以用eclipse導出chm格式的幫助文檔,拿給其他人用時,方便他人理解。文檔注釋被調用的方法,當滑鼠移到上面時提醒注釋內容。
使用文檔注釋時,需要在開始的/**之後,第一行或幾行是關於類、變數和方法的主要描述。
之後,可以包含一個或多個何種各樣的@標簽。每一個@標簽必須在一個新行的開始或者在一行的開始緊跟星號(*)。多個相同類型的標簽應該放成一組。
2、【多行注釋】注釋的也是方法或類,言下之意就是一次性的將程序中的多行代碼注釋掉,但多行注釋的內容不能用於生成一個開發者文檔。
3、【多行注釋與文檔注釋的區別】多行注釋的內容不能用於生成一個開發者文檔,而文檔注釋 的內容可以生產一個開發者文檔。
(9)java注釋是什麼擴展閱讀
java常用的文檔注釋標簽
1、@author:標識一個類的作者
實例:@author description
2、@deprecated:指名一個過期的類或成員
實例:@deprecated description
3、@exception:標志一個類拋出的異常
實例:@exception exception-name explanation
4、{@inheritDoc}:從直接父類繼承的注釋
實例:Inherits a comment from the immediate surperclass.
5、{@link}:插入一個到另一個主題的鏈接
實例:{@link name text}
6、{@linkplain}:插入一個到另一個主題的鏈接,但是該鏈接顯示純文本字體
實例:Inserts an in-line link to another topic.
7、@param:說明一個方法的參數
實例:@param parameter-name explanation
8、@return:說明返回值類型
實例:@return explanation
9、@see:指定一個到另一個主題的鏈接
實例:@see anchor
10、@serial:說明一個序列化屬性
實例:@serial description
⑽ 什麼是java注釋文檔
Java有三種注釋方式: 1、 // String a = "a"; 2、 /* String b = "b"; String c = "c"; */ 3、 /** String d = "d"; String e = "e"; */ 其中1和2是一樣的,但1隻是注釋一行;2可以注釋多行 3除了可以注釋多行外,並且可以用JDK中的javadoc生成文檔,Java的API document就是用javadoc生成的JDK源碼中的第三類注釋。所以第3類注釋可以稱之為注釋文檔。
希望採納