青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

hqh

C++博客 聯系 聚合 管理
  4 Posts :: 2 Stories :: 2 Comments :: 0 Trackbacks

2007年4月18日 #

學完C++一些初級的知識后,應該怎樣進一步學習更多的知識,請大家介紹一下
posted @ 2007-04-18 20:41 hqh 閱讀(196) | 評論 (2)編輯 收藏

2007年4月7日 #

 在別處看到的一個資料,愿與大家分享。
內存泄漏的慨念

  1.c/c++是程序員自己管理內存,Java內存是由GC自動回收的。

  我雖然不是很熟悉C++,不過這個應該沒有犯常識性錯誤吧。

  2.什么是內存泄露?

  內存泄露是指系統中存在無法回收的內存,有時候會造成內存不足或系統崩潰。

  在C/C++中分配了內存不釋放的情況就是內存泄露。

  3.Java存在內存泄露

  我們必須先承認這個,才可以接著討論。雖然Java存在內存泄露,但是基本上不用很關心它,特別是那些對代碼本身就不講究的就更不要去關心這個了。

  Java中的內存泄露當然是指:存在無用但是垃圾回收器無法回收的對象。而且即使有內存泄露問題存在,也不一定會表現出來。

  4.Java中參數都是傳值的。

  對于基本類型,大家基本上沒有異議,但是對于引用類型我們也不能有異議。

  Java內存泄露情況

  JVM回收算法是很復雜的,我也不知道他們怎么實現的,但是我只知道他們要實現的就是:對于沒有被引用的對象是可以回收的。所以你要造成內存泄露就要做到:

  持有對無用對象的引用!

  不要以為這個很容易做到,既然無用,你怎么還會持有它的引用? 既然你還持有它,它怎么會是無用的呢?

  我實在想不到比那個堆棧更經典的例子了,以致于我還要引用別人的例子,下面的例子不是我想到的,是書上看到的,當然如果沒有在書上看到,可能過一段時間我自己也想的到,可是那時我說是我自己想到的也沒有人相信的。

public class Stack {
 private Object[] elements=new Object[10];
 private int size = 0;

 public void push(Object e){
  ensureCapacity();
  elements[size++] = e;
 }

 public Object pop(){
  if( size == 0)
   throw new EmptyStackException();
   return elements[--size];
 }

private void ensureCapacity(){
 if(elements.length == size){
  Object[] oldElements = elements;
  elements = new Object[2 * elements.length+1];
  System.arraycopy(oldElements,0, elements, 0, size);
 }
}
}

  上面的原理應該很簡單,假如堆棧加了10個元素,然后全部彈出來,雖然堆棧是空的,沒有我們要的東西,但是這是個對象是無法回收的,這個才符合了內存泄露的兩個條件:無用,無法回收。

  但是就是存在這樣的東西也不一定會導致什么樣的后果,如果這個堆棧用的比較少,也就浪費了幾個K內存而已,反正我們的內存都上G了,哪里會有什么影響,再說這個東西很快就會被回收的,有什么關系。下面看兩個例子。

  例子1

public class Bad{
 public static Stack s=Stack();
  static{
   s.push(new Object());
   s.pop(); //這里有一個對象發生內存泄露
   s.push(new Object()); //上面的對象可以被回收了,等于是自愈了
  }
}

  因為是static,就一直存在到程序退出,但是我們也可以看到它有自愈功能,就是說如果你的Stack最多有100個對象,那么最多也就只有100個對象無法被回收其實這個應該很容易理解,Stack內部持有100個引用,最壞的情況就是他們都是無用的,因為我們一旦放新的進取,以前的引用自然消失!

  例子2

public class NotTooBad{
 public void doSomething(){
  Stack s=new Stack();
  s.push(new Object());
  //other code
  s.pop();//這里同樣導致對象無法回收,內存泄露.
 }//退出方法,s自動無效,s可以被回收,Stack內部的引用自然沒了,所以
 //這里也可以自愈,而且可以說這個方法不存在內存泄露問題,不過是晚一點
 //交給GC而已,因為它是封閉的,對外不開放,可以說上面的代碼99.9999%的
 //情況是不會造成任何影響的,當然你寫這樣的代碼不會有什么壞的影響,但是
 //絕對可以說是垃圾代碼!沒有矛盾吧,我在里面加一個空的for循環也不會有
 //什么太大的影響吧,你會這么做嗎?
}

  上面兩個例子都不過是小打小鬧,但是C/C++中的內存泄露就不是Bad了,而是Worst了。他們如果一處沒有回收就永遠無法回收,頻繁的調用這個方法內存不就用光了!因為Java還有自愈功能(我自己起的名字,還沒申請專利),所以Java的內存泄露問題幾乎可以忽略了,但是知道的人就不要犯了。

  不知者無罪!Java存在內存泄露,但是也不要夸大其辭。如果你對Java都不是很熟,你根本就不用關心這個,我說過你無意中寫出內存泄露的例子就像你中一千萬一樣概率小,開玩笑了,其實應該是小的多的多!

  而且即使你有幸寫出這樣的代碼,中獎了!基本上都是一包洗衣粉,不會讓你發財,對系統沒有什么大的影響。

  杞人憂天的情況

  1.無話可說型

