A. drools規則的性能跟if else比較哪個好
1.一樣的If--Then 句式與Rete引擎
三者都會把原來混亂不堪的if---else---elseif----else謎團,
拆成N條帶優先順序的"If 條件語句 then 執行語句" 的句式。
三者都主要使用foreward-chaining的Rete引擎,按優先順序匹配條件語句,執行規則語句。
規則執行後會引發事實的變化,引擎又會重新進行條件匹配,直到不能再匹配為止,Rete的演算法保證了效率的最高。
2.開發人員使用的規則語言
2.1 Drools的XML框架+java/Groovy/Python嵌入語言
Drools的用XML的<Conditons>、<Consequence> 節點表達If--Then句式,而裡面可以嵌入上述語言的代碼作為判斷語句和執行語句。
其中Java代碼會使用Antlr進行解釋,而Groovy和Python本身就是腳本語言,可以直接調用。
Drools的聰明之處在於,用XML節點來規范If--Then句式和事實的定義,使引擎干起活來很舒服。
而使用Java,Groovy等原生語言來做判斷和執行語句,讓程序員很容易過渡、移植,學習曲線很低。
B. java實際開發中常用的技術有哪些
RMI: java自身提供的用在分布時對象之間的通信機制。(類似於RPC)
RMI-IIOP: RMI的可移植擴展,可以實現JAVA與CORBA的集成。
JDBC: 用於資料庫訪問的通用介面。
JTA,JTS: 用於提供事務處理的支持。
JMS: java消息服務。可以連接已有的面向消息的中間件,例如:MQSeries,MSMQ。
Java Servlet: 用來擴展Web伺服器功能的網路組件。基於請求/響應機制。
JSP: Java與HTML混合編程,類似於ASP。
JavaIDL: Java對COBRA的實現,允許與其他預言集成。且能讓分布式對象利用CORBA提供的全面服務。所以J2EE與CORBA完全兼容。
Java Mail: 平台無關,協議無關地發送郵件。
J2EE連接器架構: 自動管理現有系統和中間件之間的諸多細節。
JAXP: Java操作XML。
JAAS: Java的用戶認證支持。
EJB: J2EE中最重要的部分,實現組件式開發的基礎。可以在多層的分布式環境中部署的伺服器端軟體組件。
JNI: (Java Native Interface)
聲明Native代碼,用C/C++實現它。可以實現:
1、 使用標准JAVA不支持的功能,例如訪問Win32API。
2、 重用其他語言編寫的庫或應用程序。例如大量的C庫。
3、 需要用低級語言編程時,例如匯編。
Oracle所實現的C底層代碼與Java的無縫集成,就是JNI技術的很好例證。Oracle不單使用Java界面,還支持Java編寫的存儲過程。
JNDI: 用於訪問命令和目錄系統。
JNDI為底層命名或目錄服務提供統一的API。可支持任何伺服器名稱,標准服務有:LDAP,NDS,CORBA,LDAP活動目錄等。
J2EE終,可用JNDI發布下列組件:EJB,數據源(資料庫),JMS消息隊列。