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 閱讀(4467) | 評(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 閱讀(3193) | 評(píng)論 (0)編輯 收藏

               摘要: 現(xiàn)在流行安卓系統(tǒng),鑒于囊中羞澀,買不起手機(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 閱讀(3562) | 評(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 閱讀(750) | 評(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盤)

          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 閱讀(1918) | 評(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。代碼寫完后運(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 閱讀(987) | 評(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 閱讀(565) | 評(píng)論 (0)編輯 收藏

               摘要: 1、將文件checkout到本地目錄
          svn checkout path(path是服務(wù)器 上的目錄)
          例如:svn checkout svn://192.168.1.1/pro/domain
          簡(jiǎn)寫: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)寫:svn ci

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

          posted @ 2010-11-10 11:10 rogerfan 閱讀(793) | 評(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的全稱是Permanent Generation space,是指內(nèi)存的永久保存區(qū)域,
          這塊內(nèi)存主要是被JVM存放Class和Meta信息的,Class在被Loader時(shí)就會(huì)被放到PermGen space中,
          它和存放類實(shí)例(Instance)的Heap區(qū)域不同,GC(Garbage Collection)不會(huì)在主  閱讀全文
          posted @ 2010-11-08 14:57 rogerfan 閱讀(4915) | 評(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)境變量。