當前位置:首頁 » 編程軟體 » c55x編譯器使用關鍵字

c55x編譯器使用關鍵字

發布時間: 2024-03-07 20:36:07

Ⅰ 誰可以告訴我md5加密原理

2004年,已經被山東大學的王小雲教授破解了。

以下是她在國際密碼學會上發表的破解原理論文。
Collisions for Hash Functions
Collisions for Hash Functions
MD4, MD5, HAVAL-128 and RIPEMD
Xiaoyun Wang1, Dengguo Feng2, Xuejia Lai3, Hongbo Yu1
The School of Mathematics and System Science, Shandong University, Jinan250100, China1
Institute of Software, Chinese Academy of Sciences, Beijing100080, China2
Dept. of Computer Science and Engineering, Shanghai Jiaotong University, Shanghai, China3
[email protected]
revised on August 17, 2004

1 Collisions for MD5
MD5 is the hash function designed by Ron Rivest [9] as a strengthened version of MD4 [8]. In 1993 Bert den
Boer and Antoon Bosselaers [1] found pseudo-collision for MD5 which is made of the same message with two
different sets of initial value. H. Dobbertin[3] found a free-start collision which consists of two different 512-bit
messages with a chosen initial value 0 V I .
ED BA x C B F x C B AC x A V I 763 4 0 D , 97 62 5 0 , 341042 3 0x B , 2375 12 0 : 0 0 0 0 0
Our attack can find many real collisions which are composed of two 1024-bit messages with the original
initial value 0 IV of MD5:
10325476 0 , 98 0 , 89 0 67452301 0 : 0 0 0 0 0 x D badcfe x C xefcdab ,B x A IV
) 0 , 2 ,..., 2 ,..., 2 , 0 , 0 , 0 , 0 ( , 31 15 31
1 1 C C M M
) 0 , 2 ,..., 2 ,..., 2 , 0 , 0 , 0 , 0 ( , 31 15 31
2 2 C C N N i i
(non-zeros at position 4,11 and 14)
such that
) , ( 5 ) , ( 5 i i N M MD N M MD .
On IBM P690, it takes about one hour to find such M and M , after that, it takes only 15 seconds to 5
minutes to find i N and i N , so that ) , ( i N M and ) , ( i N M will proce the same hash same value. Moreover,
our attack works for any given initial value.
The following are two pairs of 1024-bit messages procing collisions, the two examples have the same 1-st
half 512 bits.
M
2dd31d1 c4eee6c5 69a3d69 5cf9af98 87b5ca2f ab7e4612 3e580440 897ffbb8
634ad55 2b3f409 8388e483 5a417125 e8255108 9fc9cdf7 f2bd1dd9 5b3c3780
X1
N1
d11d0b96 9c7b41dc f497d8e4 d555655a c79a7335 cfdebf0 66f12930 8fb109d1
797f2775 eb5cd530 baade822 5c15cc79 ddcb74ed 6dd3c55f d80a9bb1 e3a7cc35
M0
2dd31d1 c4eee6c5 69a3d69 5cf9af98 7b5ca2f ab7e4612 3e580440 897ffbb8
634ad55 2b3f409 8388e483 5a41f125 e8255108 9fc9cdf7 72bd1dd9 5b3c3780
X1
N1
d11d0b96 9c7b41dc f497d8e4 d555655a 479a7335 cfdebf0 66f12930 8fb109d1
797f2775 eb5cd530 baade822 5c154c79 ddcb74ed 6dd3c55f 580a9bb1 e3a7cc35
H 9603161f f41fc7ef 9f65ffbc a30f9dbf
M
2dd31d1 c4eee6c5 69a3d69 5cf9af98 87b5ca2f ab7e4612 3e580440 897ffbb8
634ad55 2b3f409 8388e483 5a417125 e8255108 9fc9cdf7 f2bd1dd9 5b3c3780
X2
N2
313e82d8 5b8f3456 d4ac6dae c619c936 b4e253dd fd03da87 6633902 a0cd48d2
42339fe9 e87e570f 70b654ce 1e0da880 bc2198c6 9383a8b6 2b65f996 702af76f
M0
2dd31d1 c4eee6c5 69a3d69 5cf9af98 7b5ca2f ab7e4612 3e580440 897ffbb8
634ad55 2b3f409 8388e483 5a41f125 e8255108 9fc9cdf7 72bd1dd9 5b3c3780

313e82d8 5b8f3456 d4ac6dae c619c936 34e253dd fd03da87 6633902 a0cd48d2
42339fe9 e87e570f 70b654ce 1e0d2880 bc2198c6 9383a8b6 ab65f996 702af76f
H 8d5e7019 6324c015 715d6b58 61804e08
Table 1 Two pairs of collisions for MD5
2 Collisions for HAVAL-128
HAVAL is proposed in [10]. HAVAL is a hashing algorithm that can compress messages of any length in 3,4
or 5 passes and proce a fingerprint of length 128, 160, 192 or 224 bits.
Attack on a reced version for HAVAL was given by P. R. Kasselman and W T Penzhorn [7], which
consists of last rounds for HAVAL-128. We break the full HAVAL-128 with only about the 26 HAVAL
computations. Here we give two examples of collisions of HAVAL-128, where
) 0 ,..., 0 , 2 ,.... 2 , 0 , 0 , 0 , 2 ( , 8 12 1 i i i C C M M
with non-zeros at position 0,11,18, and 31 ,... 2 , 1 , 0 i , such that ) ( ) ( M HAVAL M HAVAL .
M1
6377448b d9e59f18 f2aa3cbb d6cb92ba ee544a44 879fa576 1ca34633 76ca5d4f
a67a8a42 8d3adc8b b6e3d814 5630998d 86ea5dcd a739ae7b 54fd8e32 acbb2b36
38183c9a b67a9289 c47299b2 27039ee5 dd555e14 839018d8 aabbd9c9 d78fc632
fff4b3a7 40000096 7f466aac fffffbc0 5f4016d2 5f4016d0 12e2b0 f4307f87
M1
6377488b d9e59f18 f2aa3cbb d6cb92ba ee544a44 879fa576 1ca34633 76ca5d4f
a67a8a42 8d3adc8b b6e3d814 d630998d 86ea5dcd a739ae7b 54fd8e32 acbb2b36
38183c9a b67a9289 c47299ba 27039ee5 dd555e14 839018d8 aabbd9c9 d78fc632
fff4b3a7 40000096 7f466aac fffffbc0 5f4016d2 5f4016d0 12e2b0 f4307f87
H 95b5621c ca62817a a48dacd8 6d2b54bf
M2
6377448b d9e59f18 f2aa3cbb d6cb92ba ee544a44 879fa576 1ca34633 76ca5d4f
a67a8a42 8d3adc8b b6e3d814 5630998d 86ea5dcd a739ae7b 54fd8e32 acbb2b36
38183c9a b67a9289 c47299b2 27039ee5 dd555e14 839018d8 aabbd9c9 d78fc632
fff4b3a7 40000096 7f466aac fffffbc0 5f4016d2 5f4016d0 12e2b0 f5b16963

6377488b d9e59f18 f2aa3cbb d6cb92ba ee544a44 879fa576 1ca34633 76ca5d4f
a67a8a42 8d3adc8b b6e3d814 d630998d 86ea5dcd a739ae7b 54fd8e32 acbb2b36
38183c9a b67a9289 c47299ba 27039ee5 dd555e14 839018d8 aabbd9c9 d78fc632
fff4b3a7 40000096 7f466aac fffffbc0 5f4016d2 5f4016d0 12e2b0 f5b16963
H b0e99492 d64eb647 5149ef30 4293733c
Table 2 Two pairs of collision, where i=11 and these two examples differ only at the last word
3 Collisions for MD4
MD4 is designed by R. L. Rivest[8] . Attack of H. Dobbertin in Eurocrypto'96[2] can find collision with
probability 1/222. Our attack can find collision with hand calculation, such that
) 0 , 0 , 0 , 2 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 2 2 , 2 , 0 ( , 16 31 28 31 C C M M
and ) ( 4 ) ( 4 M MD M MD .
M1
4d7a9c83 56cb927a b9d5a578 57a7a5ee de748a3c dcc366b3 b683a020 3b2a5d9f
c69d71b3 f9e99198 d79f805e a63bb2e8 45dd8e31 97e31fe5 2794bf08 b9e8c3e9
M1
4d7a9c83 d6cb927a 29d5a578 57a7a5ee de748a3c dcc366b3 b683a020 3b2a5d9f
c69d71b3 f9e99198 d79f805e a63bb2e8 45dc8e31 97e31fe5 2794bf08 b9e8c3e9
H 5f5c1a0d 71b36046 1b5435da 9b0d807a
M2
4d7a9c83 56cb927a b9d5a578 57a7a5ee de748a3c dcc366b3 b683a020 3b2a5d9f
c69d71b3 f9e99198 d79f805e a63bb2e8 45dd8e31 97e31fe5 f713c240 a7b8cf69

4d7a9c83 d6cb927a 29d5a578 57a7a5ee de748a3c dcc366b3 b683a020 3b2a5d9f
c69d71b3 f9e99198 d79f805e a63bb2e8 45dc8e31 97e31fe5 f713c240 a7b8cf69
H e0f76122 c429c56c ebb5e256 b809793
Table 3 Two pairs of collisions for MD4
4 Collisions for RIPEMD
RIPEMD was developed for the RIPE project (RACE Integrrity Primitives Evalustion, 1988-1992). In
1995, H. Dobbertin proved that the reced version RIPEMD with two rounds is not collision-free[4]. We show
that the full RIPEMD also isnOt collision-free. The following are two pairs of collisions for RIPEMD:
) 2 , 0 , 0 , 0 , 0 , 2 2 , 0 , 0 , 0 , 0 , 0 , 0 , 2 , 0 , 0 , 0 ( , 31 31 18 20 ' C C M M i i
M1
579faf8e 9ecf579 574a6aba 78413511 a2b410a4 ad2f6c9f b56202c 4d757911
bdeaae7 78bc91f2 47bc6d7d 9abdd1b1 a45d2015 817104ff 264758a8 61064ea5
M1
579faf8e 9ecf579 574a6aba 78513511 a2b410a4 ad2f6c9f b56202c 4d757911
bdeaae7 78bc91f2 c7c06d7d 9abdd1b1 a45d2015 817104ff 264758a8 e1064ea5
H 1fab152 1654a31b 7a33776a 9e968ba7
M2
579faf8e 9ecf579 574a6aba 78413511 a2b410a4 ad2f6c9f b56202c 4d757911
bdeaae7 78bc91f2 47bc6d7d 9abdd1b1 a45d2015 a0a504ff b18d58a8 e70c66b6

579faf8e 9ecf579 574a6aba 78513511 a2b410a4 ad2f6c9f b56202c 4d757911
bdeaae7 78bc91f2 c7c06d7d 9abdd1b1 a45d2015 a0a504ff b18d58a8 670c66b6
H 1f2c159f 569b31a6 dfcaa51a 25665d24
Table 4 The collisions for RIPEMD
5 Remark
Besides the above hash functions we break, there are some other hash functions not having ideal security. For
example, collision of SHA-0 [6] can be found with about 240 computations of SHA-0 algorithms, and a collision
for HAVAL-160 can be found with probability 1/232.
Note that the messages and all other values in this paper are composed of 32-bit words, in each 32-bit word
the most left byte is the most significant byte.
1 B. den Boer, Antoon Bosselaers, Collisions for the Compression Function of MD5, Eurocrypto,93.
2 H. Dobbertin, Cryptanalysis of MD4, Fast Software Encryption, LNCS 1039, D. , Springer-Verlag, 1996.
3 H. Dobbertin, Cryptanalysis of MD5 compress, presented at the rump session of EurocrZpt'96.
4 Hans Dobbertin, RIPEMD with Two-round Compress Function is Not Collision-Free, J. Cryptology 10(1),
1997.
5 H. Dobbertin, A. Bosselaers, B. Preneel, "RIPMEMD-160: A Strengthened Version of RIPMMD," Fast
Software EncrZption, LNCS 1039, D.Gollmann, Ed., Springer-Verlag, 1996, pp. 71-82.
6 FIPS 180-1, Secure hash standard, NIST, US Department of Commerce, Washington D. C., April 1995.
7 P. R. Kasselman, W T Penzhorn , Cryptananlysis od reced version of HAVAL, Vol. 36, No. 1, Electronic
Letters, 2000.
8 R. L. Rivest, The MD4 Message Digest Algorithm, Request for Comments (RFC)1320, Internet Activities
Board, Internet Privacy Task Force, April 1992.
9 R. L Rivest, The MD5 Message Digest Algorithm, Request for Comments (RFC)1321, Internet Activities
Board, Internet PrivacZ Task Force, April 1992.3RIPEMD-1281
10 Y. Zheng, J. Pieprzyk, J. Seberry, HAVAL--A One-way Hashing Algorithm with Variable Length of Output,
Auscrypto'92.

Ⅱ 設計數字信號處理應用系統選擇dsp時,應考慮哪些因素

德州儀器公司眾所周知,美國德州儀器(Texas Instruments,TI)是世界上最知名的DSP晶元生產廠商,其產品應用也最廣泛,TI公司生產的丁MS320系列 DSP晶元廣泛應用於各個領域。TI公司在1982年成功推出了其第一代DSP晶元TMS32010,這是DSP應用歷史上的一個里程碑,從此,DSP晶元開始得到真正的廣泛應用。由於TMS320系列DSP晶元具有價格低廉、簡單易用功能強大等特點,所以逐漸成為目前最有影響、最為成功的DSP系列處理器。目前,TI公司在市場上主要有三大系列產品:(1)面向數字控制、運動控制的TMS320C2000系列,主要包括 TMS320C24x/F24x、TMS320LC240x/LF240x、TMS320C24xA/LF240xA、TMS320C28xx等。(2)面向低功耗、手持設備、無線終端應用的TMS320C5000系列,主要包括TMS320C54x, TMS320C54xx,TMS320C55x等。(3)面向高性能、多功能、復雜應用領域的TMS320C6000系列,主要包括TMS320C62xx、TMS320C64xx、TMS320C67xx等。 美國模擬器件公司ADI公司在DSP晶元市場上也佔有一定的份額,相繼推出了一系列具有自己特點的DSP晶元,其定點DSP晶元有ADSP2101/2103/2105、ADSP2111/2115、ADSP2126/2162/2164、ADSP2127/2181、ADSP-BF532以及Blackfin系列,浮點DSP晶元有ADSP21000/21020、ADSP21060/21062,以及虎鯊TS101、TS201S。 Motorola公司Motorola公司推出的DSP晶元比較晚。1986年該公司推出了定點DSP處理器MC56001;1990年,又推出了與IEEE浮點格式兼容的的浮點DSP晶元MC96002。還有DSP53611、16位DSP56800、24位的DSP563XX和MSC8101等產品。 傑爾公司傑爾公司的SC-1000和SC2000兩大系列的嵌入式DSP內核,主要面向電信基礎設施、移動通信、多媒體伺服器及其它新興應用。DSP晶元的選型參數根據應用場合和設計目標的不同,選擇DSP晶元的側重點也各不相同,其主要參數包括以下幾個方面: (1)運算速度:首先我們要確定數字信號處理的演算法,演算法確定以後其運算量和完成時間也就大體確定了,根據運算量.及其時間要求就可以估算DSP晶元運算速度的下限。在選擇DSP晶元時,各個晶元運算速度的衡量標准主要有:•MIPS (Millions of InstructionsPer Second),百萬條指令/秒,一般DSP為20-100M IPS,使用超長指令字的TMS320B2XX為2400M IPS 。必須指出的是這是定點DSP晶元運算速度的衡量指標,應注意的是,廠家提供的該指標一般是指峰值指標,因此,系統設計時應留有一定的裕量。•MOPS(Millions of OperationsPer Second),每秒執行百萬操作。這個指標的問題是什麼是一次操作,通常操作包括CPU操作外,還包括地址計算、DMA訪問數據傳輸、I/0操作等。一般說MOPS越高意味著乘積一累加和運算速度越快。MOPS可以對DSP晶元的性能進行綜合描述。•MFLOPS(Million Floating PointOperations Per Second),百萬次浮點操作/秒,這是衡量浮點DSP晶元的重.要指標。例如TMS320C31在主頻為40MHz時,處理能力為40MFLOPS,TMS320C6701在指令周期為6ns時,單精度運算可達1GFLOPS .浮點操作包括浮點乘法、加法、減法、存儲等操作。應注意的是,廠家提供的該指標一般是指峰值指標,因此,系統設計時應注意留有一定的裕量。•MBPS(Million Bit Per Second),它是對匯流排和I/0口數據吞吐率的度量,也就是某個匯流排或I/0的帶寬。例如對TMS320C6XXX, 200MHz時鍾、32bit匯流排時,匯流排數據吞吐率則為800Mbyte/s或6400MBPS。•ACS(Multiply-AccumulatesPer Second),例如TMS320C6XXX乘加速度達300MMACS-600MMACS。•指令周期,即執行一條指令所需的時間,通常以ns(納秒)為單位,如TMS320LC549-80在主頻為80MHz是的指令周期為12.5ns.•MAC時間,執行一次乘法和加法運算所花費的時間:大多數DSP晶元可以在一個指令周期內完成一次MAC運算。•FFT/FIR執行時間,運行一個N點FFT或N 點FIR程序的運算時間。由於FFT運算/FIR運算是數字信號處理的一個典型演算法,因此,該指標可以作為衡量晶元性能的綜合指標。表1是基於上述某些參數對一些DSP晶元所作的比較。(2)運算精度:一般情況下,浮點DSP晶元的運算精度要高於定點DSP晶元的運算精度,但是功耗和價格也隨之上升。一般定點DSP晶元的字長為16位、24位或者32位,浮點晶元的字長為32位。累加器一般都為32位或40位。定點DSP的特點是主頻高、速度快、成本低、功耗小,主要用於計算復雜度不高的控制、通信、語音/圖像、消費電子產品等領域。通常可以用定點器件解決的問題,盡量用定點器件,因為它經濟、速度快、成本低,功耗小。但是在編程時要關注信號的動態范圍,在代碼中增加限制信號動態范圍的定標運算,雖然我們可以通過改進演算法來提高運算精度,但是這樣做會相應增加程序的復雜度和運算量。浮點DSP的速度一般比定點DSP處理速度低,其成本和功耗都比定點DSP高,但是由於其採用了浮點數據格式,因而處理精度,動態范圍都遠高於定點DSP,適合於運算復雜度高,精度要求高的應用場合;即使是一般的應用,在對浮點DSP進行編程時,不必考慮數據溢出和精度不夠的問題,因而編程要比定點DSP方便、容易。因此說,運算精度要求是一個折衷的問題,需要根據經驗等來確定一個最佳的結合點。(3)字長的選擇:一般浮點DSP晶元都用32位的數據字,大多數定點DSP晶元是16位數據字。而Motorola公司定點晶元用24位數據字,以便在定點和浮點精度之間取得折衷。字長大小是影響成本的重要因素,它影響晶元的大小、引腳數以及存儲器的大小,設計時在滿足性能指標的條件下,盡可能選用最小的數據字。(4)存儲器等片內硬體資源安排:包括存儲器的大小,片內存儲器的數量,匯流排定址空間等。片內存儲器的大小決定了晶元運行速度和成本,例如TI公司同一系列的DSP晶元,不同種類晶元存儲器的配置等硬體資源各不相同。通過對演算法程序和應用目標的仔細分析可以大體判定對DSP晶元片內資源的要求。幾個重要的考慮因素是片內RAM和ROM的數量、可否外擴存儲器、匯流排介面/中斷/串列口等是否夠用、是否具有A/D轉換等。(5)開發調試工具:完善、方便的的開發工具和相關支持軟體是開發大型、復雜DSP系統的必備條件,對縮短產品的開發周期有很重要的作用。開發工具包括軟體和硬體兩部分。軟體開發工具主要包括:C編譯器、匯編器、鏈接器、程序庫、軟體模擬器等,在確定DSP演算法後,編寫的程序代碼通過軟體模擬器進行模擬運行,來確定必要的性能指標。硬體開發工具包括在線硬體模擬器和系統開發板。在線硬體模擬器通常是JTAG周邊掃描介面板,可以對設計的硬體進行在線調試;在硬體系統完成之前,不同功能的開發板上實時運行設計的DSP軟體,可以提高開發效率。甚至在有的數量小的產品中,直接將開發板當作最終產品。(6)功耗與電源管理:一般來說個人數字產品、便攜設備和戶外設備等對功耗有特殊要求,因此這也是一個該考慮的問題。它通常包括供電電壓的選擇和電源的管理功能。供電電壓一般取得比較低,實施晶元的低電壓供電,通常有3.3V,25V,I8V, 0.9V等,在同樣的時鍾頻率下,它們的功耗將遠遠低於5V供電電壓的晶元。加強了對電源的管理後,通常用休眠、等待模式等方式節省功率消耗。例如TI公司提供了詳細的、功能隨指令類型和處理器配置而改變的應用說明。(7)價格及廠家的售後服務因素:價格包括DSP晶元的價格和開發.工具的價格。如果採用昂貴的DSP晶元,即使性能再高,其應用范圍也肯定受到一定的限制。但低價位的晶元必然是功能較少、片內存儲器少、性能上差一些的,這就帶給編程一定的困難。因此,要根據實際系統的應用情況,確定一個價格適中的DSP晶元。還要充分考慮廠家提供的的售後服務等因素,良好的售後技術支持也是開發過程中重要資源(8)其他因素:包括DSP晶元的封裝形式、環境要求、供貨周期、生命周期等。DSP應用選型型舉例面向數字控制、運動控制的DSP系統開發的DSP晶元選型面向數字控制、運動控制主.要有磁碟驅動控制、引擎控制、激光列印機控制、噴繪機控制、馬達控制、電力系統控制、機器人控制、高精度伺服系統控制、數控機床等。當然這些主要是針對數字運動控制系統設計的應用,在這些系統的控制中,不僅要求有專門用於數字控制系統的外設電路,而且要求晶元具有數字信號處理器的一般特徵。例如在控制直流無刷電動機的DSP控制系統中,直流無刷電機運行過程要進行兩種控制,一種是轉速控制,也即控制提供給定子線圈的電流;另一種是換相控制,在轉子到達指定位置改變定子導通相,實現定子磁場改變,這種控制實際上實現了物理電刷的機制。因此這種電機需要有位置反饋機制,比如霍爾元件、光電碼盤,或者利用梯形反電動勢特點進行反電動勢過零檢測等。電機速度控制也是根據位置反饋信號,計算出轉子速度,再利用PI或PID等控制方法,實時調整PWM占空比等來實現定子電流調節。因此,控制晶元要進行較多的計算過程。當然也有專門的直流無刷電機控制晶元;但一般來說,在大多數應用中,除了電機控制,總還需要做一些其他的控制和通信等事情,所以,選用帶屍WIVI ,同時又有較強數學運算功能的晶元也是一種很好的選擇。Motorola的數字信號處理器DSP568xx系列整合了通用數字信號處理器快速運算功能和單片機外圍豐富的特點,使得該系列特別適合於那些要求有較強的數據處理能力,同時又要有較多控制功能的應用中,對直流無刷電機的控制就是這一系列DSP的典型應用之一。除此之外,數字運動控領域還有TI公司的丁M S320C24x系列,TMS320Lx240xx系列,特別是TMS320LF2407A在控制方面得到了非常廣泛的應用,TMS320LF2407A作為一款專門面向數字控制系統進行優化的通用可編程微處理器,不僅具有低功耗和代碼保密的特點,而且它集成了極強的數字信號處理能力,又集成了數字控制系統所必需的輸入、輸出、A/D轉換、事件捕捉等外設,其時鍾頻率為40MHz,指令周期小於50ns,採用改進的哈佛結構和流水線技術,在一個指令周期內可以執行幾條指令。從運行速度,精度角度來講上述兩款晶元相差無幾,但是TMS320LF2407A的調試開發環境CCCS)更加成熟,可參考的資料也更豐富,這樣無疑會減少開發周期。面向低功耗、手持設備、無線終 端應用的DSP晶元選型C54X, C54XX, C55X相比其它一系列的主要特點是低功耗,所以最適合個人與攜帶型上網以及無線通信應用,如手機、PDA、GPS等應用。處理速度在80---400M IPS之間。C54XX和C55XX一般只具有McBSP同步串口、HPI並行介面、定時器、DMA等外設。值得注意的是C55XX提供了EMIF外部存儲器擴展介面,可以直接使用SDRAM,而C54XX則不能直接使用。

