① 誰可以告訴我md5加密原理
MD5的全稱是Message-Digest Algorithm 5,在90年代初由MIT的計算機科學實驗室和RSA Data Security Inc發明,經MD2、MD3和MD4發展而來。
Message-Digest泛指位元組串(Message)的Hash變換,就是把一個任意長度的位元組串變換成一定長的大整數。請注意我使用了「位元組串」而不是「字元串」這個詞,是因為這種變換只與位元組的值有關,與字元集或編碼方式無關。
MD5將任意長度的「位元組串」變換成一個128bit的大整數,並且它是一個不可逆的字元串變換演算法,換句話說就是,即使你看到源程序和演算法描述,也無法將一個MD5的值變換回原始的字元串,從數學原理上說,是因為原始的字元串有無窮多個,這有點象不存在反函數的數學函數。
MD5的典型應用是對一段Message(位元組串)產生fingerprint(指紋),以防止被「篡改」。舉個例子,你將一段話寫在一個叫readme.txt文件中,並對這個readme.txt產生一個MD5的值並記錄在案,然後你可以傳播這個文件給別人,別人如果修改了文件中的任何內容,你對這個文件重新計算MD5時就會發現。如果再有一個第三方的認證機構,用MD5還可以防止文件作者的「抵賴」,這就是所謂的數字簽名應用。
MD5還廣泛用於加密和解密技術上,在很多操作系統中,用戶的密碼是以MD5值(或類似的其它演算法)的方式保存的,用戶Login的時候,系統是把用戶輸入的密碼計算成MD5值,然後再去和系統中保存的MD5值進行比較,而系統並不「知道」用戶的密碼是什麼。
一些黑客破獲這種密碼的方法是一種被稱為「跑字典」的方法。有兩種方法得到字典,一種是日常搜集的用做密碼的字元串表,另一種是用排列組合方法生成的,先用MD5程序計算出這些字典項的MD5值,然後再用目標的MD5值在這個字典中檢索。
即使假設密碼的最大長度為8,同時密碼只能是字母和數字,共26+26+10=62個字元,排列組合出的字典的項數則是P(62,1)+P(62,2)….+P(62,8),那也已經是一個很天文的數字了,存儲這個字典就需要TB級的磁碟組,而且這種方法還有一個前提,就是能獲得目標賬戶的密碼MD5值的情況下才可以。
在很多電子商務和社區應用中,管理用戶的Account是一種最常用的基本功能,盡管很多Application Server提供了這些基本組件,但很多應用開發者為了管理的更大的靈活性還是喜歡採用關系資料庫來管理用戶,懶惰的做法是用戶的密碼往往使用明文或簡單的變換後直接保存在資料庫中,因此這些用戶的密碼對軟體開發者或系統管理員來說可以說毫無保密可言,本文的目的是介紹MD5的java Bean的實現,同時給出用MD5來處理用戶的Account密碼的例子,這種方法使得管理員和程序設計者都無法看到用戶的密碼,盡管他們可以初始化它們。但重要的一點是對於用戶密碼設置習慣的保護。
有興趣的讀者可以從這里取得MD5也就是RFC 1321的文本。http://www.ietf.org/rfc/rfc1321.txt
② bert模型插入特殊符號後,如何獲取它的值
使用輸入連接器(文件/SFTP)在讀取輸入文件時轉換數據。
配置文件內容並在入站連接器配置中添加轉義字元配置。具有特殊字元的數據,例如特定語言(拉丁語)或HTML標記。
BERT是一個預訓練的語言表徵模型。它強調了不再像以往一樣採用傳統的單向語言模型或者把兩個單向語言模型進行淺層拼接的方法進行預訓練,而是採用新的maskedlanguagemodel(MLM),以致能生成深度的雙向語言表徵。
③ bert和lda區別
IDAPro是反匯編工具,bert是雙向Transformer的Encoder。
BERT的實現主要是圍繞工程化的項目來進行的。bert模型的主要創新點都在pre-train方法上,即用了MaskedLM和NextSentencePrediction兩種方法分別捕捉詞語和句子級別的representation。
作為反匯編程序的IDAPro能夠創建其執行映射,以符號表示(匯編語言)顯示處理器實際執行的二進制指令。IDAPro可以從機器可執行代碼生成匯編語言源代碼,並使這些復雜的代碼更具人類可讀性(這個可讀具有相對性)。
④ 如何打好Java的基礎
從大學到現在,我使用Java已經將近20年,日常也帶實習生,還在公司內部做training,所以可以分享下我的經驗,希望對你有用。
因為是在工作中培訓,就必然有兩個約束:實用、時間緊,因此就不能像大學那樣,把所有的知識點都面面俱到的講到。而只能挑基礎的,實用的,難理解的講。至於其他邊邊角角的知識,就一筆帶過。一則沒有時間,二則不常用,再則既使講了,學生印象也不深刻。總之一句話:「好鋼用在刀刃上」。
下面,就根據我的實踐,具體談下學習過程:
1.基礎知識
我學習java的時候,先是通讀了《Java編程思想》,然後是《Java核心技術》。當時這兩本書還不像現在這么厚,而剛才我把案頭的《Java核心技術》第9版翻了翻,上下兩冊已經1700多頁了,可想而知,如果要把它通讀一遍,且不說把所有的代碼都調通,就是當小說讀,估計也需要些時間。
但我現在教學依然首推《Java核心技術》,主要是體系完整,實例多,可操作性強。但對初學者,我一般是只講前6章,也就是下面的內容:
Java程序設計概述
Java程序設計環境
Java的基礎程序設計結構
對象與類
繼承
介面與內部類
就《Java核心技術》第9版來說,也就是到250頁為止,加把勁,1個月拿下完全沒問題。
因為你是自學,所以建議你一定要把其中的代碼都調通,課後的作業盡量去做。除此之外,還有兩點特別重要:
#.學習筆記
因為你是自學,不像在企業中學了就能夠實踐,印象自然特別深刻。而自學因為沒有實踐的及時反饋,所以記筆記就顯得特別重要。因為記筆記就像寫作一樣,是整理思路的絕佳方法。同時學習筆記也是你以後開發,面試的絕好資料。
學習編程,人跟人是不一樣的,別人覺得難理解的東西,對你卻不一定;而你覺得難理解的東西,別人可能又會覺得特簡單。而學習筆記就是自己專有的「難點手冊」,有點像高考時的「錯題本」,以後無論是在面試前,還是在日常工作中,隨時都可以翻出來看看,自是獲益匪淺。
#.分門別類保存demo
學習筆記是很好的文字資料,但編程界有句話說的特別好,所謂「no code, no text」,意思就是說:千言萬語都沒有一段代碼來的實在。
以我的經驗,在你在學習的過程中,就某個知識點,無論當時理解的多透徹,調試的多棒,只要時間一長,等到了實用的時候,肯定會碰到各種各樣的問題,一些看似簡單的東西,此時死活就是調不通,正所謂人到事中迷。這個時候,如果你手頭恰有運行良好的demo,打開參考一下(甚至直接拷貝過來),問題自然迎刃而解。而且因為這些demo都是你親手調試出來,印象自然特別深刻,一碰到問題,在腦子中自會立刻涌現。
所以說,在學習的過程,一定要善待你調通的demo,千萬不要用完了就扔,等後來碰到困難,想要用時卻找不到,追愧莫及。正確的做法就是把所有調通的demo,分門別類的保存起來,到時候查起來自是得心應手。
人都說「書到用時方恨少」,其實代碼也是這樣,所謂「demo用時方恨少」。
2.Spring
目前在Java EE開發中,Spring已經成為和Java核心庫一樣的基礎設施,所以說如果想成為一個合格的Java程序員,Spring肯定繞不開。另一方面,如果掌握了Spring體系,Java基本上就算入門了,就有能力進行一些實用級的開發了。
但Spring本身也是日漸復雜,衍生項目越來越多,但最最核心的概念依舊是IOC和AOP,掌握了這兩個概念,再把Spring MVC學會,再學習其他的衍生項目就會平滑很多。
同時,因為Spring本身就應用了許多優雅的設計理念,所以學習Spring的過程,也是加強Java基礎知識學習的過程。因此等你掌握了Spring,原來很多你理解不透徹的Java特性,此時就會恍然大悟,包括介面、抽象類等。
我學習Spring,讀的第一本書是《Spring實戰》,坦率的說,書很一般,但市面上比它好的書,我卻沒有遇到過。還有一本《Spring源碼深度解析》也不錯,對Spring的設計理念講的尤其透徹,雖然整本書讀起來有些艱澀,但前幾章卻生動有趣,也是整本書的精華。所以建議你在學習Spring之前,先把該書的前幾章通讀一下,然後再回過頭來學習《Spring實戰》會順利很多。
以我經驗,要學透Spring,終極的方法還是閱讀源碼(我當時就是這么乾的),待把Spring的核心源碼通讀了,人就真的自由了(所謂無真相不自由),不僅是對Spring,而是對整個Java體系。以後再遇到其他框架,大概一眼就能看出其中的脈絡,所謂到了「看山不是山」的境界。但這都是後話,可以作為以後你努力的方向。
和學習Java基礎知識一樣,學習Spring也一定要記筆記,一定要分門別類保存demo。
老實說,Spring對初學者不算簡單,因此最好能有個好老師帶一下,不用太長時間,2個課時即可,然後就是在你遇到大的困難時,能及時的點撥下。
以我的經驗,要初步掌握Spring,大概需要1到1個半月的時間。
3.其他知識
Spring是Java編程的基礎設施,但真要進入到實際項目的開發,還有些東西繞不過,包括 MySql,Mybatis,Redis,Servlet等,但如果你經過Spring的洗禮,這些東西相對就簡單多了,以我的經驗,1個月的時間足夠了。
4.實踐
學習Java,光學不練肯定是不行的。但因為是自學,所以就沒有實際的產品讓你練手,但也沒有關系,誰大學還沒有做過畢業設計呢?以我的經驗,大家最愛的「學生管理系統」依舊是個很好的練手系統。
別看「學生管理系統」邏輯簡單,但麻雀雖小五臟俱全,其中資料庫設計、Mybatis,Spring、SpringMVC,Servlet、Tomcat一個都不缺,絕對的練手好伴侶。
還有,雖然你的學習重點在Java,因為要做一個完整的demo,前端的配合肯定少不了。因此就免少不了要學一些簡單的JS、HTML知識,但因為前端本就是個很大的topic,所以一定要控制好邊界,千萬不要顧此失彼。就「學生管理系統」來說,在前端上,只要實現一個包含table、textbox、button,能發送REST請求到server,能實現學生的「增刪改查」的簡單頁面即可。
作為一個練手項目,目標就是把Java的主要技能點串起來,所以自不求盡善盡美(也不可能),所以1個月時間足夠了。
.最後
按照上面的過程,4個月的時間剛剛好。當然Java的體系是很龐大的,還有很多更高級的技能需要掌握,但不要著急,這些完全可以放到以後工作中邊用別學。
學習編程就是一個由混沌到有序的過程,所以你在學習過程中,如果一時碰到理解不了的知識點,大可不必沮喪,更不要氣餒,這都是正常的不能再正常的事情了,不過是「人同此心,心同此理」的暫時而已。
在日常的教學中,我常把下面這句話送給學員們,今天也把它送給你:
「道路是曲折的,前途是光明的!」
祝你好運!
⑤ 1080ti微調12層bert要多久
看你所謂的訓練是指重頭預訓練一個bert,還是用bert做微調。前者別想了,後者視數據量而定,一般幾十分鍾吧。
影馳GTX 1080Ti名人堂顯卡延續了經典的白色裝甲設計,採用全新的Lumin X RGB炫彩技術,除了中央名人堂LOGO部分,外接供電和視頻介面均添加了RGB元素,玩家可使用影馳最新魔盤實現1680萬色的多彩調節。此外還有HOF Armor+金屬強化背板,HOF Panel液晶顯示屏。
同時,還採用「TriMax」散熱器,在HOF系列成熟的散熱體繫上再次優化,採用三枚9CM大風扇,能夠帶來強大的散熱效能。
GTX 1080Ti名人堂有限量版和高頻版,同樣採用GP-102核心,流處理器個數為3584個。
基礎頻率和提升頻率分別達到了1645MHz和1759MHz(高頻版是基礎頻率為1569MHz,提升頻率為1683MHz),同時使用的11GB高速顯存,在顯存頻率是11210MHz(高頻版11010MHz)。
總結如下:
影馳GTX 1080Ti名人堂限量版沿用10系名人堂的皇冠造型,更添加了許多RGB元素。12層至臻純白PCB設計,高強度鋁合金HOF Armor+背板,用料豪華。
⑥ 急用:那位對光信號傳輸中用的BERT板有研究,請指教一下,先謝謝了.
大客戶末端專線接入的有效解決方案
1、城域網路現狀:
目前城域網光纖傳輸上的主要業務形式是TDM方式的E1業務和統計復用的IP數據業務兩種,前後也出現過一些業務流融合(如ATM)的傳輸機制,隨著各種數據業務、電信業務的飛速發展,兩類業務量都在以很大的速度增長。由於兩種業務制式的傳輸特點差別大,採用任何一種傳輸機制,在傳輸性能和傳輸帶寬利用率上都難以達到好的效果,兩種業務的節點處理設備差別也很大(SDH設備和乙太網交換機、路由器),在實際的核心網傳輸上形成了兩網分離、並行發展的趨勢;
一些大、中城市,甚至一些發達地區的小城市,城域核心網已經形成了SDH傳輸網和IP數據網並行的局面。
城域核心網規劃建設的網路拓撲方式目前主要是以環形網路為主,E1業務傳輸設備主體是SDH設備,與SDH傳輸網路並行的是以路由器/交換機為主要節點設備的IP數據傳輸網,實際上很多IP數據傳輸網是通過利用已有SDH傳輸光纜網路中的光纖資源進行的組網建設。
從以上分析可以得出結論:城域網核心網路拓撲以環網方式為主,傳輸機制以SDH為主,乙太網交換機/路由器等技術和設備應用逐漸增多。
2、市場需求分析:
城域網末端的普通商業客戶光纖專線接入需求,近年來一直在持續高速的增長,相對於為數眾多的普通居民用戶,數量較少的大客戶所能提供的效益總額佔有比例卻很高,這也符合經濟學的2/8理論。因此各個地區、各大運營商都在積極競爭大客戶的專線接入市場,這幾年每年的業務需求量都在以高於50%的增長率擴展,且後續發展仍保持高增長趨勢。隨著光纜的成本降低和末端接入設備價格的大幅下降,原來很多使用低速雙絞線進行數據接入的客戶都逐漸改造為利用光纖進行數據接入,例如銀行系統的數據網路、郵政系統、連鎖經營企業等都逐漸將原來的ISDN、ADSL改用了光纖接入,在成本不高的情況下保證了數據傳輸的穩定、可靠,以及日後的網路擴容的需求;
3、大客戶末端光纖專線接入的網路拓撲方式
將來的城域網路拓撲可能會向網狀網方式的智能光網路發展,形成一個智能的、可交換的全光網路,從目前的實際情況看,各地城域網路基本是環形網路拓撲方式為主,主要傳輸技術是SDH,在城域網邊緣大客戶專線接入部分,主要是使用的點對點普通光端機,少量使用了SDH環網,近一、二年數據的接入需求成明顯上升趨勢,使用了大量的乙太網光纖收發器,基本也都是點對點使用;隨著用戶數量的增長,具有完善網管功能的以局端集中型設備為中心的星網拓撲方式應用逐漸增多。在末端專線接入應用中,星網方式比較點對點光端機或光纖收發器,在管理維護、業務種類多樣的適應性、擴容變換的靈活性、投入產出比和投資快速回收的綜合經濟效益等方面,具有明顯優勢,在末端用戶數量很大時,優勢更加突出,如果末端採用難以網管的點對點設備,設備的維護、管理隨著用戶數量的增加,會成為運營商的一個大包袱,這一點已經引起了各大運營商的關注。
在末端接入應用中,為一些大型客戶內部組建較獨立的光纖傳輸網路時,或環形光纜已經鋪設完成的條件下,以及其他一些需求情況,SDH環網在末端接入中會保持一定的應用份額,但星網拓撲方式仍然是今後大客戶專線接入的主流方式,星網與SDH環網的在大客戶末端專線接入應用中的對比分析如下:
1)接入容量:目前末端用戶需求容量80%在4E1以內,普通光端機一般都可以做到16E1,能夠滿足絕大多數應用;末端接入用SDH主要是155M制式,環網總容量63E1,各個節點共享這一總容量;如果客戶的傳輸容量需要大的擴容,特別是傳輸數據帶寬需求猛增時,星網方案由於是為每個客戶單獨使用一路光纖,容量的變化很方便,例如格林威爾的E+E光端機最多可以提供20路E1+100M線速乙太網數據的傳輸。而155M的SDH環網,在傳輸帶寬容量需要擴大時會受到限制,例如有時可能即使一個節點的客戶帶寬擴容,整個環的所有節點設備都要升級到更大容量的SDH設備,二次投入代價很大。
2)成本比較:很多用戶初期只需要4E1以下的專線接入容量,從技術機制和材料成本來看,每對SDH光口成本比較普通星網光端機最少要高出50%以上,甚至更多,E1租賃價格由於競爭的壓力已經很低,運營商也越來越注重投資回收率和回收期,這樣較高的設備售價在末端大量應用時會起到一定的制約作用。
3)網路拓撲形式:末端成環,環不能抗擊2次打擊,末端節點一般在用戶機房,條件難以保證,例如有些客戶為了安全,下班後或節假日往往會習慣性的將設備關機,這樣做對於環網是很危險的,還有用戶忠誠度的問題,特別是不相關的客戶共享一個環網時,末端成環、成鏈的網路拓撲存在較大隱患;
4)網路規劃:SDH末端成環、成鏈時要求前期的光纖網路規劃要全面、細致,這在有末端接入需求的寫字樓宇建設、新型企業地理位置變化隨機性較大的情況下,往往難以及時適應需求;而目前很多大的城市,光纖網路鋪設的非常密集,幾公里范圍內就可以找到光纖配纖箱,以星網方式根據大客戶的增減變化可以及時提供和去除光介面,而要求成環的拓撲,網路建設會受到限制;
5)網管:末端接入使用SDH環網機制的一個優勢是可以和上層的SDH網路統一網管,網管通道可以利用SDH的開銷實現帶內網管,但實際上如果末端接入的SDH端機數量大到一定程度,比如幾千個節點終端,帶內網管通道的帶寬會是一個嚴重的瓶頸,而且從重要程度來講,末端的接入側網管也需要與城域骨幹網的網管分開網管通道、分開管理,利用帶外網管網建立網管系統,這樣與星網方式的光纖接入網管網實施方案一致。
另外,採用SDH機制在光口業務上不同廠家設備都能互通,但網管一般難以做到互通,因此如果希望末端接入側的SDH與上游城域網SDH統一網管,那麼末端的SDH設備需要與城域網的SDH設備為一個設備廠家,這樣就限制了運營商的設備選型;
6)SDH星網方案:利用SDH設備組成星網實現末端接入,優勢是可以和上游SDH光端機直接在STM-1介面對通,但當末端數量很大時,在與上游SDH設備直接對接時,上游的一個SDH節點機需要給出十幾、二十幾、甚至幾十個光分支,但很多情況下上游SDH光端機很難提供這么多光分支,而採用普通的星網光端機可以很容易的提供大量光方向,光方向在一個節點理論上不受限制;
7)運營商的光節點分布情況:在很多大城市,電信、網通的光纖網路已經鋪設的非常密集,例如上海、廣州等城市在方圓5公里、甚至在2~3公里范圍內都能有光纖配纖箱;對於移動、聯通這類運營商,基站已經密布各地,可以充分利用基站資源就近開展大客戶接入服務;這樣的網路資源下,對於各地的樓宇、客戶開展專線接入服務利用點對點、點對多點的方式更加便捷,在激烈的市場競爭環境下,增加新客戶、丟失老客戶時設備和網路的變更都會比較方便。
8)末端業務的混合傳輸:MSTP的出現可以說是光傳輸領域的一個閃光點,給呈現低迷的光傳輸市場注入了活力。MSTP特別適用於城域網的邊緣部分,對於邊緣網路多種業務融合的匯聚傳輸非常有價值,但在網路末端最後一段光纖接入應用時,除了上述SDH機制的特點外,更在於相對普通光端機等產品技術較復雜、成本較高,短期難以大批量應用於末端接入。末端只需要E1接入的可以提供普通星網光端機、需要乙太網數據接入的可以用乙太網光纖收發器、既需要E1同時又要乙太網數據接入的,可以用「光端機+協議轉換器」或採用同時傳輸E1和乙太網數據的光端機,例如格林威爾的E+E光端機,可以同時傳輸多路E1和提供100M線速乙太網數據傳輸,成本低,管理功能強,如果上游城域網路採用MSTP傳輸,末端接入採用E+E光端機方案則是低成本、高性價比、穩定可靠、易於管理的理想解決方案。
綜上,大客戶的末端光纖接入需求量很大,逐年遞增,從目前需求的情況,在功能、容量、成本、可維護性、投入產出比、投資回收期等幾方面考慮,星形網路是末端接入的主要網路形式,星網光端機、光纖收發器、E1和乙太網的混合傳輸光端機是末端接入採用的主流設備,SDH(MSTP)環網接入由於其技術特點、設備成本等方面的原因,在大客戶光纖末端接入領域會有一部分應用,但還不是主流。
4、MSAP產品平台的特點介紹
MSAP產品平台是格林威爾公司最新推出的針對末端大客戶多業務專線接入應用的產品平台,MSAP產品平台由一系列產品組成,並構成了完整的末端接入解決方案,下面將MSAP的幾個特點進行簡單介紹。
MSAP系列產品由局端集中型設備和遠端設備組成,集中性設備為插卡式,可以混合插入不同容量的光端機光碟、光纖收發器盤、協議轉換器盤,以及具有「1+1」光纖保護的光碟等,還可選配SDH上聯口光碟直接與上游SDH的STM-1介面對通,實現將各個光分支傳輸E1和乙太網數據業務到上游城域網的匯聚功能,省去了E1配線架等裝置。
MSAP為適應末端接入的實際應用需求,具有三項主要的專利技術:
1)E+E混合傳輸技術:E1和乙太網數據通過混合編碼採用TDM機制進行混合傳輸,傳輸E1容量最多可達20E1,乙太網數據可以實現真正的線速100M帶寬,性能優越;
2)光端機內置誤碼測試功能:MSAP的光端機內置了E1誤碼測試模塊功能,可以通過遠程網管操作對任何一路E1實現誤碼性能測試,不到現場就能迅速方便的查找故障點,為快速排故打下了基礎,是運營商提高服務質量,方便運營維護的有效手段;
3)電源監控功能:放置客戶端的遠端光端機內置電源監控模塊,遠端電源掉電自動上報局端網管,為分清故障類別,特別是為遠端無人職守機房的故障自動監測提供了條件。
MSAP的網管為適應運營商維護需要,正在進行從單純的設備管理向端到端的業務管理轉變,因為出現線路故障後,運維部門第一反映需要知道的是那位客戶處有故障,而不是第幾號設備出了什麼故障,這樣可以迅速根據相應的客戶服務等級採取排故措施,並第一時間通知客戶,贏得客戶的理解,提升客戶滿意度。另外,MSAP網管架構已經實現了分布式網管,為廣大運營商集中管理、分級監控和維護,為末端成千、上萬對光纖專線接入的運營做好了准備。 更多內容請看大型實用解決方案專題 多媒體應用解決方案 寬頻接入專題專題,或進入討論組討論。
⑦ 如何快速系統的學習java
Java - 近10年來計算機軟體發展過程中的傳奇,其在眾多開發者心中的地位就如「屠龍刀」、「倚天劍」。
Java是個平台,我只想說說我對學好Java的一點看法,希望對初學者有所幫助。
1. 思考一下
學習Java之前,先別急,靜下心來好好想想:
1)你對學習Java是否有興趣?
2)你是否能靜下心來堅持不懈地學習?
嗯,這是個容易但又絕對不應該忽略的問題,你確信自己對Java感興趣、而且又有吃苦的准備,那你才可能學好Java!如果具備這兩點條件,就請繼續往下看……
2. 准備一下
請不要把你的學習Java之路和其它計算機技術分開看待,技術的聯系往往是千絲萬縷的,你應該掌握一些學習Java所涉及的基礎知識,對於 「CLASSPATH要怎麼設置啊」、「跪求JDK下載地址」等等問題,你不該問,因為Internet上太多答案了,甚至換個角度說,你是不是還不適合直接學習編程?
1)買本Java學慣用書。
JDK 6正式版剛剛推出,市面上你暫時買不到JDK 6的書籍,但我仍推薦你買一本適合入門的、較新JDK版本的Java書籍,那麼,你現在選擇一本講述JDK 5的入門書籍還是有條件的。我可以推薦一些入門書,但是我不打算這么做,因為合我口味的,不一定適合你。但無論如何,《Thing In Java》絕對不應該作為你入門Java的第一本書籍!
記住,網路上學習Java的資源很多,但基本不夠系統,擁有一本Java入門書籍,是你系統學習Java的基礎。
2)准備Java學習環境。
准備你的學習環境,很簡單,安裝JDK 6,然後用類似UltraEdit、EditPlus的文本編輯器配置你的學習環境,Internet上有很多關於如何配置的文章。初學Java,不建議用IDE工具,通過一行行的敲代碼,你會碰到很多問題,只有這樣,你才能學會怎樣解決問題,並加深自己對Java的理解。
准備好後,開始進入激動人心的Java學習里程吧!
3. Java基礎學習之路
學習Java的過程雖然辛苦些,但又是處處有精彩!學習過程中的心態一定要保持專一,網上關於語言間的「PK」到處都是,別被浮躁影響!認准了Java,你就堅持!克服心魔,恆心最終會給你回報的。
Java的體系分為Java SE、Java EE和Java ME(JDK 5.0以前分別叫J2SE、J2EE和J2ME),Java的敲門磚就是Java SE了,也就是你要入門學習的內容,不論你日後是選擇哪個體系領域作為發展方向,你都得從Java SE起步。
學習Java SE,打好Java基礎;如果想學Java EE(對不起,我不了解Java ME,所以我無法涉及Java ME的相關內容),對於AWT、Swing是否要學習呢,我個人是覺得還是要知道其所以然的,特別是其事件處理模式,我強烈建議初學者一定要弄清楚,其他具體的開發就不一定要全面掌握了,畢竟AWT、Swing方面的內容足夠用幾本大部頭的書才能描述詳盡;當然,如果你的工作就是做 AWT、Swing開發,那就另當別論了。
I/O、Thread都是基礎之一。
4. Java EE學習之路
學習了Java SE,還只是完成「萬里長征」的第一步。
接下來選擇學習Java EE或是Java ME(或者你還想不斷深入學習Java SE,只要你喜歡,你可以一直深入下去,就像前面所說的,我不會講到Java ME的學習);估計選擇Java EE方面的學習者會多一些,Java EE所涉及技術非常多,考慮到初學者的接受程度,我會盡量從最常用的角度來介紹。
學習Java EE,在開發環境上不建議再用文本編輯器,我感覺NetBeans 5.5(目前最高正式版本)很適合初學者,我個人也很喜歡NetBeans,如果你喜歡用別的IDE如Eclipse,都沒問題,看自己喜歡吧。
4.1 學習JSP/Servlet
Java EE最高版本目前是5.0版本。
在Java EE中,首先要學習JSP/Servlet(結合Tomcat、MySQL)技術,建議JSP1.2/2.X的知識都要掌握,畢竟現在很多的在用系統都還是基於JSP1.2,學習JSP,還必須掌握一些外延技術,如:你還得掌握HTML基礎知識,最好再掌握些JavaScript(目前正火的AJAX技術之一)、CSS的技術,而了解XML是必不可少的(至少描述性配置信息是通過XML來描述的)。在學習JSP/Servlet過程中,應該結合學習 JDBC、資料庫開發技術,畢竟絕大多數Java Web項目都是和資料庫緊密結合的。
4.2 學習資料庫開發技術
這里我想重點說一下資料庫開發技術,資料庫技術是做業務系統必備技能,Java Web開發人員最低程度都應該掌握SQL語句的使用!資料庫技術大體可分為DBA技術和資料庫開發技術,對於開發而言,應側重資料庫開發技術,而資料庫基本操作,也是要掌握的。常用資料庫有DB2、Oracle、SQL Server、MySQL等,你可以結合實際需要,選擇一種資料庫,並花大力氣掌握其開發技術。
記住,學習資料庫開發技術和學習Java EE,是相對獨立的,你可以在學習JSP/Servlet的同時,學習資料庫開發技術(如SQL語句等),或者先學資料庫開發技術,之後再學習JSP/Servlet。
4.3 學習Java EE其它開發技術
再往後,可以學習一些EJB的知識,目前EJB最新版本是3.0,其和前面的2.X版本相比,有較大不同,考慮到目前EJB 2.X還有很大的應用市場,建議結合學習EJB 2.X/3.0。在學習EJB過程中,應同時掌握一種企業級應用伺服器的使用(如 WebSphere、Weblogic、Sun Applcation Server或JBOSS等,目前Sun Applcation Server 9.X和JBOSS都可支持EJB 3.0)。
之後的學習中,再逐漸擴展到其他Java EE技術。
5. 之後
等你對Java EE有些感悟的時候,你自然就會想不斷擴展你的知識面,這時候你可以學習Spring、Hibernate,以及各種Web框架(如Struts、JSF、Webwork或是Tapestry等)。
隨著技術、經驗的不斷積累,你會逐步關注分析、設計等更高層次的知識,這時候,你可進一步學習相關的UML、模式等知識(積累了一定經驗,你就可以安排自己學習這些知識了)。
6. 小結
永遠記住:自始至終,實踐是學習Java技術歷程中極其重要的一環。脫離了實踐,是學不好技術的!
Java學習、實踐之路依然沒有銀彈,況且一步步走來,要學的東西很多,勤奮是金!
善於利用Internet上眾多的資源,多吸取些別人的經驗。
目前關於Java的爭論很多,如「Java正走下坡路」、「Ruby必將取代Java」等論點甚囂塵上,但正如我前面所言,這是一種浮躁的表現,Java的前景非常好,特別是Java開源以後!就讓他們去吵去吧,掌握了Java,你就掌握了當前最火的技術。
「梅花香自苦寒來」,當你掌握了扎實的Java開發基礎,你就能把手中的這把「屠龍刀」、「倚天劍」舞得風聲水起!那時,你一定會有一種成就感。
以上,你大概了解應當如何學習Java了么?
⑧ 如何快速的學好java
好的學習方法對於你的學習至關重要,對於每一個剛開始學習Java的程序員新人來說,都希望有一種快速學習的方法,漫無目的和長時間的學習很容易消耗你的信息,最後學的混亂,也沒有實質性的收獲,以至於學習到最後越來越焦慮。
初學者想要快速學習Java技術的心情大家都可以理解,但是有一句話:欲速則不達。盲目的追求快並不能達到理想的學習效果,問題來了,那麼作為Java新人如何快速的學習Java編程呢?
新人學習進步非常緩慢,是因為很多的Java難題自己都沒有辦法解決,身邊沒有懂技術的人,所以只能一直在網上苦苦查找答案,就算你找到了解答,但是也不一定能夠保證是對的。
方法1:Java初學者可以加入一個比較好的Java學習交流群,或者論壇,群不需要加的太多,在群中提出問題,有時候其他人的只言片語也可以幫助你走出困境。多與技術好的人交流溝通,你的技術才能變得更好。比如我的這個技術交流群