① apt是什麼的縮寫
具體看是用在什麼情景下,有以下幾種解釋
1、「apt」是The Asian Poker Tour的縮寫,是指亞洲撲克巡迴賽,該賽事開始於2008年,隨後每年在全球各地,特別是亞洲地區舉辦一系列大型的國際性撲克錦標賽。apt已成功地覆蓋了菲律賓(馬尼拉、宿務)、柬埔寨、印度、澳門、模里西斯、韓國、倫敦等多個國家。
2、Advanced Packaging Tool(apt)是linux下的一款安裝包管理工具。
APT是一個客戶/伺服器系統。在伺服器上先復制所有DEB包(DEB是Debian軟體包格式的文件擴展名),然後用APT的分析工具(genbasedir)根據每個DEB 包的包頭(Header)信息對所有的DEB包進行分析,並將該分析結果記錄在一個文件中,這個文件稱為DEB 索引清單,APT伺服器的DEB索引清單置於base文件夾內。一旦APT 伺服器內的DEB有所變動,一定要使用genbasedir產生新的DEB索引清單。客戶端在進行安裝或升級時先要查詢DEB索引清單,從而可以獲知所有具有依賴關系的軟體包,並一同下載到客戶端以便安裝。
當客戶端需要安裝、升級或刪除某個軟體包時,客戶端計算機取得DEB索引清單壓縮文件後,會將其解壓置放於/var/state/apt/lists/,而客戶端使用apt-get install或apt-get upgrade命令的時候,就會將這個文件夾內的數據和客戶端計算機內的DEB資料庫比對,知道哪些DEB已安裝、未安裝或是可以升級的。
3、ASIA-PACIFIC TELECOMMUNITY (apt)亞太電信聯盟,由亞洲、太平洋地區的國家組成的電信組織。
4、套利定價模型(Arbitrage pricing theory)的縮寫,APT。一種資產價格的估值模型,是資本資產定價模型(CAPM)的替代理論。
雖然被稱作套利定價模型,但實際與套利交易無關,是適用於所有資產的估值模型,其理論基礎是一項資產的價格是由不同因素驅動,將這些因素乘上該因素對資產價格影響的貝塔系數,加總後,再加上無風險收益率,就可以得出該項資產的價值。雖然APT理論上很完美,但是由於它沒有給出都是哪些因素驅動資產價格,這些因素可能數量眾多,只能憑投資者經驗自行判斷選擇,此外每項因素都要計算相應的貝塔值,而CAPM模型只需計算一個貝塔值,所以在對資產價格估值的實際應用時,CAPM比APT使用地更廣泛。
5、Annotation Processing Tool(APT)是JAX-WS重要的組成部分,由於JAX-WS2.0規范用到很多元數據,所以需要APT來處理眾多的Annotations.在/bin下有兩個命令wsgen和wsimport,就是用到APT和Compiler API來處理碰到的Annotations,wsgen可以為Web Services Provider產生並編譯必要的幫助類和相關支持文件,wsimport以WSDL作為輸入為Web Service Consumer產生並編譯必要的幫助類和相關支持文件。
6、Automatically Programmed Tools是語言編程系統中,流傳廣泛。影響最深、最具有代表性的,由美國MIT研製。APT是1955年推出的,1958年完成APTⅡ,1961年提出了APTⅢ適用於3~5坐標立體曲面自動編程。
1985年ISO(國際標准化組織)公布的數控機床自動編程語言(ISO4342—1985)就是以APT語言為基礎的。
7、仲鎢酸銨,英文名稱:Ammonium paratungstate 英文縮寫:APT
分子式:在不同的結晶條件下可有以下幾種:⑴3(NH4)2O-7WO3-6H2O;⑵5(NH4)2-12WO3-5H2O;⑶5(NH4)2O-12WO3-5H2O;⑷ 5(NH4)2O-12WO3-11H2O。
8、游戲療法協會(Association for Play Therapy)成立於1982年。它的成立昭示著游戲治療領域的一步步發展。
APT組織由 Charles Schaefer 和 Kevin O' Connor發起成立的,他們希望有一個國際化的組織能夠投身於游戲療法的發展中去。APT把自己定位於跨學科、綜合性的學術組織。這個組織每季度出版一次其優秀的刊物——游戲療法國際期刊,而且每年10月在美國或加拿大的不同城市舉辦一次學術大會。APT的會員已從1988年的450人發展到了2002年的4400人,會員數量的快速增長正好從側面說明了當今游戲治療領域的迅猛發展。
9、(attached proton test,連接質子測試)-解決碳類型問題。
碳譜的測定技術之一,APT技術是以次甲基、亞甲基和甲基這些不同級數的1H-13C偶合為基礎,通過調整脈沖序列的時間間隔,使CH3、CH基團相位朝上(正信號),季C、CH2基團相位朝下(負信號)。相位是可以任意調節的,該規律也可相反。
② java註解的類型可以是哪些
使用註解
在一般的Java開發中,最常接觸到的可能就是@Override和@SupressWarnings這兩個註解了。使用@Override的時候只需要一個簡單的聲明即可。這種稱為標記註解(marker annotation ),它的出現就代表了某種配置語義。而其它的註解是可以有自己的配置參數的。配置參數以名值對的方式出現。使用 @SupressWarnings的時候需要類似@SupressWarnings({"uncheck", "unused"})這樣的語法。在括弧裡面的是該註解可供配置的值。由於這個註解只有一個配置參數,該參數的名稱默認為value,並且可以省略。而花括弧則表示是數組類型。在JPA中的@Table註解使用類似@Table(name = "Customer", schema = "APP")這樣的語法。從這里可以看到名值對的用法。在使用註解時候的配置參數的值必須是編譯時刻的常量。
從某種角度來說,可以把註解看成是一個XML元素,該元素可以有不同的預定義的屬性。而屬性的值是可以在聲明該元素的時候自行指定的。在代碼中使用註解,就相當於把一部分元數據從XML文件移到了代碼本身之中,在一個地方管理和維護。
開發註解
在一般的開發中,只需要通過閱讀相關的API文檔來了解每個註解的配置參數的含義,並在代碼中正確使用即可。在有些情況下,可能會需要開發自己的註解。這在庫的開發中比較常見。註解的定義有點類似介面。下面的代碼給出了一個簡單的描述代碼分工安排的註解。通過該註解可以在源代碼中記錄每個類或介面的分工和進度情況。
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
public@interfaceAssignment{
Stringassignee();
inteffort();
doublefinished()default0;
}
@interface用來聲明一個註解,其中的每一個方法實際上是聲明了一個配置參數。方法的名稱就是參數的名稱,返回值類型就是參數的類型。可以通過default來聲明參數的默認值。在這里可以看到@Retention和@Target這樣的元註解,用來聲明註解本身的行為。@Retention用來聲明註解的保留策略,有CLASS、RUNTIME和SOURCE這三種,分別表示註解保存在類文件、JVM運行時刻和源代碼中。只有當聲明為RUNTIME的時候,才能夠在運行時刻通過反射API來獲取到註解的信息。@Target用來聲明註解可以被添加在哪些類型的元素上,如類型、方法和域等。
處理註解
在程序中添加的註解,可以在編譯時刻或是運行時刻來進行處理。在編譯時刻處理的時候,是分成多趟來進行的。如果在某趟處理中產生了新的Java源文件,那麼就需要另外一趟處理來處理新生成的源文件。如此往復,直到沒有新文件被生成為止。在完成處理之後,再對Java代碼進行編譯。JDK 5中提供了apt工具用來對註解進行處理。apt是一個命令行工具,與之配套的還有一套用來描述程序語義結構的Mirror API。Mirror API(com.sun.mirror.*)描述的是程序在編譯時刻的靜態結構。通過Mirror API可以獲取到被註解的Java類型元素的信息,從而提供相應的處理邏輯。具體的處理工作交給apt工具來完成。編寫註解處理器的核心是AnnotationProcessorFactory和AnnotationProcessor兩個介面。後者表示的是註解處理器,而前者則是為某些註解類型創建註解處理器的工廠。
以上面的註解Assignment為例,當每個開發人員都在源代碼中更新進度的話,就可以通過一個註解處理器來生成一個項目整體進度的報告。 首先是註解處理器工廠的實現。
{
(Set<AnnotationTypeDeclaration>atds,?){
if(atds.isEmpty()){
returnAnnotationProcessors.NO_OP;
}
returnnewAssignmentAp(env);//返回註解處理器
}
publicCollection<String>supportedAnnotationTypes(){
returnCollections.unmodifiableList(Arrays.asList("annotation.Assignment"));
}
publicCollection<String>supportedOptions(){
returnCollections.emptySet();
}
}
AnnotationProcessorFactory介面有三個方法:getProcessorFor是根據註解的類型來返回特定的註解處理器;supportedAnnotationTypes是返回該工廠生成的註解處理器所能支持的註解類型;supportedOptions用來表示所支持的附加選項。在運行apt命令行工具的時候,可以通過-A來傳遞額外的參數給註解處理器,如-Averbose=true。當工廠通過 supportedOptions方法聲明了所能識別的附加選項之後,註解處理器就可以在運行時刻通過的getOptions方法獲取到選項的實際值。註解處理器本身的基本實現如下所示。
{
private;
;
publicAssignmentAp(){
this.env=env;
assignmentDeclaration=(AnnotationTypeDeclaration)env.getTypeDeclaration("annotation.Assignment");
}
publicvoidprocess(){
Collection<Declaration>declarations=env.getDeclarationsAnnotatedWith(assignmentDeclaration);
for(Declarationdeclaration:declarations){
processAssignmentAnnotations(declaration);
}
}
(Declarationdeclaration){
Collection<AnnotationMirror>annotations=declaration.getAnnotationMirrors();
for(AnnotationMirrormirror:annotations){
if(mirror.getAnnotationType().getDeclaration().equals(assignmentDeclaration)){
Map<,AnnotationValue>values=mirror.getElementValues();
Stringassignee=(String)getAnnotationValue(values,"assignee");//獲取註解的值
}
}
}
}
註解處理器的處理邏輯都在process方法中完成。通過一個聲明(Declaration)的getAnnotationMirrors方法就可以獲取到該聲明上所添加的註解的實際值。得到這些值之後,處理起來就不難了。
在創建好註解處理器之後,就可以通過apt命令行工具來對源代碼中的註解進行處理。 命令的運行格式是apt -classpath bin -factory annotation.apt.AssignmentApf src/annotation/work/*.java,即通過-factory來指定註解處理器工廠類的名稱。實際上,apt工具在完成處理之後,會自動調用javac來編譯處理完成後的源代碼。
JDK 5中的apt工具的不足之處在於它是Oracle提供的私有實現。在JDK 6中,通過JSR 269把自定義註解處理器這一功能進行了規范化,有了新的javax.annotation.processing這個新的API。對Mirror API也進行了更新,形成了新的javax.lang.model包。註解處理器的使用也進行了簡化,不需要再單獨運行apt這樣的命令行工具,Java編譯器本身就可以完成對註解的處理。對於同樣的功能,如果用JSR 269的做法,只需要一個類就可以了。
@SupportedSourceVersion(SourceVersion.RELEASE_6)
@SupportedAnnotationTypes("annotation.Assignment")
{
;
publicsynchronizedvoidinit(){
super.init(processingEnv);
ElementselementUtils=processingEnv.getElementUtils();
assignmentElement=elementUtils.getTypeElement("annotation.Assignment");
}
publicbooleanprocess(Set<?extendsTypeElement>annotations,RoundEnvironmentroundEnv){
Set<?extendsElement>elements=roundEnv.getElementsAnnotatedWith(assignmentElement);
for(Elementelement:elements){
processAssignment(element);
}
}
privatevoidprocessAssignment(Elementelement){
List<?extendsAnnotationMirror>annotations=element.getAnnotationMirrors();
for(AnnotationMirrormirror:annotations){
if(mirror.getAnnotationType().asElement().equals(assignmentElement)){
Map<?extendsExecutableElement,?extendsAnnotationValue>values=mirror.getElementValues();
Stringassignee=(String)getAnnotationValue(values,"assignee");//獲取註解的值
}
}
}
}
仔細比較上面兩段代碼,可以發現它們的基本結構是類似的。不同之處在於JDK 6中通過元註解@SupportedAnnotationTypes來聲明所支持的註解類型。另外描述程序靜態結構的javax.lang.model包使用了不同的類型名稱。使用的時候也更加簡單,只需要通過javac -processor annotation.pap.AssignmentProcess Demo1.java這樣的方式即可。
上面介紹的這兩種做法都是在編譯時刻進行處理的。而有些時候則需要在運行時刻來完成對註解的處理。這個時候就需要用到Java的反射API。反射API提供了在運行時刻讀取註解信息的支持。不過前提是註解的保留策略聲明的是運行時。Java反射API的AnnotatedElement介面提供了獲取類、方法和域上的註解的實用方法。比如獲取到一個Class類對象之後,通過getAnnotation方法就可以獲取到該類上添加的指定註解類型的註解。
實例分析
下面通過一個具體的實例來分析說明在實踐中如何來使用和處理註解。假定有一個公司的雇員信息系統,從訪問控制的角度出發,對雇員的工資的更新只能由具有特定角色的用戶才能完成。考慮到訪問控制需求的普遍性,可以定義一個註解來讓開發人員方便的在代碼中聲明訪問控制許可權。
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public@interfaceRequiredRoles{
String[]value();
}
下一步則是如何對註解進行處理,這里使用的Java的反射API並結合動態代理。下面是動態代理中的InvocationHandler介面的實現。
<T>implementsInvocationHandler{
finalTaccessObj;
publicAccessInvocationHandler(TaccessObj){
this.accessObj=accessObj;
}
publicObjectinvoke(Objectproxy,Methodmethod,Object[]args)throwsThrowable{
RequiredRolesannotation=method.getAnnotation(RequiredRoles.class);//通過反射API獲取註解
if(annotation!=null){
String[]roles=annotation.value();
Stringrole=AccessControl.getCurrentRole();
if(!Arrays.asList(roles).contains(role)){
(".");
}
}
returnmethod.invoke(accessObj,args);
}
}
在具體使用的時候,首先要通過Proxy.newProxyInstance方法創建一個EmployeeGateway的介面的代理類,使用該代理類來完成實際的操作。
③ android APT有哪些框架在用
APT是一種註解處理工具,它對源文件代碼進行檢測,找出其中的註解,並對此進行額外的處理,如檢查代碼書寫規范,生成額外的源文件等(具體內容由註解處理器的實現所決定);此處我們關注的是APT技術,註解相關的內容請自行補腦。
④ apt安裝與自己編譯源代碼安裝的軟體有何不同
這個不一定,一般的deb包都在/usr/share。自己下載的壓縮包或者編譯的包,有些可以選擇安裝目錄,一般放在/usr/local/,也有在/opt的。 可運行程序一般在/usr/bin, 庫在/usr/lib,也不排除作者壓的時候,自己創建一個目錄安裝的情況。如果實在想找,用find、whereis、locate、很多查找的命令。源碼一般也是裝到/usr/local,不過源碼安可以自己指定路徑。這個沒有什麼硬性規定。
⑤ 自動程序設計APT語言編程機床,是什麼啊
APT語言自動編程簡介
APT語言自動編程系統的組成如圖所示,它分成由APT語言編寫的零件源程序、通用計算機以及編譯程序三個組成部分。零件源程序不能直接控制數控機床,只是加工程序的計算機與處理的輸入程序,必須經過計算機進行輸入翻譯、數值計算和後置處理後成為NC加工程序。
APT自動編程系統的組成
APT語言程序示例
⑥ linux apt命令功能
一、apt的簡介
apt命令可以說是Linux系統下最為重要的命令,安裝、更新、卸載軟體,升級系統內核都離不開apt命令。
apt的全稱是Advanced Packaging Tool是Linux系統下的一款安裝包管理工具。
最初需要在Linux系統中安裝軟體,需要自行編譯各類軟體,缺乏一個統一管理軟體包的工具。此後當Debian系統出現後,dpkg管理工具也就被設計出來了,此後為了更加快捷、方便的安裝各類軟體,dpkg的前端工具APT也出現了。在Ubuntu16.04系統下apt命令功能又得到了強化,使其更加方便快捷和受歡迎了。
二、apt命令介紹
1.apt update
更新軟體源中的所有軟體列表。因為更新資料庫等操作需要管理員的許可權,所以在apt命令前要加上sudo命令取得許可權。
運行apt update命令會返回三種狀態:一是命中,一是獲取,一是忽略。
命中表示連接上網站,包的信息沒有改變。
獲取表示有更新並且下載。
忽略表示無更新或更新無關緊要無需更新。
在命令顯示的最後,會提示你有多少軟體包可以升級,你可以根據自身的需求立即或稍後進行升級。
2. apt list
apt list --upgradeable:顯示可升級的軟體包。
apt list --installed:顯示已安裝的軟體包。
3.apt upgrade
執行完update命令後,就可以使用apt upgrade來升級軟體包了。執行命令後系統會提示有幾個軟體需要升級。在得到你的同意後,系統即開始自動下載安裝軟體包。
4. apt install <軟體包名>
安裝指定軟體。此命令需管理員許可權。如果你對名字並不十分清楚,你可以輸入軟體名的一部分,系統會給出名字相近的軟體包名的提示。在老版本中安裝程序需要使用 sudo apt-get install <軟體包名>,現在新版本中已建議直接使用apt替代apt-get命令。
sudo apt install -f
使用此命令可修復依賴關系,假如有軟體因依賴關系不滿足而無法安裝,就可以運行此命令自動修復安裝程序包所依賴的包。特別是在使用dpkg命令安裝deb軟體包時出現依賴問題常需要此命令來修復。
5. apt remove <軟體包名>和apt autoremove
apt remove <軟體包名>用來卸載指定軟體。
apt autoremove用來自動清理不再使用的依賴和庫文件。
7.apt show <軟體包名>
顯示軟體包具體信息。例如:版本號,安裝大小,依賴關系,bug報告等等。
⑦ apt什麼意思 註解
apt [æpt]
adj. 有...傾向的,
易於...的
⑧ 如何向Java註解添加行為
將常見可重用的行為以定製註解的方式添加到Java應用中是一種非常棒的方式,但如果開發者在決定使用註解的時候能夠遵循一些開發標准和最佳實踐的話,那就更事半功倍了。比如說在計劃使用注釋之前,比較一下當前情況下是不是注釋真的比內遷代碼和介面更為貼切。New Aspects的John Heintz在最近舉行的No Fluff Just Stuff(NFJS)俄亥俄州軟體中心研討會(COSS)上作了一個演講,討論了向Java註解添加行為的多種設計技術。
定義註解與定義介面的方式相似(使用@Interface類型來聲明註解)。註解不僅可以用在包級別上,也可以用在類成員(屬性、方法、構造方法),甚至還可以用在方法的局部參數上。
保持策略(retention policy)是實現註解的重要一環,根據數據在內存中保持時間的長短,有三種類型的保持策略:
Runtime(一直保留數據,可以通過反射來訪問)Class(數據保留在位元組碼中,無法在運行時訪問)Source(編譯器不保留該數據)一些流行框架如EJB3、Hibernate、Spring、Seam、Struts 2、RIFE及JAX-WS的新版本都開始支持註解。John論述了處理註解的三種方式:
生成器:這種註解處理方式是通過讀取源代碼來產生新的源代碼,或修改現存源代碼及其它一些文件(XML、文檔等等)來實現。生成器主要依賴於容器或其它編碼約定,可以在任何保持策略下工作。
使用生成器的例子有註解處理工具(Annotation Processing Tool,即APT)和處理器、XDoclet、Spoon(針對Java的擴展編譯器)、APT-Jelly(一個模板庫)等。APT不允許你修改源代碼,但對產生輔助文件卻有相當大的幫助(像WSDL、文檔)。
位元組碼轉換:註解處理器對帶有註解的類文件進行解析,然後對類做一些設當的修改。此外,他們也能生成其他類型的文件(比如XML配置文件)。位元組碼轉換器在離線狀態(編譯期)、在裝載期都能運行,還能在運行時動態運行(使用JVMTI API)。在class或runtime這樣的保持策略下,它都能運行。
使用位元組碼轉換器的例子有AspectJ、Spring、Hibernate、CGLib、Javassist、ASM、BCEL等。
運行時反射:這種方式使用反射API以編程的方式在運行階段檢查對象。它主要依賴於容器或其他編碼約定,同時也需要runtime保持策略。
使用運行時反射的例子有:Java 5及更新Java版本中的反射、Commons Attributes。像JUnit和TestNG這樣的測試框架也使用運行時反射來處理註解。
此外,John還提到了Aspect Processing的好處,如容易實現(需要好工具的支持)、語義細致——可以影響到方法調用,甚至是屬性的訪問(在這點上,和反射和APT不同),還能夠集成多個類庫的註解,並支持特定的領域抽象。他建議開發人員說,如果Java代碼可以以介面的方式實現,那就用介面,不要去用註解。他還建議大家不要對所有東西都使用註解,因為POJO(Plain Old Java Object)要比HAJO(Heavily Annotated Java Object)好。在演講中,他列舉了其它一些最佳實踐准則,比如:
註解要添加在最高層次的抽象上(比如在類和方法這兩個層次上,註解要盡量添加在類上面)在面對規則的時候,盡量使用合適的默認值,而且只對exception添加註解。比外,還要盡量少用參數。將註解作為「規約優於配置」法則的補充(如Spring)使用反射來增強現有框架(如測試)利用Javassist和CGLIB框架來產生新的對象,對於底層來說,可以提高位元組碼轉換效率使用APT來生成非代碼文件(文/Srini Penchikala 譯/張龍 出處/Infoq)
⑨ 如何在android studio 中使用自定義註解處理器
在android studio 中使用自定義註解處理器的方法是利用第三方gradle插件android-apt來實現的。
說明:Android Studio原本是不支持註解處理器的,這個插件可以自動的幫程序員為生成的代碼創建目錄, 讓生成的代碼編譯到APK裡面去, 而且它還可以讓最終編譯出來的APK裡面不包含註解處理器本身的代碼, 因為這部分代碼只是編譯的時候需要用來生成代碼, 最終運行的時候是不需要的。
1、使用這個插件很簡單, 首先在項目頂層的build.gradle文件中添加依賴項, 如下:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.5.0'
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
}
}
2、然後在app的build.gradle裡面添加插件的引用以及需要依賴哪些庫, 如下:
apply plugin: 'com.android.application'
apply plugin: 'com.neenbedankt.android-apt'
...
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:22.2.1'
compile 'la.dahuo:command:1.0.0'
apt 'la.dahuo:command-codegen:1.0.0'
}
注意上面的apt 『la.dahuo:command-codegen:1.0.0』, 這里表示引用一個註解處理器的庫, 這個庫的代碼最終不會進入編譯出來的APK裡面。
3、使用註解生成代碼, 上面出現的庫la.dahuo:command。la.dahuo:command-codegen就是我根據命令設計模式(Command Design Pattern)寫的一個註解庫, 它用來讓我們方便的生成代碼, 看下用法:
定義Command
@CommandDef("commandName")
public class MyCommand extends Command {
@Param
String paramStr;
@Param("paramIntName")
int paramInt;
@Override
public void execute() {
// do something with params
}
}
⑩ apt-get install 與 make install 的區別 linux
apt-get 是一個包管理器,用於安裝deb包
deb包是別人已經編譯完成的二進制包(binary)
而make install 是針對源代碼來進行linux程序的安裝的
它的包不一定就是tar.gz