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

hqh

C++博客 聯(lián)系 聚合 管理
  4 Posts :: 2 Stories :: 2 Comments :: 0 Trackbacks

2007年4月18日 #

學(xué)完C++一些初級(jí)的知識(shí)后,應(yīng)該怎樣進(jìn)一步學(xué)習(xí)更多的知識(shí),請(qǐng)大家介紹一下
posted @ 2007-04-18 20:41 hqh 閱讀(196) | 評(píng)論 (2)編輯 收藏

2007年4月7日 #

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

  1.c/c++是程序員自己管理內(nèi)存,Java內(nèi)存是由GC自動(dòng)回收的。

  我雖然不是很熟悉C++,不過(guò)這個(gè)應(yīng)該沒(méi)有犯常識(shí)性錯(cuò)誤吧。

  2.什么是內(nèi)存泄露?

  內(nèi)存泄露是指系統(tǒng)中存在無(wú)法回收的內(nèi)存,有時(shí)候會(huì)造成內(nèi)存不足或系統(tǒng)崩潰。

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

  3.Java存在內(nèi)存泄露

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

  Java中的內(nèi)存泄露當(dāng)然是指:存在無(wú)用但是垃圾回收器無(wú)法回收的對(duì)象。而且即使有內(nèi)存泄露問(wèn)題存在,也不一定會(huì)表現(xiàn)出來(lái)。

  4.Java中參數(shù)都是傳值的。

  對(duì)于基本類型,大家基本上沒(méi)有異議,但是對(duì)于引用類型我們也不能有異議。

  Java內(nèi)存泄露情況

  JVM回收算法是很復(fù)雜的,我也不知道他們?cè)趺磳?shí)現(xiàn)的,但是我只知道他們要實(shí)現(xiàn)的就是:對(duì)于沒(méi)有被引用的對(duì)象是可以回收的。所以你要造成內(nèi)存泄露就要做到:

  持有對(duì)無(wú)用對(duì)象的引用!

  不要以為這個(gè)很容易做到,既然無(wú)用,你怎么還會(huì)持有它的引用? 既然你還持有它,它怎么會(huì)是無(wú)用的呢?

  我實(shí)在想不到比那個(gè)堆棧更經(jīng)典的例子了,以致于我還要引用別人的例子,下面的例子不是我想到的,是書上看到的,當(dāng)然如果沒(méi)有在書上看到,可能過(guò)一段時(shí)間我自己也想的到,可是那時(shí)我說(shuō)是我自己想到的也沒(méi)有人相信的。

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);
 }
}
}

  上面的原理應(yīng)該很簡(jiǎn)單,假如堆棧加了10個(gè)元素,然后全部彈出來(lái),雖然堆棧是空的,沒(méi)有我們要的東西,但是這是個(gè)對(duì)象是無(wú)法回收的,這個(gè)才符合了內(nèi)存泄露的兩個(gè)條件:無(wú)用,無(wú)法回收。

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

  例子1

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

  因?yàn)槭莝tatic,就一直存在到程序退出,但是我們也可以看到它有自愈功能,就是說(shuō)如果你的Stack最多有100個(gè)對(duì)象,那么最多也就只有100個(gè)對(duì)象無(wú)法被回收其實(shí)這個(gè)應(yīng)該很容易理解,Stack內(nèi)部持有100個(gè)引用,最壞的情況就是他們都是無(wú)用的,因?yàn)槲覀円坏┓判碌倪M(jìn)取,以前的引用自然消失!

  例子2

