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

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

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

    隨筆-4  評論-2  文章-0  trackbacks-0
      置頂隨筆
    最近在做項目時碰到關于java值傳遞和引用傳遞的問題,查不了少文章,做了幾個例子才搞明白,當然我總結出來的不一定是對的,歡迎大家來拍磚。主要有以下兩條:
    1.如果是基本類型,那么傳遞進去的就是值傳遞。
    2.如果不是基本類型,那么傳遞進去的就是對象引用的拷貝。

    以下是例子:
    public class Test {

        private String name;

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }
    }

    public class Test1 {    
        private static Test staticTest;
        
        public static void main(String[] args) {
            Test t1 = new Test();
            call(t1);
            System.out.println(t1.getName());
        }
        
        public static void call(Test rt) {
            staticTest = new Test();
            staticTest.setName("abc");
            rt.setName("cba");
            rt = staticTest;
        }
    }
    此時的運行結果是什么?機器給出的結果是“cba”,為什么會這樣,我理解如下:
    rt.setName("cba");
    此時rt是t1的一個復制,但是又不代表t1,但是rt和t1都指向同一個對象,無論通過rt還是t1來都會改變所引用對象的值。
    rt = staticTest;
    這時會把staticTest的引用賦給rt,但是rt只是t1的一個引用, rt此時指向staticTest,但是不會更改t1的值。
    所以會發生以上的結果。不知道正確與否?



    posted @ 2008-09-05 14:48 星光 閱讀(249) | 評論 (2)編輯 收藏
      2009年3月2日
    一、java.lang.OutOfMemoryError: PermGen space

    PermGen space的全稱是Permanent Generation space,是指內存的永久保存區域,
    這塊內存主要是被JVM存放Class和Meta信息的,Class在被Loader時就會被放到PermGen space中,
    它和存放類實例(Instance)的Heap區域不同,GC(Garbage Collection)不會在主程序運行期對
    PermGen space進行清理,所以如果你的應用中有很多CLASS的話,就很可能出現PermGen space錯誤,
    這種錯誤常見在web服務器對JSP進行pre compile的時候。如果你的WEB APP下都用了大量的第三方jar, 其大小
    超過了jvm默認的大小(4M)那么就會產生此錯誤信息了。
    解決方法: 手動設置MaxPermSize大小

    修改TOMCAT_HOME/bin/catalina.sh
    在“echo "Using CATALINA_BASE:   $CATALINA_BASE"”上面加入以下行:
    JAVA_OPTS="-server -XX:PermSize=64M -XX:MaxPermSize=128m
    建議:將相同的第三方jar文件移置到tomcat/shared/lib目錄下,這樣可以達到減少jar 文檔重復占用內存的目的。

    二、java.lang.OutOfMemoryError: Java heap space
    Heap size 設置
    JVM堆的設置是指java程序運行過程中JVM可以調配使用的內存空間的設置.JVM在啟動的時候會自動設置Heap size的值,
    其初始空間(即-Xms)是物理內存的1/64,最大空間(-Xmx)是物理內存的1/4。可以利用JVM提供的-Xmn -Xms -Xmx等選項可
    進行設置。Heap size 的大小是Young Generation 和Tenured Generaion 之和。
    提示:在JVM中如果98%的時間是用于GC且可用的Heap size 不足2%的時候將拋出此異常信息。
    提示:Heap Size 最大不要超過可用物理內存的80%,一般的要將-Xms和-Xmx選項設置為相同,而-Xmn為1/4的-Xmx值。
    解決方法:手動設置Heap size
    修改TOMCAT_HOME/bin/catalina.sh
    在“echo "Using CATALINA_BASE:   $CATALINA_BASE"”上面加入以下行:
    JAVA_OPTS="-server -Xms800m -Xmx800m   -XX:MaxNewSize=256m"

    posted @ 2009-03-02 14:19 星光 閱讀(222) | 評論 (0)編輯 收藏
      2008年9月12日

    對于windows,找到tomcat的bin目錄下面的catalina.bat,查找以下相似:

    set _EXECJAVA=start "Tomcat" %_RUNJAVA%

    把其中的Tomcat改成你想要的名字即可。

    如:

    set _EXECJAVA=start "MyWeb" %_RUNJAVA%

    這樣在啟動Tomcat的時候窗口名字即是MyWeb。這樣在一個機器上啟動多個Tomcat的時候可以區分出來。

    posted @ 2008-09-12 10:42 星光 閱讀(361) | 評論 (0)編輯 收藏
      2008年9月5日
    最近在做項目時碰到關于java值傳遞和引用傳遞的問題,查不了少文章,做了幾個例子才搞明白,當然我總結出來的不一定是對的,歡迎大家來拍磚。主要有以下兩條:
    1.如果是基本類型,那么傳遞進去的就是值傳遞。
    2.如果不是基本類型,那么傳遞進去的就是對象引用的拷貝。

    以下是例子:
    public class Test {

        private String name;

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }
    }

    public class Test1 {    
        private static Test staticTest;
        
        public static void main(String[] args) {
            Test t1 = new Test();
            call(t1);
            System.out.println(t1.getName());
        }
        
        public static void call(Test rt) {
            staticTest = new Test();
            staticTest.setName("abc");
            rt.setName("cba");
            rt = staticTest;
        }
    }
    此時的運行結果是什么?機器給出的結果是“cba”,為什么會這樣,我理解如下:
    rt.setName("cba");
    此時rt是t1的一個復制,但是又不代表t1,但是rt和t1都指向同一個對象,無論通過rt還是t1來都會改變所引用對象的值。
    rt = staticTest;
    這時會把staticTest的引用賦給rt,但是rt只是t1的一個引用, rt此時指向staticTest,但是不會更改t1的值。
    所以會發生以上的結果。不知道正確與否?



    posted @ 2008-09-05 14:48 星光 閱讀(249) | 評論 (2)編輯 收藏
    僅列出標題  
    主站蜘蛛池模板: 3d动漫精品啪啪一区二区免费| 美女18毛片免费视频| 亚洲AV成人无码久久精品老人| 国产亚洲成人在线播放va| 中文字幕亚洲日韩无线码| 九九免费观看全部免费视频| 免费福利电影在线观看| 在线观看H网址免费入口| 美女黄网站人色视频免费国产| 四虎影视在线永久免费看黄| 黑人大战亚洲人精品一区 | 免费国产在线观看不卡| 亚洲va久久久噜噜噜久久天堂| 在线精品亚洲一区二区| 狠狠躁狠狠爱免费视频无码| 最近2019年免费中文字幕高清| 在线a亚洲v天堂网2018| 亚洲人成在线影院| 韩国亚洲伊人久久综合影院| 99视频免费观看| 自拍偷自拍亚洲精品被多人伦好爽 | 亚洲精品免费视频| 免费成人黄色大片| 中文字幕免费观看全部电影| 日本视频免费在线| 亚洲免费观看在线视频| 黄视频在线观看免费| 亚洲AV中文无码乱人伦下载| 91香蕉成人免费网站| 亚洲aⅴ无码专区在线观看春色| 亚欧人成精品免费观看| 亚洲av中文无码乱人伦在线咪咕| 4399影视免费观看高清直播| 色噜噜的亚洲男人的天堂| 国产AV无码专区亚洲AWWW| 精品无码人妻一区二区免费蜜桃| 亚洲中文字幕久久久一区| 亚洲日本在线观看视频| 成人婷婷网色偷偷亚洲男人的天堂| 国产精品亚洲视频| 57PAO成人国产永久免费视频|