JAVA—咖啡館

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

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

          #

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

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

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

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

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

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

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

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

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

          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)建一個link文件aptana.link,內(nèi)容如下:path=D:\\Myeclipse\\myPlugins\\aptana

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

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

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

          2.使用DECODE函數(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 閱讀(566) | 評論 (0)編輯 收藏

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

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

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

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

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

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

          java.lang.OutOfMemoryError: PermGen space

          java.lang.OutOfMemoryError: Java heap space



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

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


          一、java.lang.OutOfMemoryError: PermGen space

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

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

          1.1. Red Hat Linux 9

          1.2. Tomcat 5.5.17

          2. 需要解決一下幾個問題

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

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