Ⅲ 零基礎學習java的書籍有哪些,請推薦

作為Java程序員來說,最痛苦的事情莫過於可以選擇的范圍太廣,可以讀的書太多,往往容易無所適從。我想就我自己讀過的技術書籍中挑選出來一些,按照學習的先後順序,推薦給大家,特別是那些想不斷提高自己技術水平的Java程序員們。

一、Java編程入門類

對於沒有Java編程經驗的程序員要入門,隨便讀什麼入門書籍都一樣,這個階段需要你快速的掌握Java基礎語法和基本用法,宗旨就是「囫圇吞棗不求甚解」,先對Java熟悉起來再說。用很短的時間快速過一遍Java語法,連懵帶猜多寫寫代碼,要「知其然」。

1、《Java編程思想》

在有了一定的Java編程經驗之後,你需要「知其所以然」了。這個時候《Java編程思想》是一本讓你知其所以然的好書,它對於基本的面向對象知識有比較清楚的交待,對Java基本語法,基本類庫有比較清楚的講解,可以幫你打一個良好的Java編程基礎。這本書的缺點是實在太厚,也比較羅嗦,不適合現代人快節奏學習,因此看這本書要懂得取捨,不是每章每節都值得一看的,挑重點的深入看就可以了。

2、《Agile Java》中文版

