<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 星光 閱讀(248) | 評論 (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 星光 閱讀(221) | 評論 (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 星光 閱讀(360) | 評論 (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 星光 閱讀(248) | 評論 (2)編輯 收藏
    僅列出標題  
    主站蜘蛛池模板: 亚洲国产成人久久笫一页| 日韩伦理片电影在线免费观看| 午夜亚洲乱码伦小说区69堂| 美女又黄又免费的视频| 成人电影在线免费观看| 黄色网址在线免费| 日本免费一区二区三区最新| 亚洲女子高潮不断爆白浆| 一个人看的在线免费视频| 99久久人妻精品免费一区| 日韩人妻无码免费视频一区二区三区 | 欧美男同gv免费网站观看| 日本人的色道www免费一区| 在线精品亚洲一区二区| 久久国产精品一区免费下载| 日韩视频免费一区二区三区| 亚洲AV永久无码精品一福利| 日韩免费电影网站| 亚洲视频国产精品| 国产va免费观看| 国产在线观看免费完整版中文版| 亚洲av中文无码乱人伦在线r▽| 亚洲欧美熟妇综合久久久久| 国产成人精品免费视频大全五级| 无遮挡a级毛片免费看| 免费毛片在线看片免费丝瓜视频| 蜜臀亚洲AV无码精品国产午夜.| 2021精品国产品免费观看| 在线亚洲午夜理论AV大片| 国产成人亚洲综合a∨| 久久国产亚洲精品麻豆| 一级中文字幕乱码免费| 亚洲日韩图片专区第1页| 青青操在线免费观看| 免费人成网站7777视频| 亚洲一区AV无码少妇电影| 亚洲精品无码激情AV| 一级白嫩美女毛片免费| 亚洲色图.com| 亚洲成人影院在线观看| 黄色网址免费观看|