Object obj=new Object();
obj=null;
//這個完全多此一舉,因為退出了作用范圍,對象的引用自動消失
//不要在你的程序中出現這樣的語句,沒有錯,但是就是不雅觀

  2.思考不對型

void func(Object o){
 o=new Object();
 return
}

  當我們知道Java參數是傳值,就知道上面的方法什么也沒錯,就是申請了一個對象然后再丟給GC。因為是傳值,這里的o是一個調用時候的拷貝,會不會無法回收?不就是拷貝嗎,退出方法什么都沒了,這個對象怎么會留的住。

  3.盡量避免型

class A{
 B b=new B(this);
}
class B{
 A a;
 B(A a){this.a=a;}
}

posted @ 2007-04-07 12:53 hqh 閱讀(377) | 評論 (0)編輯 收藏

2007年3月30日 #

昨日,我的一個同學編了一個程序,但運算出來,得不到正確的結果.他問我,我知道那個確實有一定的問題,但就是無法解釋清楚,特來請教.
#include<stdio.h>
void main()
{
printf("please input two num x and y:");
int a,b,c;
scanf("%5d",&a);
printf("%d",a);
scanf("%4d%4d",&b,&c);
printf("%d,%d",b,c);
}
由于我也才接觸C++,因此我也無法作出正確解釋,希望有人能幫上忙.
posted @ 2007-03-30 21:19 hqh 閱讀(163) | 評論 (0)編輯 收藏

2007年3月28日 #

近日,我終于接觸到了C++,雖然我不是學C++著個專業的,但是我對他產生了濃厚的興趣.
初學C++,只知道一些簡單的算法,一些簡單的語句,但是我正在盡最大的努力學習更多這方面的知識.
真正接觸到C++我才知道他的博大精深,要學好他也并非一件容易的事,我崇拜那些編程高手,我也向往有一天自己也能成為一個編程高手.
所以我會加倍努力,爭取早日實現夢想.


posted @ 2007-03-28 15:35 hqh 閱讀(211) | 評論 (0)編輯 收藏