這本書是出版社送給我的,我一拿到就束之高閣,放在書櫃一頁都沒有翻過,但是前兩天整理書櫃的時候,拿出來一翻,竟然發現這絕對是一本好書!這本書一大特點是以單元測試和TDD來貫穿全書的,在教你Java各種重要的基礎知識的過程中,潛移默化的影響你的編程思維走向敏捷,走向TDD。另外這本書成書很新,以JDK5.0的語法為基礎講解,要學習JDK5.0的新語法也不錯。還有這本書對於內容取捨也非常得當,Java語言畢竟類庫龐大,可以講的內容太多,這本書選擇的內容以及內容的多寡都很得當,可以讓你以最少的時間掌握Java最重要的知識,順便培養出來優秀的編程思路,真是一本不可多得的好書。

二、Java編程進階類

打下一個良好的Java基礎,還需要更多的實踐經驗積累,我想沒有什麼捷徑。有兩本書值得你在編程生涯的這個階段閱讀,培養良好的編程習慣,提高你的代碼質量。

1、《重構 改善既有代碼的設計》

這本書名氣很大,不用多介紹,可以在閑暇的時候多翻翻,多和自己的實踐相互印證。這本書對你產生影響是潛移默化的。

2、《測試驅動開發 by Example》

本書最大特點是很薄,看起來沒有什麼負擔。你可以找一個周末的下午,一邊看,一邊照做,一個下午就把書看完,這本書的所有例子跑完了。這本書的作用是通過實戰讓你培養TDD的思路。

