http://wenku.baidu.com/view/237edaa8d1f34693daef3e97.html
posted @
2011-08-15 16:45 雪黛依夢 閱讀(1166) |
評論 (1) |
編輯 收藏
全國大學計算機專業(yè)排名
中國大學研究生院3個計算機專業(yè)(二級學科)排名,即全國大學計算機專業(yè)排名如下:
1、計算機系統結構排名 學科代碼:081201
排名 校 名 等級 二級學科 一級學科 學科門
1 清華大學 A++ 081201計算機系統結構 081200計算機科學與技術 08工學
2 華中科技大學 A++ 081201計算機系統結構 081200計算機科學與技術 08工學
3 北京大學 A+ 081201計算機系統結構 081200計算機科學與技術 08工學
-
4 東北大學 A 081201計算機系統結構 081200計算機科學與技術 08工學
5 西安交通大學 A 081201計算機系統結構 081200計算機科學與技術 08工學
6 復旦大學 A 081201計算機系統結構 081200計算機科學與技術 08工學
7 中國科學技術大學 A 081201計算機系統結構 081200計算機科學與技術 08工學
8 西安電子科技大學 A 081201計算機系統結構 081200計算機科學與技術 08工學
9 電子科技大學 B+ 081201計算機系統結構 081200計算機科學與技術 08工學
10 吉林大學 B+ 081201計算機系統結構 081200計算機科學與技術 08工學
11 北京航空航天大學 B+ 081201計算機系統結構 081200計算機科學與技術 08工學
12 南京大學 B+ 081201計算機系統結構 081200計算機科學與技術 08工學
13 東南大學 B+ 081201計算機系統結構 081200計算機科學與技術 08工學
14 重慶大學 B+ 081201計算機系統結構 081200計算機科學與技術 08工學
15 武漢大學 B+ 081201計算機系統結構 081200計算機科學與技術 08工學
2、計算機軟件與理論排名 學科代碼:081202
排名 校 名 等級 二級學科 一級學科 學科門
1 北京大學 A++ 081202計算機軟件與理論 081200計算機科學與技術 08工學
2 南京大學 A++ 081202計算機軟件與理論 081200計算機科學與技術 08工學
3 清華大學 A++ 081202計算機軟件與理論 081200計算機科學與技術 08工學
4 武漢大學 A+ 081202計算機軟件與理論 081200計算機科學與技術 08工學
5 復旦大學 A+ 081202計算機軟件與理論 081200計算機科學與技術 08工學
6 華中科技大學 A 081202計算機軟件與理論 081200計算機科學與技術 08工學
7 中山大學 A 081202計算機軟件與理論 081200計算機科學與技術 08工學
8 山東大學 A 081202計算機軟件與理論 081200計算機科學與技術 08工學
9 北京航空航天大學 A 081202計算機軟件與理論 081200計算機科學與技術 08工學
10 中國科學技術大學 B+ 081202計算機軟件與理論 081200計算機科學與技術 08工學
11 西安交通大學 B+ 081202計算機軟件與理論 081200計算機科學與技術 08工學
12 吉林大學 B+ 081202計算機軟件與理論 081200計算機科學與技術 08工學
13 東北大學 B+ 081202計算機軟件與理論 081200計算機科學與技術 08工學
14 西北大學 B+ 081202計算機軟件與理論 081200計算機科學與技術 08工學
貴州大學 B 081202計算機軟件與理論 081200計算機科學與技術 08工學
山東科技大學 B 081202計算機軟件與理論 081200計算機科學與技術 08工學
電子科技大學 B 081202計算機軟件與理論 081200計算機科學與技術 08工學
東南大學 B 081202計算機軟件與理論 081200計算機科學與技術 08工學
四川大學 B 081202計算機軟件與理論 081200計算機科學與技術 08工學
北京理工大學 B 081202計算機軟件與理論 081200計算機科學與技術 08工學
重慶大學 B 081202計算機軟件與理論 081200計算機科學與技術 08工學
大連理工大學 B 081202計算機軟件與理論 081200計算機科學與技術 08工學
北京交通大學 B 081202計算機軟件與理論 081200計算機科學與技術 08工學
北京郵電大學 B 081202計算機軟件與理論 081200計算機科學與技術 08工學
同濟大學 B 081202計算機軟件與理論 081200計算機科學與技術 08工學
上海大學 C+ 081202計算機軟件與理論 081200計算機科學與技術 08工學
3、計算機應用技術排名 學科代碼:081203
排名 校名 等級 二級學科 一級學科 學科門
1 清華大學 A++ 081203計算機應用技術 081200計算機科學與技術 08工學
2 北京大學 A++ 081203計算機應用技術 081200計算機科學與技術 08工學
3 同濟大學 A++ 081203計算機應用技術 081200計算機科學與技術 08工學
4 東南大學 A++ 081203計算機應用技術 081200計算機科學與技術 08工學
5 華南理工大學 A++ 081203計算機應用技術 081200計算機科學與技術 08工學
6 西安電子科技大學 A+ 081203計算機應用技術 081200計算機科學與技術 08工學
7 大連理工大學 A+ 081203計算機應用技術 081200計算機科學與技術 08工學
8 南京大學 A+ 081203計算機應用技術 081200計算機科學與技術 08工學
9 南京理工大學 A+ 081203計算機應用技術 081200計算機科學與技術 08工學
10 武漢大學 A+ 081203計算機應用技術 081200計算機科學與技術 08工學
11 東北大學 A+ 081203計算機應用技術 081200計算機科學與技術 08工學
12 北京郵電大學 A 081203計算機應用技術 081200計算機科學與技術 08工學
13 復旦大學 A 081203計算機應用技術 081200計算機科學與技術 08工學
14 北京航空航天大學 A 081203計算機應用技術 081200計算機科學與技術 08工學
15 北京理工大學 A 081203計算機應用技術 081200計算機科學與技術 08工學
16 吉林大學 A 081203計算機應用技術 081200計算機科學與技術 08工學
17 電子科技大學 A 081203計算機應用技術 081200計算機科學與技術 08工學
18 中國科學技術大學 A 081203計算機應用技術 081200計算機科學與技術 08工學
19 北京工業(yè)大學 A 081203計算機應用技術 081200計算機科學與技術 08工學
20 南京航空航天大學 A 081203計算機應用技術 081200計算機科學與技術 08工學
21 安徽大學 B+ 081203計算機應用技術 081200計算機科學與技術 08工學
22 哈爾濱工程大學 B+ 081203計算機應用技術 081200計算機科學與技術 08工學
23 四川大學 B+ 081203計算機應用技術 081200計算機科學與技術 08工學
24 天津大學 B+ 081203計算機應用技術 081200計算機科學與技術 08工學
25 南開大學 B+ 081203計算機應用技術 081200計算機科學與技術 08工學
26 北京科技大學 B+ 081203計算機應用技術 081200計算機科學與技術 08工學
27 中南大學 B+ 081203計算機應用技術 081200計算機科學與技術 08工學
28 蘇州大學 B+ 081203計算機應用技術 081200計算機科學與技術 08工學
29 重慶大學 B+ 081203計算機應用技術 081200計算機科學與技術 08工學
30 合肥工業(yè)大學 B+ 081203計算機應用技術 081200計算機科學與技術 08工學
31 湖南大學 B+ 081203計算機應用技術 081200計算機科學與技術 08工學
32 西安交通大學 B+ 081203計算機應用技術 081200計算機科學與技術 08工學
33 山西大學 B+ 081203計算機應用技術 081200計算機科學與技術 08工學
西南交通大學 B 081203計算機應用技術 081200計算機科學與技術 08工學
華中科技大學 B 081203計算機應用技術 081200計算機科學與技術 08工學
山東大學 B 081203計算機應用技術 081200計算機科學與技術 08工學
中山大學 B 081203計算機應用技術 081200計算機科學與技術 08工學
北京交通大學 B 081203計算機應用技術 081200計算機科學與技術 08工學
中國人民大學 B 081203計算機應用技術 081200計算機科學與技術 08工學
太原理工大學 B 081203計算機應用技術 081200計算機科學與技術 08工學
武漢理工大學 B 081203計算機應用技術 081200計算機科學與技術 08工
posted @
2011-07-26 17:25 雪黛依夢 閱讀(2373) |
評論 (0) |
編輯 收藏
posted @
2011-07-26 16:56 雪黛依夢 閱讀(287) |
評論 (0) |
編輯 收藏
跨專業(yè)考研
跨專業(yè)考研
考研是現在大學生或是已經工作的人,為求的自己的完善,或是為了逃避嚴苛的社會競爭,選擇的一種生活和學習方式。 跨專業(yè)考研,就是在自己所學專業(yè)之外,選擇與自己所學專業(yè)有關或是無關的非本專業(yè)課程,作為研究或是考研目標,進行的研究生考試復習,進行研究生考試的活動。
編輯本段跨專業(yè)考研
顧名思義,這個經常出現的詞匯中,重要的是
跨專業(yè)。
考研是現在大學生或是已經工作的人,為求的自己的完善,或是為了逃避嚴苛的社會競爭,選擇的一種生活和學習方式。
跨專業(yè)考研,就是在自己所學專業(yè)之外,選擇與自己所學專業(yè)有關或是無關的非本專業(yè)課程,作為研究或是考研目標,進行的研究生考試復習,進行研究生考試的活動。
編輯本段跨專業(yè)考研:跨越專業(yè)界限,讓人生飛躍
在專業(yè)選擇上,考生往往會面臨這樣一個問題,就是選擇本專業(yè)
考研還是跨專業(yè)考研?很多考生都無法去冷靜權衡這個問題,做出一個自己的選擇。尤其是挑戰(zhàn)技巧難度都高出一籌的跨專業(yè)考研的同學,你們在下決心轉彎于人生拐角的時候,希望你們能夠了解,跨越專業(yè),其實不僅是改變了學習方向,也是讓人生能夠有所突破與飛躍,開辟自己新的人生航道。 下面我們將具體談談跨專業(yè)考研。
跨專業(yè)考研的難度
很多同學跨專業(yè)考研的時候必須考慮的問題是,跨專業(yè)考研的難度。
你在原來大學里所真正感興趣的東西沉淀了多少基礎,你要選擇的專業(yè)它所在這個學校,每年競爭的難度到底有多大,都是一幫什么樣的戰(zhàn)士一起和你競爭這個專業(yè),這一點是同學必須考慮的。
在為期一年的復習過程中,如果你去跨專業(yè),而且從冷門跨到熱門,或者跨到完全不相干的專業(yè),比如你原來學生物,現在你非要學金融,你原來學醫(yī)學,現在非要學管理、會計,這樣面臨的難度比較大,你必須考慮,你所要學習的所有公共課和專業(yè)課的知識,完成的學習任務,是不是你目前的基礎能夠在一年時間里面完成的,這是很現實的,不是光憑熱情和勇氣就能解決的問題。
我覺得這兩個方面,大家必須結合起來去考慮。
給自己定一個目標
給自己定一個目標,而且是明確的目標,通過各種調查方式明確這個目標到底是不是你想要的;很多同學可能不知道怎么檢驗這一點,我覺得這個檢驗的方法也很簡單。你怎么去確定自己的目標呢?就和談戀愛一樣,如果你們班上有一個女生,或者隔壁班上有一個女生,或者系里面有一個女生,如果達到每天不看她一眼你睡都睡不好覺的程度,這個目標說明你一定確定了,當然很多同學也知道,你看重的可能都是“系花”、“校花”,這就是第二點難度的問題你雖然定了目標,可能人家不一定看得上你,或者你不一定有這樣的能力去競爭。
結合自身實際選擇專業(yè)
選專業(yè)也是這樣,如果你要跨越這個專業(yè),你所選擇是不是你在大學里面,或者你從小就開始向往的專業(yè)、方向,如果確實是這樣,我覺得這個目標還要去爭取,然后再看看這個目標對你來說是不是有很高的難度。我覺得對我們來講,文經類的專業(yè),只要智商不低于100人的人,只要真正想干,我覺得你一定能夠至少學會他,雖然不一定會成為這個行業(yè)的頂尖高手。因為那些東西大部分死記硬背就可以解決一定的問題,有些東西靠一點天分。在一些理工類的頂尖專業(yè)方面,很多同學學一些數學、物理、化學和生物方面的東西,你的目的是做生物研究,如果在這方面你的智商或者鉆研精神不達到一定的深度,這些專業(yè)入門都很難,因為它要持續(xù)不斷地滾動學習。我不是說重理輕文,因為和同學交流的過程中,有一些問題要說清楚,難免強調一下。但是文科學習的特性就是這樣的,你可能背一段,不影響你對其他知識點的理解,如果理工科,任何一章學不會,后面的章節(jié)根本沒有辦法進行。
所以,是否跨專業(yè)方面,從原理層面,我給大家強調的就是這兩個方面,第一你的主觀意愿,你的目標到底是什么,第二你所要根據你的意愿選擇的目標,它的難度要求到底是不是你能夠接受的范圍。其實,究竟是跨是守,其實只要跟隨心聲、跟隨意志,跨越自己,相信夢想就能被放飛。
近年來,管理類研究生、法碩、計算機專業(yè)、金融學、通信等專業(yè)研究生的報考一直是一個熱點,連續(xù)幾年來,這幾個專業(yè)的研究生也一直居高不下,前前后后排列在歷年考研十大熱門專業(yè)中。
[1]
編輯本段跨專業(yè)考研注意事項
編輯本段1.慎重選擇:不要輕易下決定
不斷地學習不同領域的知識,是所有有求知欲的人們的美好愿望,然而,這同樣會成為朝三暮四的借口。
其實,很多考研人本來就存有逃避現實社會的壓力,而選擇繼續(xù)呆在學校的心理;而在跨專業(yè)考研的人中,更有許多人根本就沒有好好學過原來的專業(yè),甚至從沒認真考慮過是否自己適合它,只為了逃避,才選個看起來容易的專業(yè)去考。
如果是這樣,請先停下來想想自己到底想要什么再說。因為一顆對待生活從不認真的心,是不會因為換了個專業(yè)就能有起色的。
如果不是這樣,那么,也請三思。就因為一直認真,這次更要謹慎。
首先,考研復習將是艱巨的歷程。
隔行如隔山——這句古諺將貫穿之后的整個求學過程。
自己原來的專業(yè),再不濟也學了三四年,耳濡目染,基礎知識一定比沒學過的扎實,細節(jié)也許沒鉆研,但大的格局和概念、思維方式是存在于腦海中的,即使是每次考前一個月的突擊,突擊了四年,也不是沒有用的。這就是本專業(yè)對于外專業(yè)的一大優(yōu)勢。反過來,即是跨專業(yè)者相對于本專業(yè)者的劣勢。
復習的時候,要花更多的時間在專業(yè)課上,使得基礎課很容易就被擱置了,而任何一科的掉隊,都會影響整個復習過程的心態(tài)和考試結果。
其次,備考中可能出現意想不到的困難。
不熟悉專業(yè)試題的答題慣例,會莫名其妙丟掉不該丟的分。而且,筆試通過了,復試中存在的不確定性因素,使跨專業(yè)者總是難以擁有“盡在掌握”的自信,而它確實也是難以“盡在掌握”的。
考上之后學習中的困難
最后,也是最重要的,考上之后三年的研究生生活。
不管是面對基本功扎實的同學們,還是面對有一定要求和標準的導師,還是面對也許讓自己一時找不到坐標點的新求學生涯——如何給自己定位,如何重拾自信,如何建立對新專業(yè)的“新感情”,如何規(guī)劃以后的職業(yè)和人生,這都是需要付出比別人更多心力去克服的問題。
所以,是否要轉變方向,換一個專業(yè),需要尖銳嚴格地審視自身,而不是盲目跟風,可以考慮以下幾點:
是否真正熱愛將要為之付出心血的新專業(yè)?
長遠來看,這個新領域是否有自己的天賦和性格發(fā)揮的空間?
是否可以肯定學習三年之后真能豐富完善自己的知識結構,而不是剃頭擔子兩頭塌?
最后也是最基本最當前的問題:基礎課是否有自身優(yōu)勢?沒有優(yōu)勢怎么撥得出更多的時間給專業(yè)課的復習?
編輯本段2.審時度勢:了解自己,踏實去做
經過了自我的拷問,還堅定地要跨專業(yè)考研的朋友——相信你一定是個頭腦清醒、夢想堅定的人。
在此,我們不得不再次強調跨專業(yè)考研的理由和標準:第一,熱愛;第二,基于對自身才智和優(yōu)勢短處進行全面評估而做出的決定;第三,要自信,更要不怕苦不怕累。
可以舉個例子。一個在學校并非不認真對待自己學業(yè)的考研人,在經過四年的學習之后,發(fā)現仍然不喜歡自己所學的數學專業(yè),而愛好文史哲。如果基礎課英語政治還不錯,那么他就具備了考慮跨專業(yè)考研的最低要求。那么,接下來怎么確定專業(yè)呢?首先,看愛好。對新聞傳播、考古、文學皆有興趣,怎么辦?一個一個排除。對于新聞,多搜集資料,看作為一個新聞工作者需要什么樣的素質,比如,敏銳的新聞感、強烈的爭取和參與意識、健康的身體。直面自己的優(yōu)缺點,如果有敏銳的新聞感,卻沒有強烈的爭取和參與意識,甚至都無法面對需要長時間的工作強度,那么放棄。對于考古,作同樣評估;另外,如果這時你的父母親反對你的考古夢想,請把他們的憂慮考慮進去,一意孤行并不可取,要考慮到家庭的實際情況;并且,父母也是了解你的人,他們對你的性格、天分其實很了解。那么如果你認為父母意見的可接受性大過你對于考古的熱忱,考古這一項,也被劃去。最后剩下文學,如果經過一系列評估,覺得可行,那么它之下還有很多專業(yè)細分,是中國文學還是世界、比較文學,是古代文學還是現當代文學?要根據自己平時看書的偏好、積累的多少、考試試題能否應付等等內在和外在的因素來決定。這些將和下一部分聯系起來談。
這只是一個例子,跨專業(yè)的方向轉變五花八門,幾頁紙不可能描述詳盡,我們只能通過這個例子,了解一下需要考慮和平衡的各方面因素。
當然,請牢記,
內心的熱愛和對自己學習能力的自信在選擇中最為重要。有了這兩點,相信你的選擇會是對你而言最好的選擇。這將是一個美麗的決定,決定之后,一定有云開見日的感覺。方向確定了,就朝著那兒毫不回頭地走吧。
編輯本段3.報考準備:眼觀六路,耳聽八方
第一,細分專業(yè)和學校,確定報考目標。
一定要看自己喜歡哪個城市,既然想借助這次的考研改變現狀開始一段新的求學歷程,一直想去哪個(或哪些)城市念書就不要將就。圈出大致范圍,再找到那里學校的招生簡章、專業(yè)招生表——網上查找或動用一切關系。特別要注意的是,你有意向的專業(yè)是否拒絕跨專業(yè)考生。在進行認真細致的對比之下確定兩到三個你想去的名校和你喜歡的專業(yè)。這一步可以和前面確定城市同時進行,每個人情況不同,自行制定每一步適合自己的計劃是必要的,而且能從中得到極大的充實感,總之,它讓我們感到:一切都在自己的控制之下。
然后,盡可能地多找一些這幾個可選學校可選專業(yè)的歷年試題,仔細研究,看看哪一類的試題自己更有把握。這一步至關重要,這一步不可省略也不可推后,它將直接影響到以后的考試發(fā)揮。經過這一步,學校和細分專業(yè)幾乎都能定下來了。
這一階段什么時候進行呢?越早越好。我們不提倡把戰(zhàn)線拉得太長,真正有效的復習從4月到次年1月足矣;然而跨專業(yè)不同,需要“醞釀”。可以不用過早開始真正的復習,但至少要比別人早兩個月到半年開始尋找學校、涉獵與新專業(yè)相關的期刊、書籍、尋找對于新專業(yè)的親近感和對于新學校新未來的向往感——這是真正復習開始的前站,用這段時間彌補跨專業(yè)的不足,在真正的戰(zhàn)役打響時,我們將更加堅定更有信心。
第二,專業(yè)課教材到位。
前面把工作真正做到細致,4月份到5月份一定要定下最終要考的學校和專業(yè)。定下之后,就要相信自己的判斷,不要猶疑,快去買專業(yè)課教材!按照學校列出的書目買全專業(yè)課教材,還要找出一兩個能幫上忙師兄師姐、找同學、找親戚,甚至找網友去打聽沒有列出的那些。
這里有兩個問題:買書和找?guī)熜謳熃?#8212;—自己能買到的書,盡量自己去買,有學校可以郵購,有書店可以搜尋,再不行,去圖書館系統或網上找出這本書的出版社,找到出版社電話,打電話、匯款去郵購。不要一開始就事事麻煩別人,自己能解決的自己找渠道解決。后面有更重要的事去麻煩他們。實在不行了,去找?guī)熜謳熃悖钪匾氖菃栴}要明確。隨便說:“我要考你們學校某專業(yè),請幫助我”是沒用的。要明確說出你的具體問題,要考哪些書,重點看哪些泛讀看哪些,打聽到哪里能買到自己卻沒辦法,請他們幫忙——聽到這么明確的問題,人人都會樂意幫忙。6月底之前,主要的專業(yè)課教材一定要到位。
第三,復習時要注意的問題。
首先,基礎課不能偏廢。前面說了
,基礎課要有一定把握,才可能跨專業(yè)考研,否則到關鍵時刻就會感到分身乏術。在主攻專業(yè)課時,基礎課一天都不能停。可以用早晨、吃午飯前、吃晚飯前以及睡覺前的時間去復習英語:閱讀、單詞、聽力,一個都不能少。如果每天堅持,就是這些邊邊角角的時間都足夠英語的復習準備。政治也一樣,最好報一個秋季班,幾個月上下來,有老師領著復習,比自己摸索更有效率,大致的知識脈絡也會清晰起來了。請相信自己,從初中就開始學的這門課,不會差到哪里去,但也要在心里培養(yǎng)對它的興趣,一討厭它、擱置一段日子,一切都晚了;反過來,每天花兩個小時,只要堅持,就會既輕松又有成就感。
跨專業(yè)考生往往把一腔熱情放在專業(yè)課上,有意無意地就偏廢了基礎課,等發(fā)覺時間緊迫的時候,回頭一看基礎課落下一大截,這會大大影響后面沖刺和考試的信心。
其次,專業(yè)課復習。11月份報名之前一定要把專業(yè)書踏踏實實至少細讀一遍。這一遍不要欺騙自己,質量至上,一定要全部弄通弄懂。這樣在后面的兩個月才會更有底。
筆記一定要做。當11月報名時間來臨時,你會發(fā)現越來越多的人們討論起復習進度。那時候本專業(yè)考生和別的跨專業(yè)考生所做的準備和進度會讓你大驚失色——有那么多人準備得那么好!本來就對不熟悉的專業(yè)容易產生的“心虛”這個時候會更加強烈,那么回過頭總結一下自己的成果,只有實實在在密密麻麻的幾本筆記會成為自己的強心劑,數數看,幾本筆記,七八萬字是少不了的。加上政治英語,你會為自己所做的上10萬字的筆記而驚訝的。這是積聚信心、抬頭挺胸的重要來源。
編輯本段4.全力復習:堅持到底,毫不畏懼
首先,研究歷年試題,自己劃重點。
歷年試題非常非常重要,報名之前即11月初,一定要把學校相關專業(yè)的歷年試題弄到手。這需要積極調動網絡資源,自己能下載的下載,能買到的去買,最后一招:求助師兄師姐。這時提出的請求也一樣要盡可能明確。有一個女生,考某大學某專業(yè),通過同學的同學的姐姐,找到一位師姐,打電話給她:“我知道你們學校圖書館五樓的閱覽室有歷年試題的專柜,可以借出來復印。請幫忙復印某年到某年某專業(yè)的……”該師姐大驚:“我都不知道有這樣一個地方,你怎么知道的?”這個女生慢慢說來,怎么從網上找到該學校專欄討論、怎么了解到的,師姐大開眼界,興趣高漲,幫她把相關專業(yè)能找到的試題全都復印一通寄去。
接下來就是更仔細地研究試題。只需要一個晚上時間,把歷年試題全都擺在桌面,總結規(guī)律和重點難點,老師出題的習慣等等。借此可以劃出下一步復習的重點(甚至是考試的重點),不再一律通讀,而是有頭腦的、有目標的復習。不要怕系內老師改朝換代,再改也有一脈相承的科研風格,掌握了大體,以不變應萬變。
劃完重點,一股“運籌帷幄”的氣勢油然而生,趁著這股氣勢,投入到更深入的復習中去,一定事半功倍。
其次,為考試做準備,掌握專業(yè)答題習慣。
在剩下的兩個月當中,一定要找點時間去學校的自己要考的專業(yè)宿舍混混,目的是了解專業(yè)答題有什么慣例、有什么特殊要求和需要注意的地方。隨便哪個學校都行,自己方便找的、正規(guī)的大學就可以;當然,方便的話,最佳選擇就是所考學校研一同專業(yè)學生宿舍,這樣就不僅了解試題情況,還可以挖掘更多這兩個月應該注意的問題。
考試的時候,和復習中所強調的一樣——一定要自信。要相信自己經過了周密的計劃、萬全的準備。拿到試卷的時候,要像熱愛專業(yè)書籍一樣熱愛它們,冷靜的頭腦,熱情的心靈,一定戰(zhàn)無不勝。
總結
最后,就是復試了。關于導師是否要找,各有各的說法,能找到最好,沒找過的也不用惴惴不安。相信自己最重要。
其實接到復試通知書的時候,一般都沒有更多時間去擴展知識面了,這些是最初就應該做的。這時候跨專業(yè)考生常常擔心自己的基礎不夠,再次心虛。那么與其瞎抓一把,不如把以前看過的書拿出來再翻一遍,總有用得上的,做生不如做熟。對于某些領域的熟悉或精通,比泛泛而談更能顯出自己的特色。用真誠的微笑和哪怕是使勁鼓才能鼓起的信心和勇氣,去直面導師。好歹經過這一年的學習,我們也算復合型人才了,怕什么!
說到這里,整個過程看起來完了——其實沒有!拿到錄取通知書的時候,是一個開始。
進入研究生階段的學習,是一個更自主、更專業(yè)的學習過程,跨專業(yè)學生一踏入這片天地,肯定會受到沖擊。不熟悉的領域,老師覺得應該是常識自己卻聞所未聞的知識,難以找到的新生活定位……這些都要有心理準備。建議在5月到8月這段天堂般的生活中也不要忘記看看與專業(yè)相關的書籍(并非專業(yè)課本),繼續(xù)打基礎,進入研究生生活根本沒有時間給你去打基礎。
總之,對于勇敢的跨專業(yè)考研人,繼續(xù)用韌性和信心,在開學前調養(yǎng)好身心,并不放棄不斷學習的好習慣,為進入一個新的求學生涯做好準備,都是必要的。相信這樣貫穿始終的準備,一定會迎來新的局面,實現挑戰(zhàn)人生充實自己的夢想。對生活認真,生活也會認真地回報你。要相信,要堅持。
綜上所述,跨專業(yè)考研,需要勇氣、需要毅力、更需要技巧,只要堅持,就有收獲!
跨專業(yè)考研的輔導機構
跨考教育是目前唯一專注于研究跨校、跨專業(yè)考研、專業(yè)碩士的服務機構,跨考教育已成為國內領先的考研、MBA權威輔導機構。
posted @
2011-07-26 15:34 雪黛依夢 閱讀(319) |
評論 (0) |
編輯 收藏
計算機專業(yè)就業(yè)方向一、 關于企業(yè)計算方向企業(yè)計算(Enterprise Computing)是稍時髦較好聽的名詞,主要是 指企業(yè)信息系統,如ERP軟件(企業(yè)資源規(guī)劃)、CRM軟件(客戶關系管理)、SCM軟件(供 應鏈管理,即物流軟件),銀行證券軟件,財務軟件,電子商務/政務(包括各種網站),數 據倉庫,數據挖掘,商務智能等企業(yè)信息管理系統.企業(yè)計算領域對人才的需求顯然永遠是數量最大的,因為這是計算機應用最多的領域. 搞這 方面的好處是:(1)人才需求量極大,從事企業(yè)計算的公司在IT企業(yè)中占了大多數。除非在專業(yè)上一無特長 ,一般在這一領域總能找到工作。 (2)這方面的入門門檻相對較低(如果你的軟件功底不是很深,可考慮這一領域) (3)這方面的大公司較多,大公司要賺大錢,所以多將精力花在企業(yè)計算業(yè)務上.如果將來想 到大公司找一份相對穩(wěn)定的工作,從事這方面機會要大很多。 但從事這一領域的缺點也是明顯的: 由于這方面的入門門檻相對較低,雖然這方面的人才需求量是最大的,但將來競爭對手會 較多。您會發(fā)現,即使他原不是學IT專業(yè)的人,也許他突擊幾個月后,做得照樣像模像樣 。特別是當您年紀漸大后,您可能會發(fā)現,后面的年輕人可能很容易追上你的水平。如果 您將來到國外去工作,你可能會發(fā)現從事這領域的人更多且高手如云。當然,若您在這一 領域經過多年企業(yè)經驗,達到較高境界(如能設計軟件架構),則身價永遠是高的。國內 在這方面人才領域的主要問題是,有經驗的高手太少,皮毛了解的人太多。 從事企業(yè)計算領域,最重要的技能型技術課程是 (1)J2EE架構與程序設計 (2)大型數據庫系統(如Oracle)(3)基于UML的系統分析與設計。 如果說還有什么重要的技能,還可將XML與Web Service技術包含進來,若您在這幾個領域 掌握較好,則不愁找不到工作。 其中尤其以J2EE最為重要,目前J2EE已成為企業(yè)計算軟件開發(fā)的最主要平臺。希望同學無 論將來想從事何種方向,都應學一下J2EE課程,至少可為將來找工作備一手關鍵功夫。包 括想從事嵌入式或其它領域的同學,也是很有必要學一下J2EE的,畢竟J2EE是目前最重要 的平臺之一,即使您將來不想從事企業(yè)計算領域,了解一下J2EE也是必要的,就像一門常 識課程一樣。 其它與企業(yè)計算關系較密切的技能還包括:Dot Net架構與程序設計、軟件測試技術、軟件 配置管理,該領域較高層次的技能包括數據倉庫技術、構件與中間件技術、設計模式等。 像通信協議分析與網絡程序設計,Unix系統管理等也屬有些關系的課程。 只一個J2EE便是博大精深的,足夠你啃下去的,鉆研下去,您會發(fā)現你還要學的相關知識 還有很多(包括EJB、XML、Web Service、Design Pattern等)。 雖然從事企業(yè)計算的人才很多,但以下企業(yè)計算領域無論國內外都屬稀缺人才: (1)掌握大型ERP系統,主要是SAP系統,包括SAP Basis(系統管理)或SAP ABAP(編程) 或SAP功能模塊實施(特別是財務模塊FI的實施)。 SAP顧問身價是最高的,而且非常難找。其它大型ERP系統,掌握 PeopleSoft、Oracle Finacial、J.D.Edward、Siebel等大型ERP軟件系統的人也很值錢。這方面的人之所以身價奇 高,主要是因為這些軟件很專業(yè),特別大,很難有D版可學習,只有特大企業(yè)(如世界500強,90%以上使用SAP)才用得起,而且必須有實際工作經驗才能掌握。如果是一個個人人 都很容易有機會接觸的軟件,那么這方面的人通常就不會稀缺。如果大家將來有機會接觸 學習這些大型ERP軟件系統的機會,建議毫不猶豫地抓住,那將捧上一輩的金飯碗。在國外 ,會SAP的人特別值錢。物以稀為貴,這永遠是顛撲不破的真理。SAP的價值不僅是因為他 是一個ERP軟件,而是其中體現的現代企業(yè)管理理念(如根據訂貨需求自動安排原料采購和 生產計劃等)。一般500強公司絕不會像國內很多企業(yè)那樣,用J2EE從頭設計企業(yè)的 ERP系 統(即將是怎樣的人力投入,而且設計出來的系統怎么可能是完善的?),一定都會使用 SAP這樣成熟的ERP軟件。用不起SAP的公司可能會用 J2EE設計ERP系統。 (2)掌握IBM大型機技術的人,如S/390主機,MVS操作系統,JCL作業(yè)控制語言,COBOL程 序設計語言,DB2關系數據庫或IMS層次數據庫,CISC中間件交易控制系統等IBM大型機專用 技術。 國內五大銀行,以及國外絕大多數銀行的后臺系統使用的都是以上平臺。IBM大型機號稱永 不宕機而且平臺相對封閉(這樣最安全),所以這些要求在24*7環(huán)境中連續(xù)運行的關鍵應 用(術語叫mission critical applications)都采用IBM大型機。這方面的人才之所以稀缺 ,是因為會大型機的人都是老人(90年代以前搞IT的人),全世界新畢業(yè)的IT畢業(yè)生不可 能再去學IBM大型機(這是一種相對"古老"的技術),沒有新人補上,而銀行的系統必須維持 下去而且銀行還要不斷開發(fā)新業(yè)務(如新的存款品種), 雖然對IBM大型機人才的絕對需求量 不很大,但相對恒定,銀行到哪里找這方面的新人,很難找到. 若好找,花旗軟件也不會花那 么大的代價去培訓我們的實習同學了(去年培訓20多個人,聽說公司就花了數十萬元培訓費 ). 如果您將來到國外找工作,會IBM大型機可能是最好找工作的領域之一了,而且保證找的 都是大銀行等好工作,我以前教過的計算機專業(yè)90-94級的一些同學,凡是畢業(yè)后從事大型機 開發(fā)的,現多在國外一些很好的公司工作(有幾位同學在各國各公司跳來跳去,簡直如履平地 ). 其實我覺得我們最幸福的同學就是在花旗軟件做IBM大型機銀行軟件的同學,這樣的機會 太難得了.我院00級2+2班一位同學,當初放棄保研,看準在花旗軟件做大型機并且非常努力 ,還未畢業(yè),公司便派她到國外參加一個項目的開發(fā),成了項目骨干,我覺得她當初選擇是完全 正確的。讀書的最終目地還是為了工作. 如果您將來在國外找工作,根本沒人管您是什么文 憑,國外企業(yè)絕不會花冤枉錢,只會招有領域工作經驗能立即上手的人,用最少的錢在限定的 時間完成項目. 而在國內,因為人力成本較低,公司招聘一很多高學歷的人才,盡管可能根本 用不到這么高的學歷,但國內的人力太便宜了,為什么不高消費一下人才呢?這樣公司的門面 還要好看些。 .(3)其它如掌握數據倉庫技術的人在國內也很少. 目前最主流的數據倉庫平臺應是ORACLE的數據倉庫工具. 在國外,會一些特殊數據倉庫的人,如NCR/TEREDATA的人非常難找.同學現在年紀都很輕,年輕人充滿熱情,喜歡追逐一些熱門技術,這當然正確的,畢竟學習SAP和大型機的機會畢竟不多,畢業(yè)時先能找到一份工作是重要的. 但我相信隨著年紀的增長 ,大家將來慢慢都會思考的,掌握一項競爭對手較少的絕技的重要性,將來如果自己到國外工 作什么技術最好找工作(對搞軟件的人到國外工作或移民是最容易的,也許您現在不想,但我 相信工作多年以后,很大一部分同學可能想到國外闖蕩一下),你要考慮你今后一生的出路,什么樣的絕技是最穩(wěn)定最輕松最高收入的. 搞軟件的人,當年紀大些時,您可能更向住像搞 醫(yī)學人的那樣能更多靠經驗吃飯,而不須整天像年輕人那樣不得不去追逐不斷出現的軟件新 技術,這個時候也許您也許會發(fā)現,如果您在SAP或大型機等方面有些絕技,您會有很大優(yōu)勢 ,因為這些較偏的領域其技術變化是相對很緩慢的.我還記得在2000年時我曾在業(yè)余時間與一位德國人合作面試一些IT人才到德國去,那時德方 各公司發(fā)來的需求有很多是SAP和IBM大型機的,我們在眾多應聘者中最后也未找到一個在這 方面有經驗,甚至是有一點經驗的. 相反,掌握流行技術的人因太多而不很值錢. 我們的同學將來找工作時,不僅要盯著國內市場,還要有一種放眼全球的眼光,對搞軟件的 人您將來完全可能到其它國家去工作. 尤其是在歐美、日本、新加坡等國家,對SAP(包括 IBM大型機)人才的需求是很大的。畢竟比同學見得多些,提醒同學將來多留意有學習這些 絕技的機會,一旦有機會建議當仁不讓. 國內的人才市場可訪問www.51job.com,國外的IT人才需求可訪問www.hotjobs.com、www.workopolis.com、 www.monster.com等著名網站。 應經常訪問這些網站,以了解市場對人才的具體需求,早做準備。 以上對企業(yè)計算領域的觀點,供大家參考.雖然觀點未必正確,但確是直言不諱. 總之,每個 人的腦袋都長在自己脖子上,每個人都應有自己的判斷.二、關于嵌入式系統方向 (幫炊餅宣傳,記得請我吃飯啊
)嵌入式系統無疑是當前最熱門最有發(fā)展前途的IT應用領域之一。嵌入式系統用在一些特定 專用設備上,通常這些設備的硬件資源(如處理器、存儲器等)非常有限,并且對成本很 敏感,有時對實時響應要求很高等。特別是隨著消費家電的智能化,嵌入式更顯重要。像 我們平常常見到的手機、PDA、電子字典、可視電話、 VCD/DVD/MP3 Player、數字相機( DC)、數字攝像機(DV)、U-Disk、機頂盒(Set Top Box)、高清電視(HDTV)、游戲機、智能 玩具、交換機、路由器、數控設備或儀表、汽車電子、家電控制系統、醫(yī)療儀器、航天航 空設備等等都是典型的嵌入式系統。 嵌入式系統是軟硬結合的東西,搞嵌入式開發(fā)的人有兩類。 一類是學電子工程、通信工程等偏硬件專業(yè)出身的人,他們主要是搞硬件設計,有時要開 發(fā)一些與硬件關系最密切的最底層軟件,如BootLoader、 Board Support Package(像PC的 BIOS一樣,往下驅動硬件,往上支持操作系統),最初級的硬件驅動程序等。他們的優(yōu)勢 是對硬件原理非常清楚,不足是他們更擅長定義各種硬件接口,但對復雜軟件系統往往力 不從心(例如嵌入式操作系統原理和復雜應用軟件等)。 另一類是學軟件、計算機專業(yè)出身的人,主要從事嵌入式操作系統和應用軟件的開發(fā)。如 果我們學軟件的人對硬件原理和接口有較好的掌握,我們完全也可寫B(tài)SP 和硬件驅動程序 。嵌入式硬件設計完后,各種功能就全靠軟件來實現了,嵌入式設備的增值很大程度上取 決于嵌入式軟件,這占了嵌入式系統的最主要工作(目前有很多公司將硬件設計包給了專 門的硬件公司,稍復雜的硬件都交給臺灣或國外公司設計,國內的硬件設計力量很弱,很 多嵌入式公司自己只負責開發(fā)軟件,因為公司都知道,嵌入式產品的差異很大程度在軟件 上,在軟件方面是最有"花頭"可做的),所以我們搞軟件的人完全不用擔心我們在嵌入式 市場上的用武之地,越是智能設備越是復雜系統,軟件越起關鍵作用,而且這是目前的趨 勢。 從事嵌入式軟件開發(fā)的好處是: (1)目前國內外這方面的人都很稀缺。一方面,是因為這一領域入門門檻較高,不僅要懂 較底層軟件(例如操作系統級、驅動程序級軟件),對軟件專業(yè)水平要求較高(嵌入式系 統對軟件設計的時間和空間效率要求較高),而且必須懂得硬件的工作原理,所以非專業(yè) IT人員很難切入這一領域;另一方面,是因為這一領域較新,目前發(fā)展太快,很多軟硬件 技術出現時間不長或正在出現(如ARM處理器、嵌入式操作系統、MPEG技術、無線通信協議 等),掌握這些新技術的人當然很找。嵌入式人才稀缺,身價自然就高,越有經驗價格就 越高。其實嵌入式人才稀少,根本原因可能是大多數人無條件接觸,這需要相應的嵌入式開 發(fā)板和軟件,另外需要有經驗的人進行指導開發(fā)流程。 (2)與企業(yè)計算等應用軟件不同,嵌入式領域人才的工作強度通常低一些(但收入不低) 。搞企業(yè)應用軟件的IT企業(yè),這個用戶的系統搞完了,又得去搞下一個用戶的,而且每個 用戶的需求和完成時間都得按客戶要求改變,往往疲于奔命,重復勞動。相比而言,搞嵌 入式系統的公司,都有自己的產品計劃,按自己的節(jié)奏行事。所開發(fā)的產品通常是通用的 ,不會因客戶的不同而修改。一個產品型號開發(fā)完了,往往有較長一段空閑時間(或只是 對軟件進行一些小修補),有時間進行充電和休整。另外,從事嵌入式軟件的每個人工作 范圍相對狹窄,所涉及的專業(yè)技術范圍就是那些(ARM、RTOS、MPEG、802.11等),時間長 了這些東西會越搞越有經驗,賣賣老本,幾句指導也夠讓那些初入道者琢磨半年的。若搞 應用軟件,可能下一個客戶要換成一個完全不同的軟件開發(fā)平臺,那就苦了。 (3)哪天若想創(chuàng)業(yè),搞自已的產品,那么嵌入式是一個不錯的主意,這可不像應用軟件那 樣容易被盜版。土木學院有一個叫啟明星的公司開發(fā)出一個好象叫“工程e”的掌上PDA( 南校區(qū)門口有廣告),施工技術人員用該PDA可當場進行土木概預算和其它土木計算,據說 銷路特好。我認識的某大學老師,他開發(fā)的飯館用的點菜 PDA(WinCE平臺,可無線連網和 上網),據他說銷路不錯,飯館點點PDA讓客戶點菜,多顯派頭檔次。我記得00級2+2班當 年有一組同學在學 Windows程序設計課程時用VC++設計了一個功能很強的點菜系統做為課 程項目,當時真想建議他們將這個軟件做成PDA,估計會有些銷路(上海火車站南廣場的Macdonald便使用很漂亮的PDA給用戶點食品,像摸像樣的)。這些PDA的硬件設計一般都是 請其它公司給訂做(這叫“貼牌”:OEM),都是通用的硬件,我們只管設計軟件就變成自 己的產品了。 從事嵌入式軟件開發(fā)的缺點是: (1) 入門起點較高,所用到的技術往往都有一定難度,若軟硬件基礎不好,特別是操作 系統級軟件功底不深,則可能不適于此行。 (2)這方面的企業(yè)數量要遠少于企業(yè)計算類企業(yè)。特別是從事嵌入式的小企業(yè)數量較多( 小企業(yè)要搞自己的產品創(chuàng)業(yè)),知名大公司較少(搞嵌入式的大公司主要有 Intel、Motorola、TI、Philip、Samsung、Sony、Futjtum、Bell-Alcatel、意法半導體、 Microtek、 研華、華為、中興通信、上廣電等制造類企業(yè))。這些企業(yè)的習慣思維方式是到電子、通 信等偏硬專業(yè)找人。由于我院以前畢業(yè)生以企業(yè)計算為主,所以我院與這些企業(yè)聯系相對 較少。 (3)有少數公司經常要碩士以上的人搞嵌入式,主要是基于嵌入式的難度。但大多數公司 也并無此要求,只要有經驗即可。 我院同學若學習嵌入式,顯然應偏重于嵌入式軟件,特別是嵌入式操作系統方面,應是我 們的強項。對于搞嵌入式軟件的人,最重要的技術顯然是(實際上很多公司的招聘廣告上 就是這樣寫的): (1) 掌握主流嵌入式微處理器的結構與原理 (2) 必須掌握一個嵌入式操作系統 (3) 必須熟悉嵌入式軟件開發(fā)流程并至少做過一個嵌入式軟件項目。 在嵌入式軟件方面最重要的課程包括: (1)嵌入式微處理器結構與應用:這是一門嵌入式硬件基礎課程,我院用這門課取代了傳 統的“微機原理與接口”課程(目前國內已有少部分高校IT專業(yè)這樣做了,因為講x86微機 原理與接口很難找到實際用處,只為教學而已)。我們說過,嵌入式是軟硬件結合的技術 ,搞嵌入式軟件的人應對ARM處理器工作原理和接口技術有充分了解,包括ARM的匯編指令 系統。若不了解處理器原理,怎么能控制硬件工作,怎么能寫出節(jié)省內存又運行高速的最 優(yōu)代碼(嵌入式軟件設計特別講究時空效率),怎么能寫出驅動程序(驅動程序都是與硬 件打交道的)?很多公司招聘嵌入式軟件人員時都要求熟悉ARM處理器,將來若同學到公司 中從事嵌入式軟件開發(fā),公司都會給你一本該設備的硬件規(guī)格說明書 (xxx Specification),您必須能看懂其中的內存分布和端口使用等最基本的說明(就像x86匯編一樣),否則 怎么設計軟件。有些同學覺得嵌入式處理器課程較枯燥,這主要是硬件課程都較抽象的原 因,等我們的嵌入式實驗室10月份建好后,您做了一些實驗后就會覺得看得見摸得著。還 有同學對ARM匯編不感興趣,以為嵌入式開發(fā)用C語言就足夠了。其實不應僅是將匯編語言 當成一個程序設計語言,學匯編主要是為了掌握處理器工作原理的。一個不熟悉匯編語言 的人,怎么能在該處理器寫出最優(yōu)的C語言代碼。在嵌入式開發(fā)的一些關鍵部分,有時還必須寫 匯編,如Bootloader等(可能還包括BSP)。特別是在對速度有極高要求的場合(如DSP處 理器的高速圖像采集和圖像解壓縮),目前主要還要靠匯編寫程序(我看到過很多公司是 這樣做的)。當您在一個嵌入式公司工作時,在查看描述原理的手冊時,可能很多都是用 匯編描述的(我就遇到過),這是因為很多硬件設計人員只會寫或者喜歡用匯編描述,此 時您就必須看懂匯編程序,否則軟硬件人員可能就無法交流。很多嵌入式職位招聘時都要 求熟悉匯編。 [小知識] 目前嵌入式處理器常見的有ARM、PowerPC、MIPS、Motorola 68K、ColdFire(冷 火)等,但ARM占據了絕對主流(資料說手機中幾乎100%都是ARM處理器)。ARM是一個只賣 知識產權的公司,目前獲得購買了ARM CPU核授權許可的大公司很多,包括Intel、Samsung、Amstel、Motorola、Philip等,他們都在ARM CPU核的基礎上進行了一些外圍擴展,形 成自己的處理器(如Samsung S 3C 2410,Motorola i.MXL9328等處理器都是采用ARM 9內 核,指令一級是相同的)。而眾多中小公司又購買了這些處理器,設計了各種各樣的開發(fā) 板,如華恒等國內很多著名嵌入式公司都生產基于Samsung S 3C 2410的開發(fā)板,供最終用 戶使用或供教學實驗。在ARM這個食物鏈上,ARM公司是大魚,Intel、Samsung等公司是小 魚,而華恒等則是蝦米,最終用戶(想我們要采購嵌入式開發(fā)板的實驗室)則是喂蝦米的 。Intel早期生產的是低端ARM(Strong ARM,相當于ARM 7),現在轉向主要生產高端ARM(即 Intel Xscale處理器,相當于ARM 10,主要用在高端PDA上,如HP和DELL生產的PDA都采用Intel Xscale,價格較高)。目前應用最多的是ARM 7和ARM 9兩類處理器。 ARM 7較便宜,可 跑uclinux(是一個不支持高級內存管理功能的嵌入式Linux系統)、Vxworks、uc/os II等 實時操作系統,但因處理器不帶內存管理單元MMU(無內存分頁和地址映射機制,所以不能使用虛 擬內存),所以不能跑Windows CE,另外通用Linux中的某些內存管理功能也不能用在ARM7上。ARM 9是一個帶MMU功能的高端處理器,可跑WinCE或通用Linux的大多數功能。以上 是我的一點了解,可能有不對的地方。我們學院正在建設的嵌入式實驗室(10月底到貨) 包括30套ARM 7系統(擬采用Samsung S 3C 44b0x開發(fā)板,主要用于嵌入式處理器結構、嵌 入式linux課程實驗),10套ARM 9系統(擬采用Samsung S 3C 2410x開發(fā)板,主要用于Windows CE課程建設),每套實驗板都配了高速仿真器,價格都很貴(比我們招標的DELL PC還貴),很容易損壞,同學應愛護使用。 (2) 嵌入式操作系統類課程 除了WinCE的實時性稍差外,大多數嵌入式操作系統的實時性都很強,所以也可稱為實時操 作系統Real Time Operating System.從事嵌入式的人至少須掌握一個嵌入式操作系統(當 然掌握兩個更好),這在嵌入式的所有技術中是最為關鍵的了。 目前最重要的RTOS主要包括: 第一類、傳統的經典RTOS:最主要的便是Vxworks操作系統,以及其Tornado開發(fā)平臺。Vxworks因出現稍早,實時性很強(據說可在 1ms內響應外部事件請求),并且內核可極微( 據說最小可8K),可靠性較高等,所以在北美,Vxworks占據了嵌入式系統的多半疆山。特 別是在通信設備等實時性要求較高的系統中,幾乎非Vxworks莫屬。Vxworks的很多概念和 技術都和Linux很類似,主要是C語言開發(fā)。像Bell- alcatel、Lucent、華為等通信企業(yè)在 開發(fā)產品時,Vxworks用得很多。但Vxworks因價格很高,所以一些小公司或小產品中往往 用不起。目前很多公司都在往嵌入式Linux轉(聽說華為目前正在這樣轉)。但無論如何, Vxworks在一段長時間內仍是不可動搖的。與Vxworks類似的稍有名的實時操作系統還有pSOS、QNX、Nucleus等RTOS。 第二類、嵌入式Linux操作系統:Linux的前途除作為服務器操作系統外,最成功的便是在 嵌入式領域的應用,原因當然是免費、開源、支持軟件多、呼擁者眾,這樣嵌入式產品成 本會低。Linux本身不是一個為嵌入式設計的操作系統,不是微內核的,并且實時性不強。 目前應用在嵌入式領域的Linux系統主要有兩類:一類是專為嵌入式設計的已被裁減過的Linux系統,最常用的是uClinux(不帶MMU功能),目前占較大應用份額,可在ARM7上跑; 另一類是跑在ARM 9上的,一般是將Linux 2.4.18 內核移植在其上,可使用更多的Linux功 能(當然uClinux更可跑在ARM 9上)。很多人預測,嵌入式Linux預計將占嵌入式操作系統 的50%以上份額,非常重要。缺點是熟悉Linux的人太少,開發(fā)難度稍大。另外,目前我們 能發(fā)現很多教材和很多大學都以ucOS/II為教學用實時操作系統,這主要是由于ucOS/II較 簡單,且開源,非常適合入門者學習實時操作系統原理,但由于ucOS/II功能有限,實用用 得較少,所以我院不將其作為教學重點,要學習就應學直接實用的,比如 uClinux就很實 用。況且熟悉了Linux開發(fā),不僅在嵌入式領域有用,對開發(fā)Linux應用軟件,對加深操作 系統的認識也有幫助,可謂一舉多得。據我所知,目前Intel、Philip都在大搞ARM+LINUX的嵌入式開發(fā),Fujitum則是在自己的處理器上大搞Linux開發(fā)。目前在嵌入式 Linux領域,以下 幾個方面的人特別難找,一是能將Linux移植到某個新型號的開發(fā)版上;二是能寫Linux驅 動程序的人;三是熟悉Linux內核裁減和優(yōu)化的人。我院在該嵌入式Linux方面的課程系列 是:本科生操作系統必修課,然后是Linux程序設計選修課,最后是嵌入式Linux系統選修 課。我院在Linux方面目前已有較強力量, 魏 老 師和張 老師熟悉Linux開發(fā), 金 老 師 和唐 老師熟悉Linux系統管理。 第三類、 Windows CE嵌入式操作系統:Microsoft也看準了嵌入式的巨大市場,MS永遠是 最厲害的,WinCE出來只有幾年時間,但目前已占據了很大市場份額,特別是在PDA、手機 、顯示儀表等界面要求較高或者要求快速開發(fā)的場合,WinCE目前已很流行(據說有一家賣 工控機的公司板子賣得太好,以至來不及為客戶裁減WinCE)。WinCE目前主要為4.2版(.NET),開發(fā)平臺主要為WinCE Platform Builder,有時也用EVC環(huán)境開發(fā)一些較上層的應用 ,由于WinCE開發(fā)都是大家熟悉的VC++環(huán)境,所以我院學過Windows程序設計課程的同學都 不會有多大難度,這也是WinCE容易被人們接受的原因,開發(fā)環(huán)境方便快速,微軟的強大技 術支持,WinCE開發(fā)難度遠低于嵌入式Linux。對于急于完成,不想拿嵌入式Linux冒險的開 發(fā)場合,WinCE是最合適了(找嵌入式Linux的人可沒那么好找的),畢竟公司不能像學生 學習那樣試試看,保證開發(fā)成功更重要。根據不同的側重點,WinCE還有兩個特殊版本,一 個是MS PocketPC操作系統專用于PDA上(掌上電腦),另一個是MS SmartPhone操作系統用 于智能手機上(帶PDA功能的手機),兩者也都屬于WinCE平臺。在PDA和手機市場上,除WinCE外,著名的PDA 嵌入式操作系統還有Palm OS(因出現很早,很有名)、Symbian等, 但在WinCE的強勁沖擊下,Palm和Symbian來日還能有多長?我院可能是全國高校中唯一一家開 設專門的"Windows CE嵌入式操作系統"課程的學校,這主要是基于以下原因:我院本身前 面便有Windows程序設計課程,同學學過VC++后再學WinCE,非常方便自然,通過學習WinCE同樣也可了解嵌入式軟件的一般開發(fā)過程,對Linux有懼怕心理的同學也很合適。很顯然, 嵌入式Linux永遠不可能替代 WinCE,而且將來誰占份額大還很難講,畢竟很多人更愿意接 受MS的平臺,就像各國政府都在大力推LINUX已好長時間,但您能看到幾個在PC機上真正使 用LINUX的用戶?據我觀察,目前在嵌入式平臺上,LINUX是叫得最響,但還是WinCE實際用得 更多.嵌入式LINUX可能更多地是一些有長遠產品計劃的公司,為降低成本而進行長遠考慮;二是微軟亞洲研究院對我院WinCE課程的支持計劃,我們也很希望將來我院能有同學通過 微軟的面試去實習。WinCE和多媒體(如MPEG技術)是微軟亞洲工程院目前做得較多的項目領 域之一,他們很需要精通WinCE的人。 總結關于嵌入式操作系統類課程,若您覺得自己功底較深且能鉆研下去,則可去學嵌入式 Linux;若您覺得自己VC++功底較好且想短平快地學嵌入式開發(fā),則我院的WinCE課程是最 好的選擇。 (3) 嵌入式開發(fā)的其它相關軟件課程 搞嵌入式若能熟悉嵌入式應用的一些主要領域,這樣的人更受企業(yè)歡迎。主要的相關領域 包括: A、數字圖像壓縮技術:這是嵌入式最重要最熱門的應用領域之一,主要是應掌握MPEG編解 碼算法和技術,如DVD、MP3、PDA、高精電視、機頂盒等都涉及MPEG高速解碼問題。為此, 我院已預訂了一位能開設數字圖像處理課程的博士。 B、通信協議及編程技術:這包括傳統的TCP/IP協議和熱門的無線通信協議。首先,大多數 嵌入式設備都要連入局域網或Internet,所以首先應掌握 TCP/IP協議及其編程,這是需首 要掌握的基本技術;其次,無線通信是目前的大趨勢,所以掌握無線通信協議及編程也是 是很重要的。無結通信協議包括無線局域網通信協議802.11系列,Bluetooth,以及移動通 信(如GPRS、GSM、CDMA等)。 C、網絡與信息安全技術:如加密技術,數字證書CA等。 D、DSP技術:DSP是Digital Signal Process數字信號處理的意思,DSP處理器通過硬件實 現數字信號處理算法,如高速數據采集、壓縮、解壓縮、通信等。數字信號處理是電子、 通信等硬件專業(yè)的課程,對于搞軟件的人若能了解一下最好。目前DSP人才較缺。如果有信 號與系統、數字信號處理等課程基礎,對于學習MPEG編解碼原理會有很大幫助。 (4)嵌入式開發(fā)的相關硬件基礎 對于軟件工程專業(yè)的學生,從事嵌入式軟件開發(fā),像數字電路、計算機組成原理、嵌入式 微處理器結構等硬件課程是較重要的。另外,匯編語言、C/C++、數據結構和算法、特別是 操作系統等軟件基礎課也是十分重要的。我們的主要目地是能看懂硬件工作原理,但重點 應是在嵌入式軟件,特別操作系統級軟件,那將是我們的優(yōu)勢。 我們的研究生里有些是學電子、通信類專業(yè)過來的,有較好的模擬電路和單片機基礎,學 嵌入式非常合適。嵌入式本身就是從單片機發(fā)展過來的,只是單片機不帶 OS,而現在很多 嵌入式應用越來越復雜,以至不得不引入嵌入式操作系統。另外,為追求更高速的信號處 理速度,現在在一些速度要求較高的場合,有不少公司是將一些DSP算法,如MPEG壓縮解壓 縮算法等用硬件來實現,這就涉及到HDL數字電路設計技術及其FPGA/IP核實現技術,這方 面的人目前市場上也很缺。 (5) 題外話 另外,能寫驅動程序的人目前是非常緊缺的(驅動程序也可歸于嵌入式范疇),包括桌面 Windows中的DDK開發(fā)環(huán)境和WDM驅動程序。公司每時每刻都要推出新產品,每一個新產品出 來了,要能被操作系統所使用,是必須寫驅動程序的。寫驅動程序就必須掌握操作系統(如 Windows或Linux)的內部工作原理,還涉及到少量硬件知識,難度較大,所以這方面的人很 難找。想成為高手的同學,也可從驅動程序方面獲得突破。我可說一下自己的經歷,三年 前我曾短暫地在一家公司寫過WinCE驅動程序(正是因為知道這方面的人緊缺,所以才要做 這方面的事),盡管那以前從未做過驅動程序,應聘那個職位時正是看準了公司是很難招 聘到這方面的人,既然都找不到人,驅動還得有人做,這正是可能有機會切入這一領域的 大好機會。面試時大講自己寫過多少萬行匯編程序,對計算機工作原理如何清楚,簡歷中 又寫著我曾閱讀完兩本關于Windows Driver Model的兩本英文原版書,寫過幾個小型的驅 動程序練習程序(其實根本沒寫過,我們的同學將來千萬不要像我這樣,早練就些過硬功 夫,就不至于淪落到我這等地步,就不用像我那樣去“欺騙”公司了,我這是一個典型的 反面教材),居然一切都PASS(當然最重要的是筆試和面試問題還說得過去),這只能說 明這一領域找人的困難程度。公司本就未指望找到搞過驅動的人,找個有相關基礎的人就算不?br /> 砹恕W雋艘院螅發(fā)現也并不是怎樣難的。其實搞驅動程序的工作是很舒服的,搞完一個 姹揪突崢找歡問奔洌只有等公司新的芯片推出或新的OS出現后,才需要再去開發(fā)新一版驅 動,那時有將近一個月時間空閑著在等WinCE .NET Beta版推出,準備將驅動程序升級到CE .NET上,現在在軟件學院工作整日忙,無限懷念那段悠閑時光。 很巧合,最近本人無意中再次體會到了嵌入式的迷人之處。上周我那用了3年的手機終于不 能WORK了。此次更新,除要求有手機常見功能外,最好有MP3功能(現在很多英語聽力都有 MP3文件),最好有英漢詞典,最好還能讀WORD文檔。最后選了個滿足以上條件的最便宜的 手機DOPOD 515(斬了我2.2K,但想想這也算自己對嵌入式事業(yè)的支持,這樣便也想開了) ,算得上最低檔的智能手機了。回來一查,手機的about顯示,本手機 Processor是ARM, 其OS是MS Smartphone(即WinCE .NET 4.2),這么巧合,簡直可做為學習嵌入式課程的產 品案例了(等我們的WinCE課程開得有聲有色后,希望能從微軟研究院搞些Smartphone來開 發(fā)開發(fā))。有OS的手機果然了得,金山詞霸、WORD、EXCEL、REGEDIT等居然都有smartphone版的,PC上的MP3、DOC等居然在 download時都可被自動轉換成smartphone格式,真是爽 。完全可用Windows CE自己開發(fā)一些需要的程序download到自己的手機上。現在市面銷售 PDA智能手機火爆,MS總是財源滾滾。但我已發(fā)現國產的ARM+LINUX手機出現在市面上,價 格只1.2K。 在GOOGLE網上能搜索太多的關于嵌入式系統的討論了,我剛發(fā)現一個http://www.embyte.com非常不錯,有很多有經驗者談自己的體會,投入到其中的論壇中,你會切身感到嵌入式 學習的熱潮。 要么走ARM+WinCE,要么走ARM+LINUX,要么走ARM+VXWORKS。每個搞嵌入式的人都可選一條 路,條條大路通羅馬。 聲明:以上對嵌入式的解釋估計有錯,任課教師最有權威性,一切以任課教師所講為準。 三、關于游戲軟件方向 將游戲軟件人才稱為數字媒體軟件人才可能更好聽些,包括游戲
軟件策劃(最缺游戲策劃的人)、游戲軟件美術設計、游戲軟件程序設計等多方面的人才
,對軟件學院,游戲軟件程序設計當然是最合適的了。
游戲軟件人才的確目前很缺,聽說很多游戲軟件公司苦于沒新人才補充,特別是沒有高手
補充,不得不相互挖人才,以至將游戲軟件人才身價越抬越高。網上說*** 教育部剛剛批
準成立了***第一家專門培養(yǎng)四年制游戲軟件人才的本科大學。其實國內很多大學,特別是
軟件學院都有搞游戲軟件人才的設想,但目前很少有做成的,主要原因是找不到能上游戲
軟件課的教師,聽說有個學校只能花很大的價錢從Korea找老師來上課,果真缺到此等地步
?
已有很多青少年沉湎于網游而頹廢的實例,好在還不至于上升到制造精神鴉片的高度,所
以開發(fā)游戲軟件的人也不必每日慚悔(但開發(fā)兒童益智類游戲軟件的人是不需慚悔的),
如果想想這是為發(fā)展民族軟件產業(yè)做貢獻,那反倒是一件有意義的事情了。不過聽一家游
戲軟件公司的老板講,搞游戲軟件開發(fā)是非常辛苦的。
若想自己創(chuàng)業(yè),搞搞游戲軟件是不錯的主意。現在網上網站或公司都在收購游戲軟件(特
別是手機游戲軟件,因為手機游戲用戶可選從網站上download到手機上,不像網游那么復
雜),按download次數分成或一次性收購的都有。我們的同學在校期間是否也可發(fā)點小財
?搞得好,說不定可賣到國外網站,直接掙 $$$呢。
大致游戲分成以下幾類:
(1) PC類游戲,包括單機和網游。這類游戲開發(fā)平臺基本上都是基于VC++和DitrectX(
如DirectShow,DirectDraw,D3D等, DirectX資料可直接到MS網站上查)。DirectX和Op
enGL是兩個主要的圖形標準,OpenGL跨平臺(Unix/Windows上都可跑),盡管很多搞研究
的人對OpenGL贊不絕口,將DirectX罵得一文不值,但事實是,在Windows平臺上,Direct
X是最快最方便的,所以在Windows平臺上的游戲還是DirectX當家。
(2) 手機游戲:目前手機游戲主要開發(fā)平臺有兩類:
第一類手機游戲是J2ME平臺(Java 2 Micro Edition),J2ME本是為嵌入式平臺設計的Java
,但由于Java生來就需要Java虛擬機(JVM)來解釋,所以在嵌入式產品很少用J2ME (太慢
太耗內存)。但在手機游戲中J2ME倒有夢渲地,我想這可能主要是Java可跨OS平臺的原
因,因為手機的OS是千奇百怪的。我對J2ME完全外行,但上次聽Square Enix公司的人說,
J2ME與我們同學學過的J2EE還是有較大差別的。據我所知,目前手機中用的較多的是KJav
a語言,KJava是運行在一種叫K Java Virtual Machine的解釋器上(K JVM是SUN早期為演示
J2ME在嵌入式系統應用而開發(fā)的一個虛擬機),所以將在K JVM上運行的J2ME叫KJava。盡管
SUN說今后不保證支持K JVM,將開發(fā)新的更高性能的J2ME虛擬機取而代之,但由于KJava出
現較早,很多早期的手機游戲軟件都將K JVM假想成J2ME虛擬機的標準了,所以目前有大量
的KJava手機游戲軟件存在,而且還在用KJava繼續(xù)開發(fā)。特別是***的手機游戲軟件由于開
發(fā)較早(像叫什么docomi的***最大的電信運營商手機游戲搞得很火),多是基于KJava的
。所以目前市場上在招聘手機游戲軟件人才時,很多要求掌握 KJava。有關J2ME請到Sun的
網站上找資料。
另一類手機游戲是BREW平臺,BREW是美國高通公司(Qualcomm,CDMA核心技術都是該公司開
發(fā)的,有無數移動通信技術專利)發(fā)明的,據說可編譯成二進制代碼,那當然快了。主要的
開發(fā)語言是C/C++。但迫于被指責為較封閉的壓力,目前Qualcomm已推出BREW平臺上的J2M
E虛擬機(但可想像那將是怎樣慢的速度)。Qualcomm搞定了很多手機制造商簽定BREW授權
許可協議,最狠的是Qualcomm與中國聯通綁在一起大堆基于 BREW的手機游戲,所以有些公
司招聘時要求掌握BREW也就不奇怪了。
去年00級2+2班畢業(yè)答辯時,有一位同學講的是在公司做的KJava游戲(那是一家***游戲軟
件公司),還一位同學講的是另一家公司做的BREW游戲,看來不同的公司有不同的選擇。
將來誰會更火,我估計隨著手機硬件資源的不斷提高,不會在乎一個JVM的開銷,J2ME應更
有前途,畢竟它是更開放的。
(3) 專用游戲機:如電視游戲,XBOX等,我不太了解,不過這些游戲也太偏了。
游戲公司對人才的需求主要是以下技術:
(1) 計算機圖形學,特別是3D編程與算法,包括DirectX或OpenGL。開發(fā)平臺是VC++/DI
RECTX或KJAVA。
(2) 公司說,手機游戲因手機資源有限,必須對圖像進行壓縮,所以若有一些圖像壓縮
算法知識比較好。像若能有MPEG壓縮算法較好,手機上采用的是比MPEG壓縮得更狠的一些
特殊算法,但觸類旁通。
(3) TCP/IP Socket編程是搞網游開發(fā)的人必須掌握的。
(4) 人工智能知識:復雜游戲可能需要一些AI算法。
(5) 網絡與信息安全知識:網游要防外掛。
該公司(大宇)的網游服務器是基于Linux平臺的,所以還提出了對游戲服務器端軟件工程
師的技術需求(精通MSSQL、ORACLE、MYSQL等數據庫,精通 Linux Programming,特別是
Socket編程)。還有對維護游戲網站人才需求(ASP .NET和數據庫)。
注意一條,最好有自己的游戲軟件作品,若您應聘時能帶一個DirectX作品,那將有多強的
競爭力,所以最重要的是現在就要行動,實踐,實踐,再實踐。對游戲軟件開發(fā)有興趣的
同學,在目前情況下,可自已鉆研一下相關知識(比方,可考慮將DirectX作為Windows程
序設計課的課程項目),將來可拿出自己的作品來,同樣可找到這方面的好工作,我們00
,01級同學都有這樣的例子。目前,會VC++的人本來就不多(現在很多年輕人都去追時髦
的Dot Net來了,VC++因難學,所以人就少),會DirectX的人就更少了,這正是我們的機
會。
2007年計算機專業(yè)畢業(yè)生就業(yè)狀況調查工作難“求”——應屆大學畢業(yè)生必要的人生歷練對于2007年的計算機專業(yè)應屆大學生來講,在經歷了2006年10-12月的招聘高峰期和2007年2-4月的小高峰期后,現在已經進入尾聲,基本塵埃落定,終于可以對就業(yè)狀況來一個盤點了。距正式離校只有不到兩個月了,計算機專業(yè)的應屆大學生就業(yè)已經進入了尾聲,可以對就業(yè)狀況來一個盤點了。為此,記者選取了北京、廣州、武漢、西安、成都、山東等地的50所高校,通過本報調研中心對187名計算機專業(yè)應屆大學生進行了問卷與深度訪談相結合的調查。我們發(fā)現,今年的計算機專業(yè)畢業(yè)生從找工作的難易程度、薪資水平、考研的人數和動機等方面都有著明顯的分層現象:好的好,壞的壞。另外,我們從中也發(fā)現,在整個就業(yè)過程中,畢業(yè)生們大都表現出了高度的理性,如在其擇業(yè)標準的選擇,對求職現狀的認知,以及對就業(yè)難原因的分析等,都蘊涵著較高的合理性成分。并不都是香餑餑同樣的專業(yè),同樣是在今年找工作,計算機專業(yè)并不是在所有的高校都是香餑餑。已經保送本校研究生的清華大學計算機科學與技術專業(yè)大四學生嚴斌和尹玉冰告訴記者,在清華,真正找工作的只有30人左右,占到畢業(yè)生總數的1/6。清華計算機專業(yè)大四學生有180人左右,30個國防生,保送研究生的有70-80人,還有10來個到香港讀研,20來個出國的,剩下的才是找工作的。“找工作的大部分是成績不太好的同學。”兩位清華的高材生異口同聲告訴記者。北京航空航天大學的情況也差不多,計算機專業(yè)的就業(yè)狀況也相當好。顯然,像清華、北航等名校的計算機專業(yè)是全國頂尖的,其畢業(yè)生多數選擇繼續(xù)深造,少數去找工作是正常的。而像華南理工大學、西北大學等重點理工科高校,計算機專業(yè)大學生在當地的就業(yè)形勢也是一片大好,就業(yè)率在95%以上。西北大學計算機技術與工程專業(yè)大四學生邊廣志就表示:“我們班上70多人,基本都找到工作了。”在那些學校名氣不差,但計算機專業(yè)卻一般的院校中,還有少數人找不到工作,就業(yè)率在70%左右。像中南民族大學計算機科學與技術專業(yè)大四學生馬金紅就告訴記者,他們班有26人,目前還沒有找到工作的有4人。而另一個班也是26人,沒找到工作的還有8人。比他們更慘的是一些在二類本科、甚至是三類本科院校就讀的計算機專業(yè)大學生。計算機專業(yè)在學校內本就沒有地位,一拉到人才市場來競爭就更沒有優(yōu)勢了。四川師范大學計算機科學與技術專業(yè)大四學生趙志同介紹了他們就業(yè)的狀況:他們專業(yè)共兩個班,103人,到目前為止簽約的僅占30%左右,而且其中有十幾個人的工作是跟計算機無關的。“剛開始找工作的時候,我們就預期工作不好找。2006年學校統計我們專業(yè)的就業(yè)率是30-40%,就說明了就業(yè)形式不好。我們很多同學最后找到的工作大部分是跟計算機沒有什么關系的,這也是我們找工作處處碰壁后沒有辦法的選擇。”趙志同說。薪酬普遍在2000-4000元/月之間談到找工作,所有人最關注的就是薪水問題。據我們調查,從整體來看,2000-4000元/月代表了計算機專業(yè)應屆大學畢業(yè)生就業(yè)的平均薪酬水平。當然工資高低還跟就業(yè)單位的實力、就業(yè)地域和學校名氣等有著比較大的關系。清華、北航等名校計算機專業(yè)大學畢業(yè)生的平均工資要比上述提到的水平高1000元/月左右,不過也跑不出這個區(qū)間。“我們班找工作的同學到非IT公司去的,工資只有4000元/月左右;到北京、上海、深圳等地IT公司的基本都有6000-7000元/月,最高的是Google給出的9000元/月。”尹玉冰說。北航計算機專業(yè)大學畢業(yè)生很多都去了銀行的IT部門,如中行、招商銀行等,工資水平在3000-5500元/月之間。最高的是華為公司給出的5500元/月(4500元+生活補助1000元),最低的也有3000元/月。華南理工大學、西北大學等第二梯隊高校的計算機專業(yè)大學畢業(yè)生薪酬也許真正代表了目前的總體水平。在西安就業(yè)的大多是2000-3000元/月之間,男女差別不大,最高薪水是騰訊給出的年薪 7萬元。華南理工計算機專業(yè)大學畢業(yè)生普遍都能拿到4000元左右的月薪。而中南民族大學的計算機專業(yè)大學畢業(yè)生留在武漢普遍拿到的工資是2000-3000元/月,能簽到深圳等發(fā)達地區(qū)的工資都在3000-4000元/月,好的能達到4000-6000元/月。留在山東工作的大學畢業(yè)生就沒那么幸運了。“整個山東省做軟件的基本是1500元左右的月工資,在青島、濟南、泰安的都是。我們班一半找到工作的同學工資都在1500元/月以下。”山東科技大學徐銀增跟記者透露自己的月工資水平在1000-2000元之間,接著補充了上面一句。總的來說,目前國內計算機專業(yè)應屆大學畢業(yè)生平均月工資尚屬高薪水平。同時,調查也顯示,大學生們對薪資水平的分析表現出了高度的理性,去年乃至前些年理想起薪與簽約工資存在較大差距的現象已經極少了。“低于3000元/月就沒有人簽了。”北航計算機科學與技術專業(yè)大四學生牛紅婷告訴記者,“我們找工作的時候大部分預期是月薪4000元,因為到單位后還要扣三險和稅金,最后也就只剩下3000多元了。”身處南方的華南理工大學計算機專業(yè)大學畢業(yè)生對薪水的預期要低一些。“我們找工作前參考過上一屆的情況,他們的平均薪酬是3000-3500元/月;所以我預期的薪水至少是3000元/月以上才可以接受。”潘曉煒說。“我開始找工作的時候預期工資是2500元左右(在成都)。”而趙志同本身簽了黑龍江武警總隊,月工資水平是3000元左右,算是找得相當好的了。考研仍是大勢所趨千軍萬馬爭讀研——一方面是教育水平提升、本科教育大眾化的體現,一方面也被視為許多畢業(yè)生逃避就業(yè)壓力的表現。那么,應屆大學畢業(yè)生是怎樣看待讀研的,選擇這條路的有多少,成功的又有多少呢?在清華計算機專業(yè)應屆大學畢業(yè)生中,保送研究生的加上到香港讀研以及出國深造的,深造率為60%以上。當然,出國深造的機遇與學校實力有著密切的關系,并不是所有的高校都能提供給學生這樣的機會。四川師范大學計算機專業(yè)一個班40人,有3個保研的,5個考上外校研究生的,繼續(xù)深造率為20%左右。值得注意的是,以上的數字僅為最終實際深造的人數,對于選擇考研但并沒有成功的人數,我們難以統計。當問到為什么清華那么多學生要去讀研時,嚴斌告訴記者:“我覺得現在本科生很難找到好工作,即便找到,做的也是體力活。我的計劃是在清華讀完碩士——出國讀博士——海歸,這樣要比直接研究生畢業(yè)后工作強很多。”“我們學校研究生就業(yè)要比本科生好不少,現在像IBM、微軟等大公司都指名要研究生而不要本科生。因此本科生相對來講找工作要受到很多限制,就業(yè)面不如研究生。”牛紅婷也道破了自己讀研究生的“天機”:“這也是有道理的,本科生都是打基礎,基本沒有什么機會去跟項目,而我自從保送研究生后就到實驗室跟師兄做實驗、跟項目,解決實際問題的能力肯定會增強不少。” 據了解,騰訊、Google給名校計算機專業(yè)研究生開的薪水分別是10萬元/年、15萬元/年,比本科生要高出不少。潘曉煒則認為考研后可能在知識、經驗上增加更多,“同時我們學校近幾年都是研究生的總體就業(yè)形式比本科生好,這也是一個原因吧”。從中我們不難看出,考研仍被大多數大學畢業(yè)生視為“改變命運”的又一次機會。非名校學生找工作易遭遇不公相對名校的強勢,很多普通院校的計算機專業(yè)大學畢業(yè)生在找工作的過程中遭遇了不少不公平對待。據調查,很多IT公司的工資等級分重點和非重點院校,重點院校畢業(yè)生月薪要比普通院校畢業(yè)生高幾百至一千元不等。馬金紅和其他同學就參加了深圳一家公司在武漢的招聘會,并順利通過了筆試,沒想到在面試的時候得到了一個信息:這家公司給他們的是大專生的待遇,比華中科技大學、武漢大學的畢業(yè)生要少近千元。“不過后來還是有同學簽了,現在工作不好找。”馬金紅無奈地說。計算機人才需求每年增100萬 目前,中國軟件產業(yè)還處于成長期,其市場潛力還遠遠沒有挖掘出來。2006年中國軟件市場總體規(guī)模將達到1073億元,增長率達到30%。2010年左右,中國軟件產業(yè)將步入成熟期。IT產業(yè)作為知識密集、技術密集的產業(yè),其迅猛發(fā)展的關鍵是有一大批從事IT技術創(chuàng)新的人才隊伍所支撐的,一個國家的IT人力資源儲備、IT人才培養(yǎng)及使用狀況決定著該國IT產業(yè)發(fā)展的水平和潛力。就中國來說,IT產業(yè)在過去5年經歷了年26.1%的增長速度,IT產業(yè)占全國工業(yè)比重達到12.3%,占GDP的9%。所以,無論是從大的方向講,還是從小的方面講,培養(yǎng)和儲備高素質的IT人才都顯得非常重要。計算機人才:需求每年增加100萬據介紹,目前我國的計算機應用水平還處于初級階段,隨著我國軟件業(yè)規(guī)模不斷擴大,軟件人才結構性矛盾日益顯得突出。教育部關于緊缺人才的報告稱,軟件從業(yè)人員近80萬人,其中專業(yè)人才約有50萬人(其中高級人才10萬人,中級人才25萬人,初級人才15萬人)。人才結構呈兩頭小中間大的橄欖型結構,不僅缺乏高層次的系統分析員、項目總設計師,也缺少大量的從事基礎性軟件開發(fā)人員。根據國際經驗,軟件人才高、中、初之比為1:4:7。按照合理的人才結構比例進行測算,到2007年全國計算機應用專業(yè)人才的需求每年將增加百萬,但國內學歷教育目前只能提供5-6萬人。IT行業(yè)收入情況本次調查數據是從2006年5月到2007年4月通過互聯網收集的,被調查者主要集中在北京、上海、深圳、廣州及天津等市。統計結果顯示,IT業(yè)的平均年薪為51073元。從具體職位看,IT業(yè)各職位的年薪均值同樣頗具領先優(yōu)勢,屬高薪行業(yè)。以項目管理職位為例,IT業(yè)年薪均值比總體年薪均值高出了25.19%;工廠管理職位則高出了26.8%。上海、深圳、北京是IT高薪城市。其中上海IT業(yè)薪水水平最高,年薪均值達到了16000元。學歷經驗決定薪資學歷與經驗是決定IT人薪情的兩大因素。學歷上看,基本符合學歷越高年薪均值越高的趨勢,從工作經驗看,工作3年和5年也分別能實現薪水的一個飛躍。工作1年者平均年薪為36380元;3年者為53987元;5年者達到了69300元;10-15年可以達到74074元。今年薪資小幅增長就目前狀況看,無論國內環(huán)境,還是國際趨勢,對IT人才的需求都呈現增長趨勢,但中華英才網職業(yè)專家分析認為,IT業(yè)的總體薪資預計年內不會出現大幅提升,增長幅度將在10%———15%左右。行業(yè)發(fā)展催生新崗位行業(yè)變化可以為職場人帶來新的發(fā)展機遇。IT業(yè)由于技術更新換代快,市場競爭激烈,因此也不斷地為業(yè)內人士創(chuàng)造了新的發(fā)展空間。3G、芯片、互聯網、游戲等已成為近兩年IT職場上的關鍵詞,蘊藏者大量的職場機會。此外,新的商業(yè)模式也會引發(fā)新的工作崗位產生,但由于人才短缺,這些崗位也成為高薪聚集地。目前游戲產業(yè)人才缺口高達60萬,一名游戲公司市場經理的年薪已達到26萬,而一名優(yōu)秀的游戲設計師的年薪在30萬元左右。而在今后幾年內,網絡安全人才、游戲人才、軟件測試工程師、研究人員的需求將持續(xù)旺盛,薪資會相對較高。就拿網絡游戲人才來說,最為缺乏的游戲設計、開發(fā)與編程人員,只要具備2年以上相關工作經驗;掌握C或C++編程,熟悉Win32/VC++開發(fā)平臺或Lunix/Unix開發(fā)平臺;熟悉TCP/IP、Socket編程或MySQL、Oracle數據庫;有良好的面向對象設計、分析能力、規(guī)范的編程風格;有個人作品和良好英文技術資料閱讀能力者優(yōu)先。這類人員月薪一般都有萬元以上,屬于“金領”一族。此外,游戲策劃人員、美工等也是熱銷的職位。有經驗的策劃人月薪也能達到上萬元,而資深的美工如果設計的速度和質量俱佳,最高月薪能達到2-3萬元,而一般美工月薪維持在4000-5000元。常言道:“天高任鳥飛,海闊憑魚躍”,IT行業(yè)作為我國第一大產業(yè),其發(fā)展?jié)摿κ欠浅>薮蟮摹T诰蜆I(yè)形勢利好,人才缺口較大的情況下,要想成為一個IT人,每一個求職者就只有憑自身的學識和能力了。
posted @
2011-07-26 14:58 雪黛依夢 閱讀(470) |
評論 (0) |
編輯 收藏
摘要: 例子:有一家漢堡店舉辦吃漢堡比賽,決賽時有3個顧客來吃,3個廚師來做,一個服務員負責協調漢堡的數量。為了避免浪費,制作好的漢堡被放進一個能裝有10個漢堡的長條狀容器中,按照先進先出的原則取漢堡。如果容器被裝滿,則廚師停止做漢堡,如果顧客發(fā)現容器內的漢堡吃完了,就可以拍響容器上的鬧鈴,提醒廚師再做幾個漢堡出來。此時服務員過來安撫顧客,讓他等待。而一旦廚師的漢堡做出來,就會讓服務員通知顧客,漢堡做好了...
閱讀全文
posted @
2011-07-25 20:10 雪黛依夢 閱讀(2697) |
評論 (0) |
編輯 收藏
一、同步問題提出
線程的同步是為了防止多個線程訪問一個數據對象時,對數據造成的破壞。
例如:兩個線程ThreadA、ThreadB都操作同一個對象Foo對象,并修改Foo對象上的數據。
package thread;
public class Foo {
private static int x = 100;
public int getX() {
return x;
}
public int fix(int y) {
x = x - y;
try {
Thread.currentThread().sleep(1);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName()
+ " : 當前foo對象的x值=" + getX());
return x;
}
}
package thread;
public class SynchronizedDemo implements Runnable {
private Foo foo = new Foo();
public void run() {
for (int i = 0; i < 100; i++) {
this.fix(30);
}
}
public int fix(int y) {
return foo.fix(y);
}
public static void main(String[] args) {
SynchronizedDemo a = new SynchronizedDemo();
Thread tha = new Thread(a, "A");
Thread thb = new Thread(a, "B");
Thread thc = new Thread(a, "C");
Thread thd = new Thread(a, "D");
Thread the = new Thread(a, "E");
Thread thf = new Thread(a, "F");
Thread thg = new Thread(a, "G");
Thread thh = new Thread(a, "H");
Thread thi = new Thread(a, "I");
Thread thj = new Thread(a, "J");
Thread thk = new Thread(a, "K");
tha.start();
thb.start();
thc.start();
thd.start();
the.start();
thf.start();
thg.start();
thh.start();
thi.start();
thj.start();
thk.start();
}
}
從結果發(fā)現,這樣的輸出值明顯是不合理的。原因是兩個線程不加控制的訪問Foo對象并修改其數據所致。
如果要保持結果的合理性,只需要達到一個目的,就是將對Foo的訪問加以限制,每次只能有一個線程在訪問。這樣就能保證Foo對象中數據的合理性了。
在具體的Java代碼中需要完成一下兩個操作:
把競爭訪問的資源類Foo變量x標識為private;
同步哪些修改變量的代碼,使用synchronized關鍵字同步方法或代碼。
二、同步和鎖定
1、鎖的原理
Java中每個對象都有一個內置鎖
當程序運行到非靜態(tài)的synchronized同步方法上時,自動獲得與正在執(zhí)行代碼類的當前實例(this實例)有關的鎖。獲得一個對象的鎖也稱為獲取鎖、鎖定對象、在對象上鎖定或在對象上同步。
當程序運行到synchronized同步方法或代碼塊時才該對象鎖才起作用。
一個對象只有一個鎖。所以,如果一個線程獲得該鎖,就沒有其他線程可以獲得鎖,直到第一個線程釋放(或返回)鎖。這也意味著任何其他線程都不能進入該對象上的synchronized方法或代碼塊,直到該鎖被釋放。
釋放鎖是指持鎖線程退出了synchronized同步方法或代碼塊。
關于鎖和同步,有一下幾個要點:
1)、只能同步方法,而不能同步變量和類;
2)、每個對象只有一個鎖;當提到同步時,應該清楚在什么上同步?也就是說,在哪個對象上同步?
3)、不必同步類中所有的方法,類可以同時擁有同步和非同步方法。
4)、如果兩個線程要執(zhí)行一個類中的synchronized方法,并且兩個線程使用相同的實例來調用方法,那么一次只能有一個線程能夠執(zhí)行方法,另一個需要等待,直到鎖被釋放。也就是說:如果一個線程在對象上獲得一個鎖,就沒有任何其他線程可以進入(該對象的)類中的任何一個同步方法。
5)、如果線程擁有同步和非同步方法,則非同步方法可以被多個線程自由訪問而不受鎖的限制。
6)、線程睡眠時,它所持的任何鎖都不會釋放。
7)、線程可以獲得多個鎖。比如,在一個對象的同步方法里面調用另外一個對象的同步方法,則獲取了兩個對象的同步鎖。
8)、同步損害并發(fā)性,應該盡可能縮小同步范圍。同步不但可以同步整個方法,還可以同步方法中一部分代碼塊。
9)、在使用同步代碼塊時候,應該指定在哪個對象上同步,也就是說要獲取哪個對象的鎖。例如:
public int fix(int y) {
synchronized (this) {
x = x - y;
}
return x;
}
當然,同步方法也可以改寫為非同步方法,但功能完全一樣的,例如:
public synchronized int getX() {
return x++;
}
與
public int getX() {
synchronized (this) {
return x;
}
}
效果是完全一樣的。
三、靜態(tài)方法同步
要同步靜態(tài)方法,需要一個用于整個類對象的鎖,這個對象是就是這個類(XXX.class)。
例如:
public static synchronized int setName(String name){
Xxx.name = name;
}
等價于
public static int setName(String name){
synchronized(Xxx.class){
Xxx.name = name;
}
}
四、如果線程不能不能獲得鎖會怎么樣
如果線程試圖進入同步方法,而其鎖已經被占用,則線程在該對象上被阻塞。實質上,線程進入該對象的的一種池中,必須在哪里等待,直到其鎖被釋放,該線程再次變?yōu)榭蛇\行或運行為止。
當考慮阻塞時,一定要注意哪個對象正被用于鎖定:
1、調用同一個對象中非靜態(tài)同步方法的線程將彼此阻塞。如果是不同對象,則每個線程有自己的對象的鎖,線程間彼此互不干預。
2、調用同一個類中的靜態(tài)同步方法的線程將彼此阻塞,它們都是鎖定在相同的Class對象上。
3、靜態(tài)同步方法和非靜態(tài)同步方法將永遠不會彼此阻塞,因為靜態(tài)方法鎖定在Class對象上,非靜態(tài)方法鎖定在該類的對象上。
4、對于同步代碼塊,要看清楚什么對象已經用于鎖定(synchronized后面括號的內容)。在同一個對象上進行同步的線程將彼此阻塞,在不同對象上鎖定的線程將永遠不會彼此阻塞。
五、何時需要同步
在多個線程同時訪問互斥(可交換)數據時,應該同步以保護數據,確保兩個線程不會同時修改更改它。
對于非靜態(tài)字段中可更改的數據,通常使用非靜態(tài)方法訪問。
對于靜態(tài)字段中可更改的數據,通常使用靜態(tài)方法訪問。
如果需要在非靜態(tài)方法中使用靜態(tài)字段,或者在靜態(tài)字段中調用非靜態(tài)方法,問題將變得非常復雜。已經超出SJCP考試范圍了。
六、線程安全類
當一個類已經很好的同步以保護它的數據時,這個類就稱為“線程安全的”。
即使是線程安全類,也應該特別小心,因為操作的線程是間仍然不一定安全。
舉個形象的例子,比如一個集合是線程安全的,有兩個線程在操作同一個集合對象,當第一個線程查詢集合非空后,刪除集合中所有元素的時候。第二個線程也來執(zhí)行與第一個線程相同的操作,也許在第一個線程查詢后,第二個線程也查詢出集合非空,但是當第一個執(zhí)行清除后,第二個再執(zhí)行刪除顯然是不對的,因為此時集合已經為空了。
看個代碼:
public class NameList {
private List nameList = Collections.synchronizedList(new LinkedList());
public void add(String name) {
nameList.add(name);
}
public String removeFirst() {
if (nameList.size() > 0) {
return (String) nameList.remove(0);
} else {
return null;
}
}
}
public class Test {
public static void main(String[] args) {
final NameList nl = new NameList();
nl.add("aaa");
class NameDropper extends Thread{
public void run(){
String name = nl.removeFirst();
System.out.println(name);
}
}
Thread t1 = new NameDropper();
Thread t2 = new NameDropper();
t1.start();
t2.start();
}
}
雖然集合對象
private List nameList = Collections.synchronizedList(new LinkedList());
是同步的,但是程序還不是線程安全的。
出現這種事件的原因是,上例中一個線程操作列表過程中無法阻止另外一個線程對列表的其他操作。
解決上面問題的辦法是,在操作集合對象的NameList上面做一個同步。改寫后的代碼如下:
public class NameList {
private List nameList = Collections.synchronizedList(new LinkedList());
public synchronized void add(String name) {
nameList.add(name);
}
public synchronized String removeFirst() {
if (nameList.size() > 0) {
return (String) nameList.remove(0);
} else {
return null;
}
}
}
這樣,當一個線程訪問其中一個同步方法時,其他線程只有等待。
七、線程死鎖
死鎖對Java程序來說,是很復雜的,也很難發(fā)現問題。當兩個線程被阻塞,每個線程在等待另一個線程時就發(fā)生死鎖。
還是看一個比較直觀的死鎖例子:
public class DeadlockRisk {
private static class Resource {
public int value;
}
private Resource resourceA = new Resource();
private Resource resourceB = new Resource();
public int read() {
synchronized (resourceA) {
synchronized (resourceB) {
return resourceB.value + resourceA.value;
}
}
}
public void write(int a, int b) {
synchronized (resourceB) {
synchronized (resourceA) {
resourceA.value = a;
resourceB.value = b;
}
}
}
}
假設read()方法由一個線程啟動,write()方法由另外一個線程啟動。讀線程將擁有resourceA鎖,寫線程將擁有resourceB鎖,兩者都堅持等待的話就出現死鎖。
實際上,上面這個例子發(fā)生死鎖的概率很小。因為在代碼內的某個點,CPU必須從讀線程切換到寫線程,所以,死鎖基本上不能發(fā)生。
但是,無論代碼中發(fā)生死鎖的概率有多小,一旦發(fā)生死鎖,程序就死掉。有一些設計方法能幫助避免死鎖,包括始終按照預定義的順序獲取鎖這一策略。已經超出SCJP的考試范圍。
八、線程同步小結
1、線程同步的目的是為了保護多個線程反問一個資源時對資源的破壞。
2、線程同步方法是通過鎖來實現,每個對象都有切僅有一個鎖,這個鎖與一個特定的對象關聯,線程一旦獲取了對象鎖,其他訪問該對象的線程就無法再訪問該對象的其他同步方法。
3、對于靜態(tài)同步方法,鎖是針對這個類的,鎖對象是該類的Class對象。靜態(tài)和非靜態(tài)方法的鎖互不干預。一個線程獲得鎖,當在一個同步方法中訪問另外對象上的同步方法時,會獲取這兩個對象鎖。
4、對于同步,要時刻清醒在哪個對象上同步,這是關鍵。
5、編寫線程安全的類,需要時刻注意對多個線程競爭訪問資源的邏輯和安全做出正確的判斷,對“原子”操作做出分析,并保證原子操作期間別的線程無法訪問競爭資源。
6、當多個線程等待一個對象鎖時,沒有獲取到鎖的線程將發(fā)生阻塞。
7、死鎖是線程間相互等待鎖鎖造成的,在實際中發(fā)生的概率非常的小。真讓你寫個死鎖程序,不一定好使,呵呵。但是,一旦程序發(fā)生死鎖,程序將死掉。
posted @
2011-07-23 20:50 雪黛依夢 閱讀(304) |
評論 (0) |
編輯 收藏
進程與Java線程的區(qū)別
應用程序在執(zhí)行過程中存在一個內存空間的初始入口點地址、一個程序執(zhí)行過程中的代碼執(zhí)行序列以及用于標識進程結束的內存出口點地址,在進程執(zhí)行過程中的每一時間點均有唯一的處理器指令與內存單元地址相對應。
Java語言中定義的線程(Thread)同樣包括一個內存入口點地址、一個出口點地址以及能夠順序執(zhí)行的代碼序列。但是進程與線程的重要區(qū)別在于線程不能夠單獨執(zhí)行,它必須運行在處于活動狀態(tài)的應用程序進程中,因此可以定義線程是程序內部的具有并發(fā)性的順序代碼流。
Unix操作系統和Microsoft Windows操作系統支持多用戶、多進程的并發(fā)執(zhí)行,而Java語言支持應用程序進程內部的多個執(zhí)行線程的并發(fā)執(zhí)行。多線程的意義在于一個應用程序的多個邏輯單元可以并發(fā)地執(zhí)行。但是多線程并不意味著多個用戶進程在執(zhí)行,操作系統也不把每個線程作為獨立的進程來分配獨立的系統資源。進程可以創(chuàng)建其子進程,子進程與父進程擁有不同的可執(zhí)行代碼和數據內存空間。而在用于代表應用程序的進程中多個線程共享數據內存空間,但保持每個線程擁有獨立的執(zhí)行堆棧和程序執(zhí)行上下文(Context)。
基于上述區(qū)別,線程也可以稱為輕型進程 (Light Weight Process,LWP)。不同線程間允許任務協作和數據交換,使得在計算機系統資源消耗等方面非常廉價。
線程需要操作系統的支持,不是所有類型的計算機都支持多線程應用程序。Java程序設計語言將線程支持與語言運行環(huán)境結合在一起,提供了多任務并發(fā)執(zhí)行的能力。這就好比一個人在處理家務的過程中,將衣服放到洗衣機中自動洗滌后將大米放在電飯鍋里,然后開始做菜。等菜做好了,飯熟了同時衣服也洗好了。
需要注意的是:在應用程序中使用多線程不會增加 CPU 的數據處理能力。只有在多CPU 的計算機或者在網絡計算體系結構下,將Java程序劃分為多個并發(fā)執(zhí)行線程后,同時啟動多個線程運行,使不同的線程運行在基于不同處理器的Java虛擬機中,才能提高應用程序的執(zhí)行效率。
posted @
2011-07-22 14:04 雪黛依夢 閱讀(1111) |
評論 (0) |
編輯 收藏
1、序列化是干什么的?
簡單說就是為了保存在內存中的各種對象的狀態(tài)(也就是實例變量,不是方法),并且可以把保存的對象狀態(tài)再讀出來。雖然你可以用你自己的各種各樣的方法來保存object states,但是Java給你提供一種應該比你自己好的保存對象狀態(tài)的機制,那就是序列化。
2、什么情況下需要序列化 a)當你想把的內存中的對象狀態(tài)保存到一個文件中或者數據庫中時候;
b)當你想用套接字在網絡上傳送對象的時候;
c)當你想通過RMI傳輸對象的時候;
3、當對一個對象實現序列化時,究竟發(fā)生了什么?在沒有序列化前,每個保存在堆(Heap)中的對象都有相應的狀態(tài)(state),即實例變量(instance ariable)比如:
java 代碼
- Foo myFoo = new Foo();
- myFoo .setWidth(37);
- myFoo.setHeight(70);
當 通過下面的代碼序列化之后,MyFoo對象中的width和Height實例變量的值(37,70)都被保存到foo.ser文件中,這樣以后又可以把它 從文件中讀出來,重新在堆中創(chuàng)建原來的對象。當然保存時候不僅僅是保存對象的實例變量的值,JVM還要保存一些小量信息,比如類的類型等以便恢復原來的對 象。
java 代碼
- FileOutputStream fs = new FileOutputStream("foo.ser");
- ObjectOutputStream os = new ObjectOutputStream(fs);
- os.writeObject(myFoo);
4、實現序列化(保存到一個文件)的步驟
a)Make a FileOutputStream
java 代碼
- FileOutputStream fs = new FileOutputStream("foo.ser");
b)Make a ObjectOutputStream
java 代碼
- ObjectOutputStream os = new ObjectOutputStream(fs);
c)write the object
java 代碼
- os.writeObject(myObject1);
- os.writeObject(myObject2);
- os.writeObject(myObject3);
d) close the ObjectOutputStream
java 代碼
相關注意事項
a)序列化時,只對對象的狀態(tài)進行保存,而不管對象的方法;
b)當一個父類實現序列化,子類自動實現序列化,不需要顯式實現Serializable接口;
c)當一個對象的實例變量引用其他對象,序列化該對象時也把引用對象進行序列化;
d)并非所有的對象都可以序列化,,至于為什么不可以,有很多原因了,比如:
1.安全方面的原因,比如一個對象擁有private,public等field,對于一個要傳輸的對象,比如寫到文件,或者進行rmi傳輸 等等,在序列化進行傳輸的過程中,這個對象的private等域是不受保護的。
2. 資源分配方面的原因,比如socket,thread類,如果可以序列化,進行傳輸或者保存,也無法對他們進行重新的資源分 配,而且,也是沒有必要這樣實現。
posted @
2011-07-22 11:08 雪黛依夢 閱讀(977) |
評論 (0) |
編輯 收藏
根據JAVA官方文檔的描述,mark(int readlimit)方法表示,標記當前位置,并保證在mark以后最多可以讀取readlimit字節(jié)數據,mark標記仍有效。如果在mark后讀取超過readlimit字節(jié)數據,mark標記就會失效,調用reset()方法會有異常。
但實際的運行情況卻和JAVA文檔中的描述并不完全相符。 有時候在BufferedInputStream類中調用mark(int readlimit)方法后,即使讀取超過readlimit字節(jié)的數據,mark標記仍有效,仍然能正確調用reset方法重置。
事實上,mark在JAVA中的實現是和緩沖區(qū)相關的。只要緩沖區(qū)夠大,mark后讀取的數據沒有超出緩沖區(qū)的大小,mark標記就不會失效。如果不夠大,mark后又讀取了大量的數據,導致緩沖區(qū)更新,原來標記的位置自然找不到了。
因此,mark后讀取多少字節(jié)才失效,并不完全由readlimit參數確定,也和BufferedInputStream類的緩沖區(qū)大小有關。 如果BufferedInputStream類的緩沖區(qū)大小大于readlimit,在mark以后只有讀取超過緩沖區(qū)大小的數據,mark標記才會失效。看下面的例子。
<span style="color: rgb(255, 0, 0);">ava代碼 |
import java.io.BufferedInputStream; |
import java.io.ByteArrayInputStream; |
import java.io.IOException; |
public class MarkExample { |
public static void main(String[] args) { |
byte[] bytes={1,2,3,4,5}; |
ByteArrayInputStream in=new ByteArrayInputStream(bytes); |
BufferedInputStream bis=new BufferedInputStream(in,2); |
System.out.print(bis.read()+","); |
System.out.println("mark"); |
posted @
2011-07-21 14:46 雪黛依夢 閱讀(1726) |
評論 (0) |
編輯 收藏