public class NotTooBad{
 public void doSomething(){
  Stack s=new Stack();
  s.push(new Object());
  //other code
  s.pop();//這里同樣導(dǎo)致對(duì)象無(wú)法回收,內(nèi)存泄露.
 }//退出方法,s自動(dòng)無(wú)效,s可以被回收,Stack內(nèi)部的引用自然沒(méi)了,所以
 //這里也可以自愈,而且可以說(shuō)這個(gè)方法不存在內(nèi)存泄露問(wèn)題,不過(guò)是晚一點(diǎn)
 //交給GC而已,因?yàn)樗欠忾]的,對(duì)外不開放,可以說(shuō)上面的代碼99.9999%的
 //情況是不會(huì)造成任何影響的,當(dāng)然你寫這樣的代碼不會(huì)有什么壞的影響,但是
 //絕對(duì)可以說(shuō)是垃圾代碼!沒(méi)有矛盾吧,我在里面加一個(gè)空的for循環(huán)也不會(huì)有
 //什么太大的影響吧,你會(huì)這么做嗎?
}

  上面兩個(gè)例子都不過(guò)是小打小鬧,但是C/C++中的內(nèi)存泄露就不是Bad了,而是Worst了。他們?nèi)绻惶帥](méi)有回收就永遠(yuǎn)無(wú)法回收,頻繁的調(diào)用這個(gè)方法內(nèi)存不就用光了!因?yàn)镴ava還有自愈功能(我自己起的名字,還沒(méi)申請(qǐng)專利),所以Java的內(nèi)存泄露問(wèn)題幾乎可以忽略了,但是知道的人就不要犯了。

  不知者無(wú)罪!Java存在內(nèi)存泄露,但是也不要夸大其辭。如果你對(duì)Java都不是很熟,你根本就不用關(guān)心這個(gè),我說(shuō)過(guò)你無(wú)意中寫出內(nèi)存泄露的例子就像你中一千萬(wàn)一樣概率小,開玩笑了,其實(shí)應(yīng)該是小的多的多!

  而且即使你有幸寫出這樣的代碼,中獎(jiǎng)了!基本上都是一包洗衣粉,不會(huì)讓你發(fā)財(cái),對(duì)系統(tǒng)沒(méi)有什么大的影響。

  杞人憂天的情況

  1.無(wú)話可說(shuō)型

Object obj=new Object();
obj=null;
//這個(gè)完全多此一舉,因?yàn)橥顺隽俗饔梅秶瑢?duì)象的引用自動(dòng)消失
//不要在你的程序中出現(xiàn)這樣的語(yǔ)句,沒(méi)有錯(cuò),但是就是不雅觀

  2.思考不對(duì)型

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

  當(dāng)我們知道Java參數(shù)是傳值,就知道上面的方法什么也沒(méi)錯(cuò),就是申請(qǐng)了一個(gè)對(duì)象然后再丟給GC。因?yàn)槭莻髦担@里的o是一個(gè)調(diào)用時(shí)候的拷貝,會(huì)不會(huì)無(wú)法回收?不就是拷貝嗎,退出方法什么都沒(méi)了,這個(gè)對(duì)象怎么會(huì)留的住。

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

2007年3月30日 #

昨日,我的一個(gè)同學(xué)編了一個(gè)程序,但運(yùn)算出來(lái),得不到正確的結(jié)果.他問(wèn)我,我知道那個(gè)確實(shí)有一定的問(wèn)題,但就是無(wú)法解釋清楚,特來(lái)請(qǐng)教.
#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++,因此我也無(wú)法作出正確解釋,希望有人能幫上忙.
posted @ 2007-03-30 21:19 hqh 閱讀(163) | 評(píng)論 (0)編輯 收藏

2007年3月28日 #

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


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