還有一些比較基礎的入門書籍推薦給你

《Head First java開發》java開發入門書籍

《Head First java開發》是本完整的面向對象(object-oriented,OO)程序設計和java開發的學習指導。此書是根據學習理論所設計的,讓你可以從學習程序語言的基礎開始一直到包括線程、網路與分布式程序等項目。最重要的,你會學會如何像個面向對象開發者一樣去思考。但如果你真地想要好好地學習java開發,你會需要《Head First java開發》。這本書可是Amazon編輯推薦的十大好書之一!強烈推薦學習此書,非常適合初學者入門。

《java開發從入門到精通》

《java開發從入門到精通》這本書主要針對java開發基礎,對於沒有學過java開發的人才說,是一個不錯的選擇。通過這本書,大家可以從零開始,慢慢來學習,而且實操很多,不會讓你看到最後出現只會理論的情況。

《Thinking in java開發》(中文名:《java開發編程思想》)

《java開發編程思想》可以說是最經典的java開發著作,是所有java開發程序員必備教科書。這本書不管是正在學習還是已經工作許多年的程序員,都可以從這本書中得到你想要的東西。這本書具有教材和工具書的作用,就像一本字典,想知道什麼都可以從中查詢。雖然這本書很好,但並不建議初學者學習,對於初學者難度較大。