僅列出標題  
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲视频一二| 中文日韩在线| 狠狠色丁香久久婷婷综合丁香| 亚洲第一页在线| 久久精品视频在线观看| 亚洲看片网站| 欧美激情bt| 99精品欧美一区二区三区| 亚洲理伦电影| 欧美大色视频| 噜噜噜在线观看免费视频日韩 | 国产精品一卡二| 中文亚洲免费| 亚洲精品视频免费在线观看| 久久夜色精品国产欧美乱极品| 国产精品久久一区主播| 亚洲手机视频| 一区二区三区蜜桃网| 欧美日韩一级黄| 午夜精品免费| 国内精品99| 亚洲国产成人av好男人在线观看| 久久精品在这里| 久久精品男女| 亚洲国产精品成人综合色在线婷婷| 欧美成人综合一区| 欧美a一区二区| 亚洲一区二区三区色| 亚洲一品av免费观看| 欧美三级视频在线播放| 午夜精品一区二区三区电影天堂| 午夜精品视频| 日韩视频永久免费观看| 久久频这里精品99香蕉| 免费观看亚洲视频大全| 亚洲免费电影在线| 在线综合欧美| 国产一区二区三区直播精品电影 | 美女黄色成人网| 亚洲精品资源| 亚洲性夜色噜噜噜7777| 在线观看精品视频| a4yy欧美一区二区三区| 国产欧美日韩在线视频| 欧美国产乱视频| 国产精品久久影院| 欧美激情一区二区三区| 欧美性猛交视频| 裸体歌舞表演一区二区| 欧美午夜三级| 老司机aⅴ在线精品导航| 欧美日韩亚洲系列| 久久久另类综合| 欧美日韩精品高清| 美女成人午夜| 国产片一区二区| 亚洲免费观看高清在线观看 | 久久全球大尺度高清视频| 玖玖玖国产精品| 亚洲欧美日韩中文播放| 久久亚洲国产成人| 午夜伦理片一区| 美女国产一区| 久久久一本精品99久久精品66| 欧美精品啪啪| 美日韩精品视频| 国产精品久久久久影院亚瑟| 欧美第一黄色网| 国产一区二区三区精品欧美日韩一区二区三区 | 久久久久久久尹人综合网亚洲| 久久久99久久精品女同性| 亚洲欧美日韩网| 久久久97精品| 在线一区二区三区四区五区| 亚洲特级毛片| 国产精品久久久久久五月尺| 欧美一进一出视频| 美女国内精品自产拍在线播放| 亚洲国产精品视频一区| 欧美激情一区二区三区全黄| 亚洲精品社区| 久久成年人视频| 亚洲精品欧洲精品| 国产精品不卡在线| 久久精品麻豆| av成人手机在线| 美女精品一区| 亚洲一区二区精品视频| 韩国av一区二区三区四区| 欧美a级理论片| 午夜精品美女久久久久av福利| 蜜臀久久99精品久久久久久9| 亚洲精品日本| 国产区精品视频| 欧美3dxxxxhd| 欧美一区免费视频| 亚洲黄色一区| 午夜欧美精品久久久久久久| 在线成人国产| 国产美女精品| 欧美国产精品人人做人人爱| 午夜久久资源| 国产欧美日韩精品专区| 久久国产精品一区二区| 亚洲另类在线视频| 国产日韩欧美亚洲| 欧美日本在线播放| 久久精品水蜜桃av综合天堂| 一区二区三区精密机械公司| 麻豆精品视频| 亚洲一区二区黄| 亚洲区一区二区三区| 麻豆成人精品| 久久久久www| 小黄鸭视频精品导航| 一本大道久久a久久综合婷婷| 亚洲第一精品影视| 黑人一区二区| 国产一区二区三区久久精品| 国产精品久久久久999| 欧美激情第二页| 老巨人导航500精品| 欧美一区二区三区四区在线观看地址 | 久久婷婷人人澡人人喊人人爽 | 欧美金8天国| 久久伊人免费视频| 欧美与欧洲交xxxx免费观看| 欧美一区2区视频在线观看 | 欧美 日韩 国产一区二区在线视频| 一本久道综合久久精品| 国外成人在线视频网站| 国产精品一区二区你懂的| 欧美日韩在线视频一区| 欧美精品在线视频观看| 免费h精品视频在线播放| 久久亚裔精品欧美| 美女亚洲精品| 免费欧美电影| 欧美黄色aa电影| 欧美精品福利视频| 欧美日韩成人在线视频| 欧美日韩麻豆| 国产精品二区在线| 国产精品美女主播| 国产欧美日韩精品丝袜高跟鞋| 国产农村妇女精品| 国语自产精品视频在线看一大j8 | 亚洲美女毛片| 亚洲欧洲精品一区二区三区波多野1战4| 欧美黄色网络| 91久久国产综合久久91精品网站| 美女日韩欧美| 欧美激情国产日韩| 午夜精品视频在线观看一区二区| 亚洲欧洲精品一区二区精品久久久| 亚洲高清激情| 9l国产精品久久久久麻豆| 亚洲午夜精品久久| 新片速递亚洲合集欧美合集| 久久精品久久综合| 欧美不卡视频一区| 欧美色中文字幕| 国产日韩精品综合网站| 狠狠色综合一区二区| 亚洲欧洲综合另类| 亚洲欧美激情视频| 久久蜜桃资源一区二区老牛 | 国产欧美日韩视频在线观看 | 性欧美精品高清| 可以免费看不卡的av网站| 欧美激情免费观看| 国产精品视频一二三| 在线免费观看日本一区| 日韩亚洲欧美成人| 欧美在线视频二区| 欧美高清你懂得| 亚洲素人一区二区| 久久久久久久综合狠狠综合| 欧美日韩国产美| 国产一区二区三区在线播放免费观看| 狠狠入ady亚洲精品| 午夜国产精品视频免费体验区| 亚洲女人av| 欧美sm极限捆绑bd| 亚洲一区二区三区久久| 久久综合伊人77777蜜臀| 欧美日韩免费高清| 国产一区999| 亚洲一区欧美二区| 欧美成人有码| 午夜精品福利在线观看| 欧美激情一二三区| 韩国久久久久| 亚洲欧美卡通另类91av | 国产精品入口福利| 亚洲盗摄视频| 久久精品亚洲一区二区| 亚洲六月丁香色婷婷综合久久| 午夜天堂精品久久久久| 欧美一区二区在线免费播放|