<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    JAVA—咖啡館

    ——?dú)g迎訪問(wèn)rogerfan的博客,常來(lái)《JAVA——咖啡館》坐坐,喝杯濃香的咖啡,彼此探討一下JAVA技術(shù),交流工作經(jīng)驗(yàn),分享JAVA帶來(lái)的快樂(lè)!本網(wǎng)站部分轉(zhuǎn)載文章,如果有版權(quán)問(wèn)題請(qǐng)與我聯(lián)系。

    BlogJava 首頁(yè) 新隨筆 聯(lián)系 聚合 管理
      447 Posts :: 145 Stories :: 368 Comments :: 0 Trackbacks

    #

         摘要: 在傳統(tǒng)的RPC編程接口逐漸淡出人們視線的同時(shí),新的、更便于使用且附加了更多特性的RPC編程接口也不斷涌現(xiàn),CORBA作為分布式對(duì)象計(jì)算技術(shù)的典范,在很長(zhǎng)一段時(shí)間內(nèi)極大地吸引了大家的注意,但是由于CORBA規(guī)范試圖覆蓋過(guò)多的內(nèi)容,使得CORBA顯得過(guò)于復(fù)雜,也極大地限制了CORBA的應(yīng)用范圍,本系列將向大家介紹幾種輕量級(jí)的,更適于在Java開(kāi)發(fā)中使用的RPC編程接口:RMI、XML-RPC、SOAP。

    RMI(Remote Method Invocation)
    與本系列將介紹的其它兩種RPC編程接口不同,RMI(Remote Method Invocation)顯得有些老舊,它是在Java-IDL加入J2SE之前被引入的。RMI開(kāi)發(fā)流程與CORBA如出一轍(從出現(xiàn)的時(shí)間上無(wú)法確定RMI是否是按照CORBA規(guī)范定制的),因此,其開(kāi)發(fā)過(guò)程相對(duì)比較煩瑣,但是由于RMI是EJB的基礎(chǔ),因此,它在Java開(kāi)發(fā)中具有十分重要的地位。

    以下是創(chuàng)建遠(yuǎn)程方法調(diào)用的5個(gè)步驟:

    1. 定義一個(gè)擴(kuò)展了Remote接口的接口,該接口中的每一個(gè)方法必  閱讀全文
    posted @ 2011-09-24 10:21 rogerfan 閱讀(4465) | 評(píng)論 (0)編輯 收藏

         摘要: XML-RPC是一種簡(jiǎn)單的,輕量級(jí)的通過(guò)HTTP協(xié)議進(jìn)行RPC通信的規(guī)范。本文以Apache XML-RPC 3.0為基礎(chǔ),對(duì)XML-RPC的基本原理及Apache XML-RPC 3.0的主要特性進(jìn)行了討論和分析。

      閱讀全文
    posted @ 2011-09-24 10:16 rogerfan 閱讀(3187) | 評(píng)論 (0)編輯 收藏

         摘要: 現(xiàn)在流行安卓系統(tǒng),鑒于囊中羞澀,買(mǎi)不起手機(jī),所以我就在網(wǎng)上找了個(gè)安卓模擬器,特整理了一下,發(fā)給大家,對(duì)安卓系統(tǒng)感興趣的朋友不妨拿來(lái)解解饞吧。
    方法如下:
    一.安裝java JDK 1.6,并配置以下三個(gè)環(huán)境變量:
    下載地址
    1.添加
    變量名:JAVA_HOME
    變量值:C:\Program Files\Java\jdk1.6.0_10
      閱讀全文
    posted @ 2011-08-25 14:41 rogerfan 閱讀(3558) | 評(píng)論 (2)編輯 收藏

         摘要: Tomcat內(nèi)存設(shè)置方法
    windows中大家都知道,JAVA程序啟動(dòng)時(shí)都會(huì)JVM都會(huì)分配一個(gè)初始內(nèi)存和最大內(nèi)存給這個(gè)應(yīng)用程序。這個(gè)初始內(nèi)存和最大內(nèi)存在一定程度都會(huì)影響程序的性能。比如說(shuō)在應(yīng)用程序用到最大內(nèi)存的時(shí)候,JVM是要先去做垃圾回收的動(dòng)作,釋放被占用的一些內(nèi)存。
    所以想調(diào)整Tomcat的啟動(dòng)時(shí)初始內(nèi)存和最大內(nèi)存就需要向JVM聲明,一般的JAVA程序在運(yùn)行都可以通過(guò)中-Xms -Xmx來(lái)調(diào)整應(yīng)用程序的初始內(nèi)存和最大內(nèi)存:
    如:java -Xms64m -Xmx128m a.jar.
    tomcat的啟動(dòng)程序是包裝過(guò)的,不能直接使用java -X..... tomcat.*來(lái)改變內(nèi)存的設(shè)置。在Tomcat在改變這個(gè)設(shè)置
    有兩種方法:
    1. 適合用%tomcat_home%\bin中的startup.bat腳本啟動(dòng),需要在環(huán)境變量中加上CATALINA_OPTS這個(gè)屬性 。
    如 SET CATALINA_OPTS= -Xms64m -Xmx512m;
    ms是最小的,mx是  閱讀全文
    posted @ 2011-01-11 16:57 rogerfan 閱讀(746) | 評(píng)論 (0)編輯 收藏

         摘要: 分享一下多年來(lái)在myeclipse中支持jquery、ext、YUI、mooto等主流框架的自動(dòng)完成、提示、調(diào)試等方法。百忙之中非常想念各位群友,MMT很快就會(huì)回來(lái)。以下著重介紹link方式安裝,不推薦升級(jí)模式安裝,升級(jí)安裝會(huì)帶來(lái)很多問(wèn)題,并且嘗嘗安裝不成功。

    1、從http://update1.aptana.org/studio/3.2/024747/index.html下載aptana studio的eclipse插件 aptana_update_024747.zip

    2、在D:\Myeclipse下創(chuàng)建myPlugins文件夾。 (我的myeclipse裝在D盤(pán))

    3、在 D:\Myeclipse\eclipse\links 下創(chuàng)建一個(gè)link文件aptana.link,內(nèi)容如下:path=D:\\Myeclipse\\myPlugins\\aptana

    4、在 D:\Myeclipse\myPlugins中創(chuàng)建文件夾aptana,在這個(gè)aptana文件夾下創(chuàng)建名為eclipse的文件夾。 閱讀全文
    posted @ 2010-12-09 15:40 rogerfan 閱讀(1915) | 評(píng)論 (0)編輯 收藏

         摘要: 首 先在代碼與生產(chǎn)庫(kù)間建立一個(gè)Connection,將讀取到的數(shù)據(jù)放在ResultSet對(duì)象,然后再與開(kāi)發(fā)庫(kù)建立一個(gè)Connection。從 ResultSet取出數(shù)據(jù)后通過(guò)TestConnection插入到開(kāi)發(fā)庫(kù),以此來(lái)實(shí)現(xiàn)Copy。代碼寫(xiě)完后運(yùn)行程序,速度太慢了,一秒鐘只能Copy 一千條數(shù)據(jù),生產(chǎn)庫(kù)上有上億條數(shù)據(jù),按照這個(gè)速度同步完要到猴年馬月呀,用PreparedStatement批處理速度也沒(méi)有提交多少。我想能不能用多 線程處理,多個(gè)人干活總比一個(gè)人干活速度要快。
    假設(shè)生產(chǎn)庫(kù)有1萬(wàn)條數(shù)據(jù),我開(kāi)5個(gè)線程,每個(gè)線程分2000條數(shù)據(jù),同時(shí)向開(kāi)發(fā)庫(kù)里插數(shù)據(jù),Oracle支持高并發(fā)這樣的話速度至少會(huì)提高好多倍,按照這 個(gè)思路重新進(jìn)行了編碼,批處理設(shè)置為1萬(wàn)條一提交,統(tǒng)計(jì)插入數(shù)量的變量使用 java.util.concurrent.atomic.AtomicLong,程序一運(yùn)行,傳輸速度飛快CPU利用率在70%~90%,現(xiàn)在一秒鐘可 以拷貝50萬(wàn)條記錄,沒(méi)過(guò)幾分鐘上億條數(shù)據(jù)一條不落地全部Copy到目標(biāo)庫(kù)。  閱讀全文
    posted @ 2010-11-26 14:11 rogerfan 閱讀(983) | 評(píng)論 (0)編輯 收藏

         摘要: 1. SELECT子句中避免使用 “*”
    當(dāng)你想在SELECT子句中列出所有的COLUMN時(shí),使用動(dòng)態(tài)SQL列引用 ‘*’ 是一個(gè)方便的方法.不幸的是,這是一個(gè)非常低效的方法. 實(shí)際上,ORACLE在解析的過(guò)程中, 會(huì)將“*” 依次轉(zhuǎn)換成所有的列名, 這個(gè)工作是通過(guò)查詢數(shù)據(jù)字典完成的, 這意味著將耗費(fèi)更多的時(shí)間.

    2.使用DECODE函數(shù)來(lái)減少處理時(shí)間
    使用DECODE函數(shù)可以避免重復(fù)掃描相同記錄或重復(fù)連接相同的表. 例如:
    Sql代碼 1.SELECT COUNT(*),SUM(SAL) FROM EMP WHERE DEPT_NO = 0020 AND ENAME LIKE ‘SMITH%’;
    2.SELECT COUNT(*),SUM(SAL) FROM EMP WHERE DEPT_NO = 0030 AND ENAME LIKE ‘SMITH%’;
    SELECT COUNT(*),SUM(SAL) FROM EMP WHERE DEPT_NO = 0020 AND ENAME LIKE ‘SMITH%’;   閱讀全文
    posted @ 2010-11-19 14:06 rogerfan 閱讀(558) | 評(píng)論 (0)編輯 收藏

         摘要: 1、將文件checkout到本地目錄
    svn checkout path(path是服務(wù)器 上的目錄)
    例如:svn checkout svn://192.168.1.1/pro/domain
    簡(jiǎn)寫(xiě):svn co

    2、往版本庫(kù)中添加新的文件
    svn add file
    例如:svn add test.php(添加test.php)
    svn add *.php(添加當(dāng)前目錄下所有的php文件)

    3、將改動(dòng)的文件提交到版本庫(kù)
    svn commit -m “LogMessage“ [-N] [--no-unlock] PATH(如果選擇了保持鎖,就使用–no-unlock開(kāi)關(guān))
    例如:svn commit -m “add test file for my test“ test.php
    簡(jiǎn)寫(xiě):svn ci

    4、加鎖/解鎖
    svn lock -m “LockMessage“ [--force] PATH
    例如:svn lock -m “l(fā)ock te  閱讀全文
    posted @ 2010-11-18 10:28 rogerfan 閱讀(1317) | 評(píng)論 (0)編輯 收藏

    posted @ 2010-11-10 11:10 rogerfan 閱讀(791) | 評(píng)論 (0)編輯 收藏

         摘要: 常見(jiàn)的內(nèi)存溢出有以下兩種:

    java.lang.OutOfMemoryError: PermGen space

    java.lang.OutOfMemoryError: Java heap space



    ---------------------------------------------------------

    這里以tomcat環(huán)境為例,其它WEB服務(wù)器如jboss,weblogic等是同一個(gè)道理。


    一、java.lang.OutOfMemoryError: PermGen space

    PermGen space的全稱(chēng)是Permanent Generation space,是指內(nèi)存的永久保存區(qū)域,
    這塊內(nèi)存主要是被JVM存放Class和Meta信息的,Class在被Loader時(shí)就會(huì)被放到PermGen space中,
    它和存放類(lèi)實(shí)例(Instance)的Heap區(qū)域不同,GC(Garbage Collection)不會(huì)在主  閱讀全文
    posted @ 2010-11-08 14:57 rogerfan 閱讀(4914) | 評(píng)論 (0)編輯 收藏

         摘要: 1. 環(huán)境:

    1.1. Red Hat Linux 9

    1.2. Tomcat 5.5.17

    2. 需要解決一下幾個(gè)問(wèn)題

    2.1. 不同的tomcat啟動(dòng)和關(guān)閉監(jiān)聽(tīng)不同的端口

    2.2. 不同的tomcat的啟動(dòng)文件startup.sh 中要指定各自的CATALINA_HOME和CATALINA_BASE這兩個(gè)環(huán)境變量。