僅列出標(biāo)題  
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            国产精品人人爽人人做我的可爱 | 久久久久久久高潮| 亚洲男人的天堂在线aⅴ视频| 国产日韩在线播放| 亚洲激情综合| 欧美视频在线观看| 久热精品视频| 欧美色综合网| 欧美高潮视频| 国产欧亚日韩视频| 亚洲人成亚洲人成在线观看| 国产日韩欧美制服另类| 欧美激情视频在线播放| 国产精品一区二区在线观看网站| 欧美电影免费观看大全| 欧美电影免费观看网站| 久久夜色精品国产亚洲aⅴ| 亚洲午夜免费视频| 狼人天天伊人久久| 亚洲欧美一区二区视频| 欧美3dxxxxhd| 久久只有精品| 国产欧美视频一区二区| 中文精品视频| 一区二区高清视频| 久久在线播放| 久久先锋资源| 国产精品一区二区三区四区| 中文av字幕一区| 日韩午夜在线| 能在线观看的日韩av| 久久最新视频| 韩国女主播一区| 亚洲欧美成aⅴ人在线观看| 亚洲综合好骚| 国产精品久久久久久久久久久久| 亚洲精品国产精品久久清纯直播 | 一区二区三区免费观看| 日韩午夜黄色| 欧美精品一区二区三区高清aⅴ| 久久先锋资源| 影音先锋日韩精品| 久久久久国产免费免费| 久久免费国产精品| 国产在线观看一区| 欧美在线免费视屏| 久久精品日韩欧美| 国内视频精品| 久久久久国产成人精品亚洲午夜| 久久久久久噜噜噜久久久精品| 国产美女高潮久久白浆| 午夜国产精品影院在线观看| 欧美中文在线免费| 国产综合色在线| 久久免费观看视频| 欧美电影免费观看高清| 亚洲人成在线观看网站高清| 欧美剧在线免费观看网站| 亚洲精品久久| 亚洲一区视频| 国产网站欧美日韩免费精品在线观看 | 国产精品成人v| 一片黄亚洲嫩模| 午夜精品电影| 国内精品嫩模av私拍在线观看| 久久久久久久一区| 亚洲福利视频一区二区| 国产精品99久久不卡二区| 国产精品九九| 久久精品国产亚洲一区二区三区| 欧美激情一二区| 亚洲一区3d动漫同人无遮挡| 国产噜噜噜噜噜久久久久久久久| 欧美永久精品| 亚洲高清自拍| 午夜精品一区二区三区电影天堂| 免费观看成人www动漫视频| 99视频一区二区三区| 欧美视频在线观看一区二区| 亚洲欧美日韩精品久久亚洲区| 久久婷婷人人澡人人喊人人爽| 亚洲高清久久| 国产精品xxxxx| 午夜精品理论片| 欧美激情一区二区三区不卡| 亚洲专区免费| 亚洲电影第1页| 国产精品第一页第二页第三页| 久久xxxx| 日韩视频免费在线| 久久国产福利| 日韩视频免费| 国产综合18久久久久久| 欧美国产三区| 久久国产视频网站| 夜夜嗨av一区二区三区免费区| 久热re这里精品视频在线6| 亚洲一卡二卡三卡四卡五卡| 亚洲大片av| 国产视频一区二区三区在线观看| 欧美激情一区二区三区在线视频 | 欧美在线亚洲| 亚洲美女在线观看| 国产字幕视频一区二区| 欧美午夜精品一区| 免费成人你懂的| 欧美在线视频免费播放| 在线亚洲精品福利网址导航| 欧美激情一区二区| 久久裸体视频| 性欧美大战久久久久久久免费观看| 91久久综合亚洲鲁鲁五月天| 国产亚洲欧美一区二区| 欧美视频一区二区| 欧美精品久久久久久| 久久亚洲图片| 久久精品欧美日韩| 欧美亚洲日本网站| 亚洲校园激情| 一区二区三区视频在线| 亚洲日本一区二区| 91久久黄色| 亚洲国产精品高清久久久| 美女脱光内衣内裤视频久久网站| 欧美伊人影院| 午夜精品久久久久99热蜜桃导演| 一本久道久久综合婷婷鲸鱼| 亚洲麻豆av| 亚洲麻豆视频| 99精品视频免费全部在线| 亚洲娇小video精品| 亚洲国产老妈| 亚洲国产精品成人综合色在线婷婷 | 久久狠狠亚洲综合| 欧美有码视频| 久久av一区二区| 欧美亚洲一区二区在线观看| 亚洲欧美日韩天堂一区二区| 亚洲欧美另类在线| 午夜精品久久久久久久| 午夜久久福利| 欧美在线观看视频一区二区| 久久不见久久见免费视频1| 欧美一区二区三区在线| 欧美一区二区三区在线视频| 欧美一区国产一区| 久久久久久亚洲精品中文字幕| 久久久久在线观看| 欧美一级视频免费在线观看| 国产精品xvideos88| 国产精品一区二区三区久久久 | 欧美丰满高潮xxxx喷水动漫| 久久在精品线影院精品国产| 麻豆9191精品国产| 亚洲国产精品成人精品| 国产精品第三页| 亚洲综合日韩| 久久五月天婷婷| 亚洲人成网站777色婷婷| 欧美日韩国产精品专区| 亚洲影院色无极综合| 久久综合福利| 一区二区三区欧美亚洲| 国产一区在线播放| 欧美大片专区| 亚洲欧美日韩精品| 欧美成人黄色小视频| 中文一区在线| 狠狠色狠狠色综合日日tαg| 免费日韩av电影| 亚洲性感美女99在线| 看片网站欧美日韩| 一区二区三区欧美成人| 国产一区在线看| 欧美视频亚洲视频| 久久亚洲精品一区| 一本色道久久综合亚洲精品不| 欧美在线视频免费播放| 亚洲精品小视频在线观看| 国产精品你懂的在线欣赏| 蜜桃精品久久久久久久免费影院| 一区二区av在线| 欧美国产在线观看| 久久精品2019中文字幕| 日韩一级大片在线| 久久婷婷人人澡人人喊人人爽| 一本色道88久久加勒比精品| 国产一区二区三区久久久| 欧美精品一区在线| 久久xxxx| 亚洲欧美国产77777| 最新热久久免费视频| 久久久久久久久久久久久女国产乱 | 欧美一区二区精美| 一区二区三区色| 91久久精品日日躁夜夜躁国产| 国产欧美婷婷中文| 国产精品嫩草99a| 欧美日韩一区二区欧美激情| 欧美不卡在线视频|