07 2007 檔案
java 中計(jì)算任意2個(gè)日期之間的工作天數(shù)
摘要: 對于任意2個(gè)日期比如:date_start=2006-10-1、date_end=2006-10-14 ,首先計(jì)算這連個(gè)日期之間的時(shí)間間隔(天數(shù)),然后分別對date_start 和date_end 取得它們下一個(gè)星期一的日期,這樣就可以得到一個(gè)新的可以整除7的完整日期間隔(這個(gè)新的日期間隔已經(jīng)把星期幾的問題剔出掉了),換一種說法就是我們可以得到,這兩個(gè)新的日期之間的周數(shù),拿這個(gè)周數(shù)乘以5就是工作日期了(tmpWorkingDays)。但是這個(gè)日期并不是我們所要的日期,接下來我們要做的就是計(jì)算date_start,date_end這兩個(gè)日期對于根據(jù)它們所產(chǎn)生的新的日期之間的時(shí)間偏移量,date_start的偏移量(date_start_change)是需要加的,而date_end的這個(gè)偏移量(date_end_change)是需要減去的。 最后我們只要用tmpWorkingDays+date_start_change-date_end_change就是我們所要求的實(shí)際工作日了。以下是所有實(shí)現(xiàn)代碼(兩個(gè)日期跨年也沒有問題)。
閱讀全文
動(dòng)態(tài)裝載問題的研究
摘要: 我們都知道,Java平臺(tái)一大亮點(diǎn)就在于其類裝載器體系結(jié)構(gòu),這使得JVM可以在運(yùn)行期從Java API,擴(kuò)展路經(jīng)(java.ext.path),classpath以及用戶指定的位置(文件或網(wǎng)絡(luò))中載入所需的class,從而達(dá)到動(dòng)態(tài)裝載的目的。然而其類裝載器委托模型在保證了安全性和強(qiáng)大功能的同時(shí),也導(dǎo)致了相當(dāng)?shù)膹?fù)雜性,有很多地方一旦我們不加注意的話就將導(dǎo)致錯(cuò)誤。這里我希望通過一些小例子來展示動(dòng)態(tài)裝載的某些方面,深入地了解一下怎么進(jìn)行動(dòng)態(tài)裝載,會(huì)遇到什么樣的問題,并就問題的原因與解決方法進(jìn)行討論。
閱讀全文
Solaris 10 上的性能調(diào)優(yōu)的一些總結(jié)
摘要: 我們都知道,Java平臺(tái)一大亮點(diǎn)就在于其類裝載器體系結(jié)構(gòu),這使得JVM可以在運(yùn)行期從Java API,擴(kuò)展路經(jīng)(java.ext.path),classpath以及用戶指定的位置(文件或網(wǎng)絡(luò))中載入所需的class,從而達(dá)到動(dòng)態(tài)裝載的目的。然而其類裝載器委托模型在保證了安全性和強(qiáng)大功能的同時(shí),也導(dǎo)致了相當(dāng)?shù)膹?fù)雜性,有很多地方一旦我們不加注意的話就將導(dǎo)致錯(cuò)誤。這里我希望通過一些小例子來展示動(dòng)態(tài)裝載的某些方面,深入地了解一下怎么進(jìn)行動(dòng)態(tài)裝載,會(huì)遇到什么樣的問題,并就問題的原因與解決方法進(jìn)行討論。
閱讀全文
來自巴黎的華人軟件架構(gòu)師
摘要: 他締造了著名的設(shè)計(jì)軟件PowerDesigner,并在全球擁有5萬多的正版用戶,被稱為“Power- Designer創(chuàng)始教父”;他還在著名國際軟件企業(yè)Sybase中擔(dān)任此產(chǎn)品的首席軟件架構(gòu)師。王曉昀所書寫的這一段軟件傳奇,也成為了中國所有程序員的驕傲。
自從王曉昀在1988年研發(fā)出第一套Windows版本的PowerDesigner 1.0,經(jīng)過不斷修正與改良,2004年正式推出PowerDesigner最新版本10.0,功能強(qiáng)大而完整,涵蓋Business Process、UML、E-R Model、Enterprise Repository 等必要模組功能,是目前市面上著名的軟件工程建模工具。
為協(xié)助中國廣大的軟件用戶,將軟件工程技術(shù)應(yīng)用到實(shí)際開發(fā)工作上,王曉昀應(yīng)邀到中國巡回演說。從上海講座返回北京后,在中國大飯店的一間會(huì)議室中,剛剛下飛機(jī)的王曉昀接受了采訪。
閱讀全文
Enterprise Application Integration深層解析
摘要: 早期EAI是相對狹義上的EAI,正如其字面上的含義“Enterprise Application Integration”,即企業(yè)應(yīng)用整合,僅指企業(yè)內(nèi)部不同應(yīng)用系統(tǒng)之間的互連,以期通過應(yīng)用整合實(shí)現(xiàn)數(shù)據(jù)在多個(gè)系統(tǒng)之間的同步和共享,現(xiàn)在EAI具有了更廣義上的內(nèi)涵,它已經(jīng)被擴(kuò)展到業(yè)務(wù)整合(Business Integration)的范疇,業(yè)務(wù)整合相對EAI來說是一個(gè)更寬泛的概念,它將應(yīng)用整合進(jìn)一步拓展到業(yè)務(wù)流程整合的級(jí)別。業(yè)務(wù)整合不僅要提供底層應(yīng)用支撐系統(tǒng)之間的互連,同時(shí)要實(shí)現(xiàn)存在于企業(yè)內(nèi)部應(yīng)用與應(yīng)用之間,本企業(yè)和其他合作伙伴之間的端到端的業(yè)務(wù)流程的管理,它包括應(yīng)用整合,B2B整合,自動(dòng)化業(yè)務(wù)流程管理,人工流程管理,企業(yè)門戶以及對所有應(yīng)用系統(tǒng)和流程的管理和監(jiān)控等方方面面。
閱讀全文
J2EE體系結(jié)構(gòu)設(shè)計(jì)
摘要: 目前大多數(shù)企業(yè)采用J2EE技術(shù)的結(jié)構(gòu)設(shè)計(jì)與解決方案。對于我們學(xué)習(xí)和研究J2EE體系結(jié)構(gòu)來說,了解與掌握J(rèn)2EE體系結(jié)構(gòu)的設(shè)計(jì)方法及一些常用模式是必須的;模型-視圖-控制(model-view-control,簡稱MVC)結(jié)構(gòu)是目前最常見的J2EE應(yīng)用所基于的體系結(jié)構(gòu),MVC主要適用于交互式的Web應(yīng)用,尤其是存在大量頁面及多次客戶訪問及數(shù)據(jù)顯示;相比較而言,一個(gè)工作流體系結(jié)構(gòu)更多應(yīng)用于過程控制和較少交互的情況下;除了體系結(jié)構(gòu)外,J2EE的設(shè)計(jì)模式對我們解決應(yīng)用系統(tǒng)的設(shè)計(jì)也有很大的幫助。
閱讀全文
log4j 簡明手冊
摘要: 這個(gè)文檔資料描述了log4j API,它的獨(dú)特的特性和設(shè)計(jì)原理。Log4j是由許多作者共同參與的開放源代碼項(xiàng)目。它允許開發(fā)人員以任意的精細(xì)程度控制哪些日志說明被輸出。通過使用外部的配置文件,可以在運(yùn)行時(shí)配置它。最好的是,log4j 開發(fā)包很容易上手。注意,它也可能會(huì)使一些開發(fā)人員著迷。
簡 介
幾乎每個(gè)大的應(yīng)用程序都有它自己的日志和跟蹤程序的API。順應(yīng)這一規(guī)則,E.U. SEMPER項(xiàng)目組決定編寫它自己的程序跟蹤API(tracing API)。這開始于1996年早期。經(jīng)過無數(shù)的工作,更改和性能加強(qiáng),這個(gè)API終于成為一個(gè)十分受歡迎的Java日志軟件包,那就是log4j。這個(gè)軟件包的發(fā)行遵守open source動(dòng)議認(rèn)證的Apache Software License。最新的log4j版本包括全部的源代碼,類文件和文檔資料,可以在 http://logging.apache.org/log4j/找到它們。另外,log4j已經(jīng)被轉(zhuǎn)換成 C, C++, C#, Perl, Python, Ruby, 和 Eiffel 語言。
閱讀全文
如何使用Log4j?
摘要: 1、 Log4j是什么?
Log4j可以幫助調(diào)試(有時(shí)候debug是發(fā)揮不了作 用的)和分析,要下載和了解更詳細(xì)的內(nèi)容,還是訪問其官方網(wǎng)站吧: http://jakarta.apache.org/log4j 。
2、Log4j的概念
Log4j中有三個(gè)主要的組件,它們分別是 Logger、Appender和Layout,Log4j 允許開發(fā)人員定義多個(gè)Logger,每個(gè)Logger擁有自己的名字,Logger之間通過名字來表明隸屬關(guān)系。有一個(gè)Logger稱為Root,它永遠(yuǎn)存在,且不能通過名字檢索或引用,可以通過Logger.getRootLogger()方法獲得,其它Logger通過 Logger.getLogger(String name)方法。
Appender則是用來指明將所有的log信息存放到什么地方,Log4j中支持多種appender,如 console、files、GUI components、NT Event Loggers等,一個(gè)Logger可以擁有多個(gè)Appender,也就是你既可以將Log信息輸出到屏幕,
閱讀全文
Log4j基本使用方法
摘要: Log4j由三個(gè)重要的組件構(gòu)成:日志信息的優(yōu)先級(jí),日志信息的輸出目的地,日志信息的輸出格式。日志信息的優(yōu)先級(jí)從高到低有ERROR、WARN、INFO、DEBUG,分別用來指定這條日志信息的重要程度;日志信息的輸出目的地指定了日志將打印到控制臺(tái)還是文件中;而輸出格式則控制了日志信息的顯示內(nèi)容。
閱讀全文
設(shè)置Tomcat的JVM虛擬機(jī)內(nèi)存大小
摘要: Tomcat本身不能直接在計(jì)算機(jī)上運(yùn)行,需要依賴于硬件基礎(chǔ)之上的操作系統(tǒng)和一個(gè)java虛擬機(jī)。您可以選擇自己的需要選擇不同的操作系統(tǒng)和對應(yīng)的JDK的版本(只要是符合Sun發(fā)布的Java規(guī)范的),但我們推薦您使用Sun公司發(fā)布的JDK。確保您所使用的版本是最新的,因?yàn)镾un公司和其它一些公司一直在為提高性能而對java虛擬機(jī)做一些升級(jí)改進(jìn)。一些報(bào)告顯示JDK1.4在性能上比JDK1.3提高了將近10%到20%。
閱讀全文
Java虛擬機(jī)(JVM)參數(shù)配置說明
摘要: 在Java、J2EE大型應(yīng)用中,JVM非標(biāo)準(zhǔn)參數(shù)的配置直接關(guān)系到整個(gè)系統(tǒng)的性能。
JVM非標(biāo)準(zhǔn)參數(shù)指的是JVM底層的一些配置參數(shù),這些參數(shù)在一般開發(fā)中默認(rèn)即可,不需要任何配置。但是在生產(chǎn)環(huán)境中,為了提高性能,往往需要調(diào)整這些參數(shù),以求系統(tǒng)達(dá)到最佳新能。
另外這些參數(shù)的配置也是影響系統(tǒng)穩(wěn)定性的一個(gè)重要因素,相信大多數(shù)Java開發(fā)人員都見過“OutOfMemory”類型的錯(cuò)誤。呵呵,這其中很可能就是JVM參數(shù)配置不當(dāng)或者就沒有配置沒意識(shí)到配置引起的。
閱讀全文