《瘋狂java開發講義》

《瘋狂的講義》這本書比較適合自學者,內容比較項目化,實操方法很多,如果你想進行java開發的深入學習,不妨看看這本書。

《java開發核心技術》

這本書分為兩個部分,第一個部分講的是基礎知識,第二個部分講的是高級特性。由於內容非常有層次,所以非常適合自學的同學學習。

《java開發開發實戰經典》

這本書比較適合自學者學習,裡面有很多小案例,可以邊學邊練,鞏固知識。

PS:溫馨提示,光看不練假把式,跟著視頻教程練項目也是必不可少的!相關教程指路B站尚學堂官方號!都是免費滴!

熱點內容
sql2008數據同步 發布:2024-11-16 02:33:46 瀏覽:927
sql2008sa密碼 發布:2024-11-16 02:33:45 瀏覽:198
pr清緩存 發布:2024-11-16 02:31:28 瀏覽:656
ae86賽車編譯環境 發布:2024-11-16 02:30:53 瀏覽:179
反編譯游戲程序 發布:2024-11-16 02:21:56 瀏覽:453
androidapp調用app 發布:2024-11-16 02:20:15 瀏覽:668
超市管理系統sql 發布:2024-11-16 02:15:24 瀏覽:732
iphone百度雲上傳 發布:2024-11-16 01:59:04 瀏覽:419
公共場合ftp 發布:2024-11-16 01:28:20 瀏覽:227
福特悠享版有哪些配置 發布:2024-11-16 01:22:06 瀏覽:594