Open navigation menu
Close suggestions
Search
Search
en
Change Language
Upload
Sign in
Sign in
Download free for days
0 ratings
0% found this document useful (0 votes)
59 views
413 pages
Java程序性能优化 让你的Java程序更快、更稳定
Uploaded by
Jerry Xiao
AI-enhanced title
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content,
claim it here
.
Available Formats
Download as PDF or read online on Scribd
Download
Save
Save Java程序性能优化 让你的Java程序更快、更稳定 For Later
Share
0%
0% found this document useful, undefined
0%
, undefined
Print
Embed
Report
0 ratings
0% found this document useful (0 votes)
59 views
413 pages
Java程序性能优化 让你的Java程序更快、更稳定
Uploaded by
Jerry Xiao
AI-enhanced title
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content,
claim it here
.
Available Formats
Download as PDF or read online on Scribd
Carousel Previous
Carousel Next
Download
Save
Save Java程序性能优化 让你的Java程序更快、更稳定 For Later
Share
0%
0% found this document useful, undefined
0%
, undefined
Print
Embed
Report
Download
Save Java程序性能优化 让你的Java程序更快、更稳定 For Later
You are on page 1
/ 413
Search
Fullscreen
ava FE PERE UAL Sg Sas HEN BFR, ARSASEF, ERSASRREVEF PBavaFRPMABM, ib Javaisey eRe BAMA, ROME The. (GR. JVMREDD a SALT k » AERO Re EAR E EAS ettJava PUPVERE LAL B-% See PEAR nL ak- i Jaya LGU PoE TERRES, ESHER Java PEAR IB ICR DHS BE MIDI SL ACH UL Sava PEARL ER. REMUS TY Java HREOC AD KY LIT ACTSR 6 i. Sula MARAE BLE « UCAPSRHI. IVM IR DLACRLFFACERE RR Ey Spe tava REPAY Mc Irtk. OS RAPIER AMES. RR RAIAERUL ALAIN SO Hh 2 BME She 'y PAGAL ELEM SG. AT. 2S 3 a MAPA iin ee On eS SE BEY Java BRS FE SAMRAT ACL USER RAHA, 35S RCI AVM RUBLE, SFE LE A SHAM Se TT Java FERRO: DB 6 BEAT BURL. SME AMSA FOR EE REIN FT EL SL CUNT) MURR PET FL: : " - 2 * ACHE ADT Java ATESH SAE LIT Us ARMED LARP TER SERS RETA HI daver CP Se ACTS Ee RUC, RA Java RIE ASHAMABLAPUMM ORE, TBARS. a RRATA, RAL TE, ULMER: 010-62782989 13701121933 BIB TEMA (CIP) Bae * ave FERRE DEAl: U.Sffy Sava PAPE MER i / Ri EE aE PUT. 2012 te ISBN-978.7.302-29625-6 1. Oke AR @ i> UL GyAVA ia | BARRE IV. OTP312 "PESLASFE BIT CIP BEES (2012) 3 184193 45 EMM. SLI SPHARH Wt RA. REI REM. KH ae RT fk, REREAD a. 1e0084 te @ the 10-62770175 ae BH. 010-62788544. SRGKAMB . 010-62776060, c service@rup. isinghus,-ed en HR BR. th: 010-62772015 shiliang@ up. tsinghua. edu, co Be BHR ACP EL - £7 #2 ease Bo He Anum EI Fs 185mm % 260mm AY. aK,26 FREE i 012 ATO aes 2002 46 LH RL UE A = ia, OFSTT-OLTl KF Java Java JE EI BS) UE RAE EAC AZ. BAY Java UD Java FC ASAEK, Java PEATE AA RE ST ERE ASP BE. EK AE AE Bs SVM: HEAL as RE ERE Ae PRT Java ies, {etal Bb aE PEELE A EBLE a ALE Java 1X4 PG. Groovy. Scala. JRuby “Fah 4 Java SHERI ANS, EAT IE IVM Be aLOLY FALIRL, Jove At BD eA NE BS HEA ACH, Java bP IRAT “TER IRA. AE Tava PR AMT BEDE AINERL, bn Tomcat. Struts.-Hibernate. Spring . MLE IDK AN IVM ES A> FEATS, 0 OpenJBK, Harmony.” A) LR, “FOEE” TPN ITE Java fT LP RB. HW A HEB, Java ACMINTER AD, MORIEMIOI. Yew. sence HARTER SLEW, TSM. EEE, ART DUES Javea MR. SUMTER BH BSSKEZIEKBS AVE. HULL, Java FER LAE FPA RY FP TEAL EERE. - Ooh, AOR TVET BB i» Java AERA MES. SEE SHIN C2 EE BE HL NU, CRORE. LW Ey RR TCH Bal, samellee LARS Ss WET ae AN. BAR A RAT AEA Jove ATE SCHEER RG BIH OR A RLS ABT PER AUAR AALS: PT ASE SE FE CARDEN Amdahl 22448) Desi a St. FB 2 WN bible + Pa REAR CITT AUPE DL BAB TS RePE RE RMR iret 69 SUAPRBUTA I Sue GH sR Be Bane RW eA? PERRI SOB. CHE VO MCRL. Bon MERLE SPN Jave AY SLR EL me — ee FER 4 BHT EPPA, WLS UAL th eek A RSA. Sela oeee TPRIPRR, AR RCRA JPR, “BE” OH KRY (EFS DLBR UNFa CSTR MI JDK |. a RI, SIV Heat SCARE, ARTY 2 AP By ai, ses sau marmm nna. SRB. TASES DNR: i. FRR Ree. Dime. ROI AS, FAIL Se RE ERAS ANE BAH Bi 2h. BB FORTS EER. EM RS RIES IKAHI EAE RAR BP RE. Ta He EE AR AO, BEE TBP AIRE He ARTE LLARIR, HEUER EAR. eS feo TAS PER Rl, PERE AR RL ab. Hilt, RAAT VISA bookservice2008@ 163.com 5H KA. Bit LEADING LET, RITES. MMR A, ASSERT. SOK FAME, (ABR FA EA RECA A A UP ASB TARAS EEK Dy SEIS RATE, RALCREHA, SHB OARISEL 4. Flint, ANTRAL Ries WN SER LEZ Fem, RENT THEA UT IA AELL A ALTE Rex Zhu Hl Tao Tao. iEAEALAT TEN LR NALOE, AAR ABBE AR. TR, ACB NSER Bihi, FROURUHRNOEEAS, BLAS HARE. Bg“1 Java HEREIN HEIL Tl PERE BEA - TRL BRRR IE HERB 12 PERRIN BAAR. 1.13 AAG SCHLAS PE AERA. 1.14 Amdahl 72 2. PERU 12k Beara 1.2.2 ACRE 9.23 FVM A 2a BGR PE 12S BERS MDL: 13 SAW OL TRUS ALE AE TES. PLT RT AE wR 132. ROMER BOR Rit 2.1 MTT EBER, 2A Hep BER 212 REST 213° ETEK, 21.4 Bete BE 21.5 WEBS 2.1.6 Value Object Hix. 2.1.7 MES ACBL 2.2 HIME ALTE 2.2.1 Sih (Buffer) ~~ 2.2.2 FF (Cache) 2.2.3 BYR IL S—— 2.24 STRAT 2.2.5 2.2.6 2.2.7. %TP? String Xf $A TEE 343: smu Strngi) Ski Fee4. & 4 44 45 46 413 414 4.1.5 IDK ZAR SAAT HER: 4.2.1 4.2.2 4.2.3 424 4.25 4.2.6 IDK Jf A Bebe Hi Guarded Suspension #3 - ABER Afi BRA» Fe BRR NR A AMR AIL Executor HER Ae Mab MR Aai KA J ThreadPoolExecutor ~ 43.1 JPR List 179 43.2 FH Set 182 43.3 JR May 182 43.4 IR Queue 183 43.5 It # Deque- 136 DE BES HY IE 187 44.1 Java WAPMALS volatile 187 44.2 |) KEY synchronized ~ 190, 44.3 ReentrantLock A fil- 192 444 ReadWriteLock iki 19S 44:5 Condition 1% 196 4.4.6 Semaphore fi*3 H 19s 44-7 ThreadLocal 4: Ja Me: 200 “BO” MERE AT DLA, 201 45.1 BREMOTE 201 45.2 ERA 45.3 ib BAA ATT 45.4 eb WERE 45.5 TTY BU Be a 45.6 HOPE sa 4.5.7 WA CReentrantLock) #1 Mi (synchronized) 4.5.8 SIUHE (Lock Coarsening) 4.5.9 FL@BL (Spinning Lock) 4.5.10 fFBR (Lock Elimination) - 45.1 FRAT 4.6.1 4.6.2 46.3 46.4 4.65 4.6.6 4.6.7 tf] (Biased Lock) EBA A EA ~ BEERE Amino HERE SP HE vse Amino fr Amino Pi Amino [El Amino fit POM AEE - + VIE7.1 PEER ME 4.7.2 Kitim Hee f. 4.737 Task KICK: 4.7.4 Fiber 33 “477 SEAS 478 Kili SR HEREDES abe : SSR UVM 7 ~ Java EARLE HAA PS Fit es 53 SESE BOSCH AEB. Saeed sk HM. 38, HEIR [El “(Parallel Scavenge ) e423 - S39 AERIS J 5.3.11, GU WHE (Garbage First) 5.3.12. Stop the World 249i « 53.13 UR a REE ERO ~ $3.14 GC HAS BUG Hi 5.4 BAIT S41 HRN BM ERES42 KUBEABER 54.3 BEM RUA SEER 544 Hee SRB IHEKA 5.4.5 ETRE 5.4.6 WAT RA 547 MARPLE B! SEF IVM BA 5.5.1 HT HES H- 5.5.2 HERRIG Gift Dump) - S55. RARER s 5.5.4 BUG GC fi S55 HANK BIRER - $5.6, BEBILGC™ 5.5.7 RR RR 55.8 Solaris FLAT 55:9 MAATE 5.5.10 Hse 5.6. SEAR IVM iif 5.6.1. Tomeat fi St-45 A By - 5.6.2 Web SABRES 5.6.3: IMeter Sr 5 1H) 5.6.4 WALT Web MARE TARE 5. 57 3 Hoe Javattewrrr 6.1. Linux # eas 6.1.1 top fr = 6.1.2... sar fe 6.1.3. vmstat #74 6.1.4 iostat fir 6.15 pidstat T A 6.2 Windows “Lt 6.21 AER ER 2 perfmon ff HEIRS TA 6.2.3. Process Explorer 6.2.4 pslist-a iT ~~ 63 JDK mT LA 6.3.1 jps treo 6.3.2. jstat firJava-Fa/¥t fb tL ——iL ni) Java AR BR, ERE 6.3.5 jhat tr 6.36 _jstack tr 6.3.7 jstare-ty> 6.3.8 hprof TK SConsole EL 64.1 IConsole 24% Java e 64:2 Java FEFPRED - —_— 6.4.3 Wy FILES: 6.4.4 BREIL RE - 6.4.5 FMR - 6.46 MEMBER 6.4.7 MBean 22 2 6.4.8— ALE 6.5. Visual VM &-— ESL 65.1 Visual VMN Baer 6.5.2— HERR 6. 2 65.6 AFA 65.7 MBean 65.8 TDA (i 6.5.9. BTrace #44 6.6 Visual VM Xf OQL (yk #~ 6.6.1 Visual VM ff) OQL SAC 26.7.5 SPUR BE REE 67.6 SOKA BAR6.8.1 Select Fi 68.2 From ¥f)~ 6.8.3 Where ¥4y) 68.4 ABR SI Profile fi Sh 69.1 JProfile ARLE 69.2 693 694 69.5 6.9.6 69.7 6.10 ee 6: &: a s ¥ 2 Peg? 1 Java MERE ACTUNITRAROLICAEARUE TALIA PEM fr2tl, bua T RELL IDR: RRL A Mnik. RARER, SF AeA EMPL RRMA IT. —- BRB HE AEA iia: "C1 ACRES HL ES Be FPR PE RE OIE} HFA G Amdahl ARNT Xs GL HEREIN “Solace na, SUR SOE, AE RAH PERE DOB. RUSH ERE Ia) Ate, ERE TRUE Re PTAA ETE HTL, ORDER ABBE A ME, MERE HERES SET, IE Bene: AG BRI RU GAE REIS FERIA bi 1.14 BAB RULER HEOMEIE ILA, HASMLSP th, FRB. Aah wa BES AP HO 6 A SON FL Belipse IDE V4 Full GC WAH SDRE FERIMR, AUT MAR DARA RMT UIA. RLF OSS BB LIT CPE lB = BE AEA Je Eri BEE BAT HEE ET. DL Web IR BB wh, HES BE WE Vly enh ES SEER BC. GS AS NID ND, BL AL LAO AR, BI, SAAC aU TAMAR. UR, HEHE NOL EOF2 AR NABRTU RACH AOR» TDL lel, We RENT Sem ERR PU RH SEN RRR IO RET BARRA AIRONET SIRRMRELO Aah Rae A Mate, ws EM ARPA “8 sapeantabieere, - = =ECR Java HEIBITIRGE i. igi ee Waele WAUIENS ELE “vO. oe Bi ASIA Ae BE, 1 Be Mem URE. . GL CPU: ALi SRE EG TH, BPR Pa AN Ta CH A CPU BER, M4 Xt CPU NSHP HE PRATT. WAP THE. 3D HAAS CPU ESR IEE tt Java JTL, SPATE AS REE. OUNCE TR SATA ALM, NAAR PH 2-7 FE Co ESE ACH FPR Lg AR US A A © TNR IT, LR NE EA RH ML AR ATR IR, = RUSE ER Helen REE. OO WE: RIERA, OE NORDIC, ANURAT HL MEME AMSHT di. BOLE ASLAM LE FCO TE M.D. BORE ALE STUER IE SIRS. CYT RLY CPU BE, AP : Co SCG: HEI SOBER WR OR, VUE AES MA me Pe HSL. APIO RSNP UAT TRG NASM HH LAREN Le TS CFIA REY EMA MONI NE Ab AR = LEH. CE A AML if TMT. 3 OAT TCE PES aT MERC IER fe, AE > REBEL BHT REE : 1.4.40 Amdahl SORTER. Amdahl yi fH} SEE “SPASTIC EMR. - 2 MRE: IMR EER AL R/O Tees e SORA EL a PA SC MEAP ER A eC We. “Amdahl Fate 5 5 RH TRAM. HAMEL Spee, : © REAR AUT EAE FP. CPU ABR Betty NS UAT: ERWEW CELT MTR BART ATT. re oe aS = BUT. IBA RENT K EEE 2. HRA EAL, IR - RERRS ena te sooth tense2 m2 AVL IR S nbiakinerr, SR 1 3. 4 SI Eri REMY. 500 PIM TAL 5 : Wo | WIRD RRS aes aM S fiz aT Ce t : Ua nae NC aR te= RUNIX: ask th: s AME Aendahl LAB. 48) BAR CPU TR ASEAPIC, AefC M8 ARIA CPU oo ee Be BAAR CE CPU KER fr CE AUR, REGgdleg = @ 1 Javea HERE - a ‘ e . eo 1.2 PERG Bk *eqa? — TRA RE RERE, FEA PN REBIRTH EA OO REE HE. RT Hie HTL RES EES E SVM MESO. SORE DL DBR He APR ETA ASL PEF BOUTIN VE ATO EMEA LACT BEE 2 1.2.7 itt A TAT MF Le, CA BERT RZ THEME BT By OAPI UE REO REE CEI PEEL, PATEL TR PEE T A ERT IRE PE BA SE PEAR, T LL, BRR REM HE HE BAM. WRG NEAL. IVM LAE ROWE “OR” AU, IBA TEER, ORR A Bide LE EL “TR” AOL BEL AS Rene, En] ERE — A PE RE ME Re EE THe He BSE A ae EE B ARERR SAL A FRENTE FE BAR AE HORT aR oS) ROR. ALES PA ACCEL RADE TOLLS EE A RR AE, HT TE. LER GESEIY BERN Se ER — HO AEEAR OE TER RT EE AC M7 RSE BR pote Ha tha AL aU WA ASE a EEA, OETA SE PES AO RRA EAT AOE 2 FOP REPAOURABEA, TEE RENO EP EI A, ART AST TEA TOFS Ir. PLU TTATE EAP TE HERE RE RATA MS, MAA Ede ek Tk — lai, DAW FR BITTE BUR TATE EE BH AAS AL. APE FAS AIRE, BPA “OR” ARHe IL, RSI EEO AD. DE Fes TERA RAE EBL 2, UE Ce IE ET DET RETHOLIGIN, BEG EA DNR EE RK. BETS. AE EAL FUEL LAL, SRE AT BERT AN ICHE DK REP OER, AOA RAR TL EOI SAE ERA, Blo, Ror & Heceobin _ Ae, Robt aR. 1.2.2: KEI 5 PRIDE LAA IETT ACRES, uk ACER PPR TERRI. RET FEARING VILA. (CPUC) Re aa ELIE RA RAS ALI JPA SHED ARR APL ORFF. IN. SPER, BOR AHN MLR We ACO Hey BBE AEJava HEF HERE AK— i RN Java PEPER, Ea x LR ICE A Blo RE MERE AT , ELI ea” pesca Ag 88 SLR ABEL IS. Hed, DPE Ey List S288 Linkeal.st 0 Anaykist 2 e BLUT Ta) AS HERE AI A EAL PAE, SC, ARES SL, A street ee 5 Java NIO (HTX, SLPESE A HE RSME PERE But, SAS BTML, BAO ATE BOE EMO, LEA BY ARSE AEP EB I A DIK 1.2.3 JVM dati HY Java SPP IE AT CE JVM seALZ Le, 8 SVM BEALE AT ODA tb Bete — ae PEL ES2Fh Java BUFAULERE. JVM CRA A) TERETE RMIT, UE OE IT Rese, BA PERRI 221 SE — RY Bk tEA Java HARTA, JVM AS Boe oe HP Java RAPE HEAR. Led, JVM ifyHE Ry. BUS IRI oes, SEQHT JVM Fem eat TERA GOS IVM Bis 7 RE BR Ae a eT HAL PINHIH, GC INHER. 2a, RRA. BOE A BENS VM A BER. 1.24 SER REAR BAY DS HY GE » RIE ew ANay b(t) M5). Java FLAP PT LHF JDBC £9 PRE BBO HE © PHI FETN OR HT DL Ady 3 NBSP: O ZEREAVEX SOL ux: O x RRMA HH: O ABR ERT ETO. TEMA CRITI, BRAS RETG. Heo, YAR IDBC BET, NPA AAT SQL AEA, ATLA PreparedStatement *¢# Statement, LE FBG MABE: TE Select HTP, MATH, HERES Or TOMA MEAT PLALIN, ESE ASE — AT BE. Edn, TT HES AI ACR, AT A a AT FR WEAK, WME THA PRAY Oracle RAMA, Wy TB BE, WOR MAR AS MIRE. AY TRE PRE ARE, AURAL THRE. in Oracle, MySQL ak# SQL Server ff WTA AX. U Oracle Al, RAMA -DAOICR I, BAL RA PGA, Hl Oracle Wie PERERA A I. SPACING TEE, SOR ME ORAL A ay AS A a 1.2.5 PERSON HOW EHS TERE, BYE RAINES IADR LAO R I. AR mea3B St Java HERE = a qk - mw BRIE RS, UR AY F BAIS Me OES ATA Hed, EAE UNIX RARE wire ci {PER SOR ATER AE (shmmax) . S22 A428 (shmmin Swnnryarinn 9@ FORA GEM SERRANO A, MEO AEA RRR EA Ra FENSHERES AE. FALLS eae LE Windows “PAE ACE MEI ATER. FILS Windows ik Ba TF Onn: RARER RAAD MORN, PUMA TORS. 13 RADHA FoF BE FEE AR, PZ IAAL ROSS Be. RACINE, 4} HME NR, bi P25, LA TEAR RSE. BUENA LAR IPE A DUA, BABEL He Bk TE ALR EPR SO RE EP SEL NAA EL, AREOLA AA: Seth Bi wt PRAT SSMU AEA A PRL ARR EARS | AER RE. DL, CERRO, BERHERR OREM Es. Jie ERS 1.3.1 LRA SRC CE RCT LHe, Pe REAM CKOPE AE FRR, AAR CE MM ae WY. SO, BEE PS LUTON, UA EERIE TE EL, RCA VEN RAR AO CAASMDE Hts. HORIAB, MIRROR BUTE, HTL AEM ARCH be, We TINIE. AT RENON PEAS RS. Wei: RR OS Ay WO FN CPU. “SER EITE HERE oieBEATAREOR Hes 2 AARC Ei, SU By EAT IM Jet. BR ER Stith. WR, DBO, SARI HIE EERE. cast mete eh Ss LATA. BABI PERE te. UR Ua RS, WUT. WPA 1.6 BA. ast ASHIK. OCC 2 JVM. RIERA HBMEWMOL weLREt ami FE { ma j-—{_ sures [ seeeraan FA 1.6. HEAR ORICA — Mob 73.2 RRHMER SR AOA TEBE A A ESR TCP EAE TELE OR EE AE BB 2 I ean, YE BASE, SRS RT A, MCR LEE S| Aimy Bug. EBL LIT IIIT A A AS ET TRE FT MELA EER MEERA HET AR OMNIA EPR APEA RR. A, ALCS OHHH, ORE SS ee Be ea EE ERENT SENT SEIA TE. BHE, MAPOL BE CR EPR EPEAT f i ASI 2 Hak Sh HE, CEE AE 5 LR AT AA a AY C4 la APE Be ER BRANT Te” I AAA BEET A ETO TAF DL, RE CEE TST SRR, A AR A LE THE RE BS FASE ORL, REAPS ETI. LN Aes TET AL ee ait, ARIE ETRE 5 TTL CAG OAS EEF WE Et AS ELLE a a BS abl. FAG, EU TEAR ERALINS CREAT AE PP HH Ove: nc oteagueeneaalai REAT PRGA, REWER HAA AZ RETR, SCRE AIRE, JEM fetid A Pee. L4 +b & ~ WAKE, EMA T OPERAS SB tn. ok AE8 I C6 961 Java HAUTE b] BON TEAL SPT STE AER AL SEA i PE BE —— AR RL ama RS AU AC HIG, FA IETS AE Be A cs ARE AE FP PPE A EN gt e APPEAR RTL TT ROCRIMERE AT ICE HER. TALE Amdahl af, ToL Sta SOLARA MEH ABNER AAEM, SLE ea BE EAT Hee ATERE NT BEATA T CEA FF RATED SEE YOY DET ERE PTB. HE, Ze PRU RL, BRIN AEROS ERAN TY: TESOL, FERRERS TUS PUTA: WF Java HRY, CEARBEIE AT , KORE HUI) IVM MEHL Be TAY, TRAE ECHR: BUDE TE RAE AE AR SORE TE RET TE 5 PEATE NB Ir» BEST ER T PERE ULL 1) ARERR AMEE: BS SEH.Santee Rea nian HAMAS oat CAS DERE MR,Sl.e % o “ re Ri & @ “> Te. AAR AD 2 RI. Zt? (2) HIP mew BR LEAT ER AIR A> 5 IAT ARIAS FE SLE A ES ER epence FEA). 4th GC PHBL Tal. Som ER AH AE EE A TR Aeris eA A AOE FES Fp BORN SEA A, AURA. We 2.1 STAR. R21 SE _ m8 fe PAS FOAM, BELG Aa FUE A CRORE AS Hot 2.1 BAR. Singleton Lal SingietonMain “sgetinstanes 0: Singleton | eulnstanee() HAF id PLB FE 2.1 SPAS SP SPALL AOA to CEP aL EO dE BSE]. PR TL OF public class Singleton ( private Singleton () { System,out.println ("Singleton is create"); /eeouenarimtasices I private static Singleton instance = new sec anay le public static Singleton getInstance() { return instance; 1 d TERMITES, HAR AEE 7S private i fe] Bea AYA A RATREAE, AREMOR IA STE RSE ES ES, GOA EAN, ICU instance A 5} efit Fl getinstance() 73H 4 KE static (K). OLR: AABAREE HAMA, LEA ARPT ORES. Ak, HLA TABLA T, TEMA LA ERAABLS BR, ROP AGNES SCI SCAR A HM, TAPAS. EMEA EFI instance 3Sle % o s @ sia fw BARA. BHU Ap MARS, Tie instance ak ii SHEE static gibt se 4EIVM WARP RAM, ROM B RAT, IUEM, RMIPPE RS TEBE IEM ap fate, BL ACFE EBS ALCS J Ae EAE RAPS, THES ERAS Ey String “EP, ALP OUR HES TER CAR DEALY GRE HB Singletom. Xie FAM Sting WH) + public class Singleton { private Singleton() | System.out.printin("Singleton is create"); 71ND PURE AT BB Ss ERD Java FUP HE RRO — iL IRIN Java BUFR. ASE } private static Singleton instance - new Singleton(); public static Singleton getinstance() { yeturn instance; ; public static void createstring(){ O/T IVE RT ALI B System.out.println("createString in Singleton"); } : 1 24 (00H Singleton.createStringQ BUTE IN, FRAP HTN: Singleton is create createString in Singleton STOLE], AUAULIT ISAM IA, (A RRA OIA, EYEE RBIS. MTA LAL, SPLILIR RE RACE em INA Bal Ee MAR NL. public class tazySingleton’¢ private LazySingleton() ( System.out .printin("LazySingleton is create"): 1B TSE BE TRE Se LC 1 private static tarySingleton instance = nulls public static synchronized LazySingleton getInstance() { if (instance==null) instance=new LazySingleton(); return instance: ) FIFE, MARPAC SLE instance BAHAR mull, WHER FREI ahINt eA PN a AUK, ZE getinstance() CJ Frid}, AST SES CAE. EEE), AR Ar Ae) HERO ICCB, gotlnstance() HARA, FUEL ARES ERAT 1 ERR IIN, Se RMEEMERT, ARAZ 2 TOREFRET instance 4 null, MeERE 2th SAME OES, PRS PRA, MI KR EO. - “12+Se oad &y = = - “B2e ees HU ROMER, BRIE Fae RMR, (AR aah ie $3 FADE, BUC e EAT, EMT RK AR DRE £ BUBB TTAB: - Seek @override public void runt) ( for(int ‘=074<100000;4+4) Singleton.getinstance() ; //Lazy8ingleton.getinstance(); systen.out -printin (spend: "+ (System.currentTimeMillis()—begintime)}; ) FER S BGA See ASIST, CHS 1 PREG Oms, GEA! LazySingleton #I4iXREREEY 390ms. HE NEZEA>AIZE 2 MMC. Qe: AKA, ARABS AWMAGH RAFU RGM, ERM FPA ERR RET ES EM EEL, AAT REA SM IRS OE THE, RIMM F rose 4 8 ARABI Opa et ead Bey aT (FE SEAR OE FA We ET RT ABER, JE AL A AT ERISA ATL XE BE SUT OE public class StaticSingleton { private StaticSingleton() { System.out.print1n("StaticSingleton is create"); ) private static class Singletonlolder | private static StaticSingleton instance = new StaticSingleton(); } public statée StaticSingleton getinstance() { return SingletonHolder. instance; , } PERRIER SCL A ROE ALB TSB, 4 StaticSingleton ANB, SUA MAI ARAL, HCE] LARA StaticSingleton APALA JVM I, ARTE PA, ii getInstance( WEBI, 72/NF SingletonHolder, Aid 944k instance. FIR}, PSB ESTATE ER, BAER A RR ACEE, getlnstance() 77 Heth Ait BEES Ria. DADE, EIST SAAD A a Ek SR BER: RAARAMAALMP A, RTAMA EK, CKRLRM PRS, Z FRE HTML, TRF, AEDT Se SLE OF wT CRE BPR PEE SAT (ETS PATH, TASB RIES TS, Hol, HEAR, LBNL, SATU A ARRIBA MARR, EWES SH). APES BIEL DR IE, AVE ASL RI ARE AQT We. UPTEAUMA, WES RRL E TRE.Java HF PE RE Hh 4¢—it 6) Jove ORD, BABE DLBEER Ret Lae public class SerSingleton implements java.io.Serializable( String name; private SerSingleton() { System.out.println ("Singleton is create"); 1 {SNE HILAR FT HE AS name="Sersingleton"; : : } private static Sersingleton instance = new SerSingleton(); public static SerSingleton getInstance() ( return instance; } public static void createString() { System.out printin("createString in Singleton"); } SR Private Object readResolve() ( HELA ROLE, 8S return instance; ) ) MA CEN F erest public void test () throws Exception { SerSingleton sl = null; : SexSingleton 5 = SerSingleton.get Instance ()+ 11 IES AMA TABI FileOutputStream fos = new FileOutputStream("SerSingleton. txt"); ObjectOutputStream ocs = new ObjectOutputStream (fos); o08.writeObject(s); 008. flush () 7 o0s.close(); LT PR SCPPE TE A LS FileInputStream fis = new FileInputStteam("SerSingleton.txt"); ObjectInputStream ois = new ObjectInputStream (fis); sl = (SerSingleton) ois-readObject (); Assert assertEquals(s, sl); } (EAL RY UR I I AU BATH, NDE SerSingleton (RESIN HL AY readReslove()i Mciht, BA FIM at (Cid Hy FHS: junit. tramework.AssextionFailedError: expected: javatuning.ch2. singleton. serialization.SerSingleton@5224ee but was: javatuning.ch2.singleton.serialization.SerSingleton@1afe7c3 RAMUS T 5H sl HT AIG, ARIE, EMEA RL. TTI eteao! e BIH Bite 3 wo we é bk readResloveQi Sci, FARINA. LOH, RIGA Rat, CH Rie & s fk. HSE Fil readResloveQ Hk T AMIARIBMEL, AIT ZEAE Hse TAG. DEB. FSCO RA TCT SIRE), ABRIL, AEP LULA A FI fete BUF 1 EHSL, HRA, ERS MEE. ASE T Hef readResloveQ tk IR, readObjen CHIH, VER CE 21.2 Ep Bst ARERR RE ERS ALE BRK. EA RR EAT PR REAL STOPS i MTS RE OPE, CREA RI AI, “ha HTK. WBS iA, WP SARA ETE, DT RGU ie. TSE Ee RACER EAA, JF ELE BOD LA RRA. ALSOP REE SUICRE. SIRS EobT, YALA Ly RRS AAS AAU, BE AAA SEMIS HT MTRRE, ARIEL A Bt eae Be WORRY, Hem REP ABTA, CAH Its TEOERLIETH, (EAPCURL ALAR IANA. LEMS Se BRA RET AL POTTER: AERC RITE, ERE REA RR I Ue Py YA A AA i= Ch RMB ; tiles CPETHRSERE. MESA R TAS, MAB) MTNA AS ELA PEARATTE ESEAT IG AE PERC EL IMA, AA HTAE TT ARS ATE BB AR NEE 4. OBS OEA RAP ERS SHA A, MF 2.2 Pia. #22 Kites oe AE _ AAR ESCA ATRIA BRAC RR IEE ITT Prana FOES 88k | Ape Ee Main BP, CAA ATT Ge PA LAS PP on PA AEF PAE SR EIS RTE IOS So BORER SE) FPRUBL PR, SRE EHDA TURE. TERT. FE RA BEER, DETAR, BIR RAHAT, JMS RRP IE RSET AI IRE FECERL CEE LN x EBT) ATi RE A) HE EY BR SALA REAL 2 De SE TNR a, RUE, TAS, BERORUECTR A EL RR, RE Ja chit, UR -MCER,. AR RESET IE REA AG Blk, “RF LA SIR TERBUARIN AAP RES YAR), AT Dt RB ta ERD A Ca RPS TRAE BEAM EINE, PRE RES, aR SS De BC: 15s “lg @ & eae?Java PUP HERE RL ——ik iit Java RUPE, aE RGAE MIS, FeRAbe HR eh Ae LEE HR, ie ER: RRA T ONT SHS, Jo APP RALIL R sueBeeyat POE, HAAR AAR Y ALE CEMRNAOR RE: WTA Rh ARE, AE — MB SVE SCO, SURE ERE, ARE ae. CALC SUN ERM REAR, AG. CALETA, ILE HARGIS, GERI ANIA LE, SAITAMA ETA; BEC, RES OSTA Rw COE RATEBEER, HRNACR 2 RTL, PM bee Ie RE FoF EMER. FE 2.2 Sha TEAMS, ABE) ARLE. __ | ;DBQueryProny | oe ie Pe me DRBQueryProxy. EEN EH a PAI 2.3 EAR, -IDBQuery S278 A EAA EME * OMNIS LEAPED TL T RAE ‘request() B= DBQuery-EH NK AEM SH SEBORSAL Bete, DBQueryProxy J DBQuery i: is os 2 REEMA = SEF DLL WIP: IDBQuery HUSALAEE, “ETUH 4s request()) “public interface IDBQuery ( String request ();Is ” fo. moe site ee ee : te BGI = fame 2 DBQuen Pry “ +
feauest 0): String | #
> request 0: String | HD ACESS REE “DBQuery IAT a CRASS, BHR: . public class DBQuery implements Ipsquery{ public DBQuery(}4 try ( Thread. sleep (1000); LC TURE 2s HU PE Be ERT } catch (InterruptedException e) { @.printstack?race () + } } Boverride public String request () { return "request string"; ts IDBQuery ( {public class DBQueryProxy: imp. private DBQuery real=null; @override public String request () { // ESTER RMR, AOI B, CARAT HERE if(real==null) real=new DBQuery (); ESRF, BADER, AUF Poture HA return real.request ()7 OBI ABU ESV IDBQuety HEFL, 2 “public class Main { public static void main(String args{i) { TDBQuery qrnew DequeryProxy(); —//ABEMCH q.request (7 /EREBAYA VERT OER: RMA EIEIO, TAH MORI RIOR RL AEM PK BARA AM. “ie% - ~ c’ Java Bait eth, " c 3 St 3. ASSET Ke &. BASED ATE chim a. BB psn Emme RE © A “Yi NY ClassLoader. £5 has RIAL. ATT Wi te. SE, ARI BE Jy ASF BY oes SW PPALR TNS, HEITOR, Wh eB os TBAB ALA 1S, hn FUR Apes DL ALAC BE AA TRAE Cu AR AE TE EET EL eT A (CBS MAT AB A, * BRANT Fa Ke IR. HR ATH 2 RO ORR, EMAAR AS TEMS sn. IDK: ammaatem: CGLIB, Javassist BL#f-ASM * ie IDK (aA CE AL, EA BEE IDK Hs, PALA APES A 77, Jar 18... (AAT TARE LCAZSS « CGLIB Al Javassist A Py BAF HWE EE, AVSPERELE IDK pa annahas é (CLE, OU ELSE ak. ASM BRYON? WEE T HL, Ae AL ASM Bee _-20-fH Java bytecode FE, FETE Be ATSB na TURE BEAR I) Aon ARE RT Fe. (ASM Ruth sctenl Fem; Ti AL PERE 22-5 CGLIB Sita: Ts PYAR SO LG, ASM BE/F (PT MES PE aR Sete ene ASE ( AERIEHEA? COLIB ALA Savissst, = 5 4. mate ao ie Ccpublic class JdkDbQeuryHiandler impleients tnvocationandier’ ( TOBQuery real=null; 11RD override Public Object invoke (Object proxy, Method method, Object |] args) throws Throwable { if(reai=-null) realsnew DBQuery{); SRO, NA RBS return real. request (); STIR ELIE TRAE Public static IDBQuery createudkProxy () { TBQuery JdkProxy = (IDBQuery) Proxy.newProxyInstance ( Classtoader. getSystemClassLoader (), new Class{] { IDBQuery.class },80s, ree BUNA ss new JdkDbQeuryHandler()) ; pee sd = return jdkProxy; 1 y Veg “ CLEANS EM SES TY IDBQuery BEAT ACHES, FE ELSG IY A Bah JdkDbQeuryHandler 25. AINAHLAYA. He newProxyInstance() 7 94:38 BNA {CALA IK 4S RH Bk, —-P TEM IDK WARE EMT - CGEIB-AF Javassist Mi ahas/ CHE HIAL IDK aA CREAR RL. Pili, ZERO CGLIB ERAN ASACHE. CGLIB US if BEF Mb CHESS FILA public class CglibDbQueryInterceptor implements Methodinterceptor { qoBQuery real=null; override public Object intercept (Object arg0, Method argl, Object[] arg2, Method?roxy arg3) throws Throwable { if(real=-null) AREA BES RUB SC BE — ee ee § ws SI 5 we xeal=new DBQuery () 7 return real. request () 7 , TER OPA Seen Aba Le AT UAE eae CB public static IDBQuery createcglibproxy () ( Enhancer enhancer = new Enhancer (); enhancer.setCallback(new CglibDbQueryInterceptor()) 7 (AEB, LUCIE enhancer,setiInterfaces (new Class{] { IDBQuery.class }}i /EFRGE A IDRQuery cglibProxy = (IDBQuery) enhancer-czeate(); PERRET zeturn cglibProxy; t AW) Javassist “Ema AS (CEE AT LUNA Ak, AE REET QU, 5b GUNS OEE. HONE) OER, Wik+G CGLIB A, WRB SFR iB 4] 2b HEY Handler: public class JavassistbynDbQueryHandler implements MethodHandler { IDBQuery real=null; @override public Object invoke(Object arg0, Method argl, Method arg2, Object [] arg3) throws Throwable { if (real==null) real=new DBQuery(); return real.request(); 19+I. slo, Java. tte mth te— il} - e ROY Jove FPR. Ge an x eo : el ey LUX Handler 4 Skt, OEE DNAS Javasssit (UE: ‘gf public static IDBQué:y’ createJavassistDynProxy |) throws sicepetBigt ProxyFactory proxyFactory = new ProxyFactory()+ proxyFactory.setInterfaces (new Class{] { tDBQuery.class });//#@eikL Class proxyClass — proxyFactory.createClass()7 IDBQuery javassistProxy = (IDBQuery) proxyClass.newInstance (); / (83% Handler sha ((ProxyObject) javassistProxy) .setHandler(new davassistDynDbquery- Handler ()): : return javassistProxy: } Javassist (0) yAS Java 4CH5 GUE CEE HL ALAC MT EMEA IE. Javassist ABA PUB RLoTaS Java AC, AERP ATTY. ROE RAIA REET DR i Ra, HABE ZE FEAT REN Fy BA Public static IDBQuery createJavassistBytecodeDynamicProxy () throws Exception 4 ClassPool mPool = new ClassPool (true) ; WRIA CeClass mCte = mPool.makeClass (IDBQuery.class.getName() + “Javaassist- BytecodeProxy") ; (1 BRIE A mCto.addinterface (mPool. get (IDBQuery.class.getName{))); = / AA Eat a nCte.addConstructor (CtNewConstructor.defaul tConstructor (mctc)) ; 1 SMA F BAB. WANE Java RE ie Cte. addField (CtField.make ("public “ + IDBQuery.class.getName() + " real", mcte)); String dbqueryname-DBQuery.class.getName() ; = (BINT, SERA Jave ROE A mCte.addMethod (CtNewMethod.make ("public String request () ( if(real== null) real=new "tdbqueryname+"();return real. request (J; )", mCtc)); (EF » ERAN Class pe = mtc.toClass(); 1A AOS IpBQuery bytecodeProxy = (IDBQUery) pe.newInstance(); return bytecodeProxy; } FELL LACE, SEF CtFietd make) #7241 CtNewMehod.make()F YS TEI TIEERR FAG RID BEAU. IMA Hy Javassist (1 CtClass TRADI, HE Java AUR WM NEY WH. Fe ako AA USS Bi ORS: SAK MInh, HARDT ULAR RANE, JER RU RIE IL, fe Java 1, SAS (RRS E HEE Be MR} ClassLoader (Hk. 2X BDLEGEIB ah +2062M Wir eete, © PEMA AANA. (ALCGLIB ARACEAE ETE RO: OF HEN Me BAH Mb 3 fF. Ul WH IK 7 Emhancer Greate) 25H AM aee AU AL DefaultGeneratorStrategy. Generate() 2 He: a ACHE) -————___S. a fs 955 z RAE byte WAL. PEAK ReflectUtils. ARASH ILE A ene Class defineClassQ) 777K. IMLS, WF ClassLoader.defineClass() Wik, HSE AVEREARE| ClassLoader tt, SEAR INARs Ja MUA ReflectUtilsnewinstanceQ WA, WH, AEMah BORK ISEB. JEOAR MTA Tika fH, BURST HAR Ta (RED AG TE 2. TOCA LAVAS ERE IK, He AT se Se. WT REAP CAINE, 24% DBQuery Jo} Sleep({ti, JFRAE LRA RIE: public static final int crxcim=s00000007 public static void main(String[] args) throws Exception [ Tosquery denutt; long hegineayatees Gureenetimelblld iat): decrearasertrars i) 18) SDK meas om System, out. printla("cceateddkProxy:"+ (System.currentTimeMillis()-beg ain)): System.out.printla("JdkProxy class:"+d.getClass() .getName()); begin-System.currentTimeMillis{); for(int i*0;i
begin)): “21see beginsSystem.currentTimeMillis (); ¥ &. decreateJavaesistBycecodeDynamicProxy(); _//Mik Javassist 9 xe System.out. printia ("createJavasei stBytecodeDynamicProxy:"4 (Syst reentTimeMi lia ()-begin) )s systen. out .printin ("JavassistBycecodelynamicProxy class:"+d.getClass (). -~ getName ()} <= beginssystem.currentrimemillis(): for (int i=0;1¢CIRCLE;i +4) z d. request () 7 = Systen. out .printin (“cal ivavassistBytecodebynanicProxy:"* (Systen.curr : ent Timewillis()-begin)) + ae ol DEE ACH) OEE aR, oveainiennen SOL. Hera ACH Ole HEIN “~~ createudkeroxy:0 “GakProxy class: $Proxy0 : 7 callJdkProxy: 610 . createCglibProxy:140 CglibProxy class: $Javatuning. ch2.proxy. i DBQuery$$EnhancerByCGLTBS$b75adbbE callcglibproxy:594 createdavassistbynProxy:47 “ JavassistDynProxy class: javatuning.ch2.proxy.1D8Query_§$_javaasist 0 callJavassistDynProxy :1422 createJavassistBytecodeDynamicProxy:94 JavassistBytecodeDynamicProxy class: javatuning.ch2 -proxy. 1DBQUeryJavaassi stBytecodeProxy callJavassistBytecodeDynamicProxy: 562 WAH). IDK Hs PRE, BULB AER NA BIL defineClass(y WE MA native SIL, AMER RT PIC LASE EL. AEE AS PE REE. IDK (MACHU AN CGLIB All Javassist (HAE T VA USKMREE, Ti Javassist AYRE T AEE L FRCL, (CENTER RR, HANI IDK (SBR. AESKPRIFAVADH, (BEE Sa AA SAL a Ee a PA SI I CHT TE SS EIR ZS AY cache), EHD A AE RT A Ha PA A AE HET HE HE BE 1 A: SEE Ro oe Oise: ADSL AAA EMS, CGLIB 4 Javassist HRT HA AAG ABA F IDK AFM ARNE, web, IDK HERRERA M RAR EMT PI—*MEO, CGLIB Fa Javassist RAR HLK. 5. Hibematers (tPA 8h iF FIM CER BES ARIE nt —~MER UW HALRLAE Hibernate EAH. 4) Hibemate Ima: Mh bean IM, tA UE ROR PET TTR. RUM FCA RAB, ‘il, WAGE RSEVYENE. Hiberante HAE MR ERP, RMON, ILI =2 he Rite a Het nn EDL PER EAR I, sna te eA PR ae: public class User implements java.io.Serializable { ‘tena? private Integer id private String name: =. * © private int ages //#88 getter Al EAN: libernaie’ re es User {eh public static void main(String!) args)! throws Securityxception, NoSuchFieldException, TllegalArgumentexception, TllegalAccessException { ABIRIEBN TD Fy 1 WES User us (User) HibernateSessionFactory.gatSession().load(User.class, 1); ~ IIT DRE System-out printin ("Class Name:"+u,getClass () .getName())+ CATER AGH System.out.printin("Super Class Name:"tu.getClasa() .getSuperclass ()- getName ())+ ERATE Class[} ins=u.getClass () .getInterfaces(); for (Class els:ina) ( System.out.printin("interface:"#cls.getName()) 7 ? System.out.printin(u.getName()); ee fe
method () B25 7G BUGLE BRIBED, CLEAR RATES ALA BRIT, FAT RAP — FRR, ETA STORM, CGR ROBO MUP NCS. TT, MR TERS TREE ASIA + 2deFABRAA UAB Oh RAR AHA HRA. ee e g SAAR (eeanh) = UPA A atone Oem: Saws a ote 2c de E00 L. BY rT SAAT EARNER. HEAT HRA ASS Ra BERARDI, a ee ag itt TAS CBP Pine AT HES SUCROSE i RRM MIMS 2.6 Sle. een ae oe Lee OP ASE Byweletiricioy ee a ener paslauiis mS See Oo + getfinanvialReponManager (String tenantld) "TReporiManager 2 ro [+_gottmployeoReponRenomManager tring tenantid) :IReponManager |= = 3 = = r a shel ge wae Main e = =FiyWeight Inisiface’ ~~ ‘inanciaifteporManager EmployeeReponManager cs, | # SSlaplement= ceateRepoa 0 Sting “[/ 2eimmplomen> eeateRopon (Sire ~—— Concrete FipWeigt Concrete Fy We 26 CANA (9 2.6 1, ReportManagerFactory WILE), ABRAM TN, CRE 27) CHEE FES Ls BOE AP A SE 76 A CFinancialReportManager ®%% = EmployeeRéporiManager... BF. 74 7) FUNGAL BL Ek AEFI Ss Ar EAE ATR Oe Fie Repant ene, ETERNAL a Fisinnoial Roportbanage: RPS ae = TRE Pas ta seu bLL at ae ee ARES. te ap Ri : SEs EAT HDR Be PB EAT ME TERE PY BEATA EA Sa ABT IB HS BARE. MEER TO, ICT) AP TTR BABA MY, CET RL ASA AACE. ARH, Jy 2S a] YEN. FinancialReportManagerA #1 248 ail Z, GUE A 1256Java FER EE RE OMe FinancialReportManagerB 4} OUR. FARAH RLEMRATLMAT: TATRA RTM ARAM, Sas, ae? BAER AMIR, Foet Rp at RAR Fah, ded de IEA HEH, ABV ETON BRO ITE HPP CURE. EN, BPA MRR AE ROH HE ATOM BLE—P A e] CALP) PEE public interface TRepertManager { public String createReport (); } DUR RR MRRCE NISC. SPAT LIAR TA fs AR. EAT EARNER, public class FinancialReportManager implements IReportmanager {//MS4R# protected String tenantid=null; : public FinancialReportManager (String tenantid) ( JP oD this.tenantIidetenantid; } override public String ereateReport () { return "This is a financial report"; ) } public class EmployeeReportManager implements IReportManager { //ALARK protected String tenantid=null; Public HmployeeReportManager (String tenantTd) { (/#L ID this. tenantId=tenantId; + @override public String createReport () { return "This is 4 employee report"; } ) BONBON IGT) RSA BEARER IT ZE. EMR — AA A A PY ARSUAE ALG Ba AAR Ae. TEATRO. UI RE] MESS AEA BE wR ae ARES, SBR RON. = public class ReportManagerFactory { Map
financialReportManager= new HashMap
(); Map
employeeReportmanager- new HashMap
()7 TReportManager getFinancialReportManager (String tenant Id) { 96si. st °o, Seam wile & ete a IReportManager r=financialReportManager get (tenantId) ¢ Lf (reenull) { teau? r=new FinancialReportManager (tenantId); financialReportManager..put (tenantid, +); sep OEM (PTR ) return x} } IReportNanager getEmployeeReportReportManager (String tenantid) ( / CQSALP 1D PRET TReportManager r-employeeReportManager .get (tenantId) ; if (resnull) ( renew EmployeeReportManager (tenant id) ; employeeReportManager .put (tenantId, r)7 CR SOE AHFIMB ) return ry b 1 FRI FP public static void main(Stringl] args) { ReportManagerFactory rmfenew ReportManagerFactory (}7 IReportManager rm=rmf.getFinancialReportManager ("A"); System. out .printIn(rm.createReport ()); ) PAALAEAS ID 98]. MEY. AION SSE TESA, GAR ETON RNA ARH ReportManagerFactory ff 9 #761 Fey ERR ATA (RAF 2.1.4 Ripe iast SARA TEER oS, “CAT AST RIAA. ARAKI BET TRUE “Af AR AE BE A A HEU eS eS. EA, ALLY BAM REDIN AEE, IAEA. ADWARE PRESS, APT SCR ch HB WTA, AAT RAH. PEE, NIECE, HRMS Ww ENR. Seto WOU ASHE FT OR RE, MAGLI. SARS HA MIE, AeetT TE, TT DURES nee DEAT RD, MARIS “RR”, SAT TAR PORE. ES PORE, BET AE LPP ORAS. A RI RAE HY. EAA PREBLE ESL, REPRE mY DAR HS EE EE 2 EET AT, Bel HAS RBma, Pea SEU, ALINE OK. Uy Te BOR Re ae BE 1276Atl Java REOPEN, te & FOSHAN, HG, BONAR NOT. Oem: AAR AT pare Hates aeon ent, ASA OA TARR Fate BER RAL. Re NG PRE RE AS Rg nF 2.7 EAR Java BFE RE ConereieComponent 7
> operation () *
> operation 0] | + <
> Decorator (Componcit comporient) % ConcreteDecoraior 27 eta eR Ha Ny ALA (Decorator) APE tAA CConcreteComponent) $47 4H FALt/4% F1 Component. BARAT EAR ROO ALTE, SERENE NORE Abi. TTR ee A DL Ce wea a VSG, EAA ECT EEA RA, SR AEE Bein Bip ee 2.4 Pi. R24 Rie ae ma fe see AUT OR AACR HH LR RAE CERT RRM a ERG Fi BE a A Sh 4 ASAIN T APRON DA, ERT ABS, Ee IY Ake tt We tit SOLAUHED. SHA — PAAR Bebe aR ee FETUS HL BAH, SEB T eS OS RN Se EO [DURA AiG AT DLR — Ane wa AOL PERB. Betti PEARS SA A Se SH PRE TI. Hd, SEB HT RL HTML BHT RA. USA ARON AeA HTML OR. eI, SEE a BL TTP we, AL, RAPE MI HTTP Sk. MAR, fe EAR TE Th, PARE A Se TCP kA. EA, AR a eA BOORAH OAR, BU, BEC AAR HTML SCARY 370 HTTP SACRE 3 PRR BORAEE SCR. ALAR eS. RORPE ST 3 AUT eA CISA EE, FECES RHE ATARRE. PKL SAE mY LARA A LL 128+- I. »” Co, 2 BR ae 2.8 RMT. E ¥ Component ¥e “ Decorator ConereteComponent PacketDecorstor PacketBodyewaior +
handieContent() Stang + <
PacketDecorator (UPackeiCreetor pe) PackeilTTML FieaderCreator Packet WHieaderCreator + MandieComent () Suing © handieConient QString ConcreteDecorator ConereteDecorator 28 ether stael TPacketCreator HIER, HYP AEA AYE. PacketBodyCreator AAAS ALE, EMI AEE IEE BAD TH RI WA, HEIR EAN EH TEM gH Be Aa AS BL AB SC. PackotHTTPHeaderCreator $i Hf Ht 8 5 OPAL HFIP SBS, PacketH TMEHeaderCreator Se Bt72 43 3 HLA 22H 2016 it TML SCR. WL 2.8 AR, 3 4H SEBEYORSAIT EPSP BL 3b-F RED" IPacketCreator HSE SRMR APM, Cle - public interface TPacketCrestor { public String handleContent ()7 AP BREE ) PacketBodyCreator fj 7° |e) Acti AL Bobs Bae public class PacketBodyCreator implements iPadketcveator'( override public String handleContent() { return "Content of Packet"; — //MIRBOOMCN. (USEIEKEst y y PacketDecorator HEP" Kft: component RK, “EHS AEE, Hs a WY RAALZSHE component ER A LAUR Hele en public abstract class PacketDocorator implements IPacketCreator( IPacketCreator component: public PacketDecorator(IPacketCreator ¢) | component=c; y 129+public PacketHTMLHeaderCreator (IPacketCreator c) [ super (co) + i SS ) @override : public String handlecontent() { / MGB eR BR TM, StringBuffer sbenew StringBuffer (); sb.append ("") ; sb. append ("") + ar sb-apgend (component .handlecontent ()); sb-append ("") sb.append (" \n") : return sb.tostring(); , = : se is re od = = a — = : ~. “Packet TT PHeaderCreator '5 PacketHTMIL HeaderCreator (0, (HJ2'C 5c MMe @ TTP : SKATES, Spee ts ee HPN AY component 5M public class PacketHTTPHeaderCreator extends PacketDecorator! public PacketHTTPHeaderCreator (IPacketCreator c) { super{c)? ) eoverriae public String handleContent() {//AMBSEMMAN Ls rrp SAAT, StringBuffer sb-new StringBuffer (); sb.append("Cache-Control:no-cache\n") ; sb.append("Date:¥on, 310ec201204:25:57GMn\n sb.append (component .handleContent ())s return sb.tostring () 1 ) ELAR MATISSE —/MAM SEIU Jy AE ENO TT coe oe, a A Ite ——— AU RRMA HAA MBI — PRP, HEA BURA Ae HE. public’class Main { public static void main(String!] arga) ( IPacketCreator pc=new PacketHTTPHeaderCreator( new PacketHTMLHeaderCreator ( new PacketBodyCreator())) ; System.out.printin (pe, handleContent ()); I CMiS), UM eA, RCRA. ABE, Jed 3 te +305ol. s °, mom wire & mw aa Be fil, HEA Bed HLPERY PacketBodyCreator MAW, ICCA Packet TMLHeal tore £S 4k A Se PacketHTTPHeaderCreator. x, Pd BORMUM A, “Bh PacketBodyCreator 012k co Bean va ae, pena PacketHTMLHeaderCreator xf S.)iK +N AULA Mb ER, HEEL Oy HTML, fda th PacketHTTPHeaderCreator #} PacketHTMLHeaderCreator {Sut 2 HTTP 3.7. BFIZ4y ivtarihs or Fs Cache-Control:no-cache Date:Mon, 31Dec201206:25:576MT Content of Packet PA 2.9 Atal UAE RR, SUBAREA Nei DL REPS J oT MERA. or Menaontan 108 14 UOT Seeaoe ndeotons ine! 12 in snntSrinefD Line PE 2.9 Bei aR a Oa HES fe: SDK RSE APA BE ta Om ey HEN. DE, NR I TA OutputStream Fil InputStream HK HSIEH. LA OutputStream #4], OutputStream Xf SHEA AY FPSB He, WE RES, BLL PRE A ALIN, OutputStream Xf $A) LL ALY AIDING. Pel 2.10 kbar FLL OutputStream yt 19 ti AEE SE. Et FileOutputStream Jy ‘Component Decorator FileOuiputSieam FilkerOutputSteeani ‘OutputStream + wie (nt B) void | [F Consmusiom > FiterOutpatSiream OutpuiSizam oui) ‘CongreteComponent BulferedOutputSteam DateOuiputStream wrivelnr dnt v9 void | ‘ConereteDecorator ConcretcDecorator FR 2.10 Beth AARSCA: OurpurSeream HAYA 31eBAT FSCS AS. {2/1} DataOutputStream 2h utputStream - MICA, HEIN 2 ARISES, TW ButferedomputStream 28 Migs, FILL FileOutputStream si NEHA, EME VO AVYERE. PL BufferedOutputStream mane AUPE, RS HERE MLIR ASI NEMS SAEED public static void main(String{] args)’ throws Tosxception { 11ST BM SOE RTE. Dataoutputstream dout= new DataCutputStream (new es ca (°C \Na. txt") 5 JERE DARN B OutputStream dout=new DataOutputStream(new FileOutputstream reeen)) 7 long begin=system.currentTimeMillis(); for(int i=0;i<100000;1++) dout.writeLong (i) + System. out .pzint in ("spend:"+ (System, current TimeMillis()-begin)) + } DLAC S78 FileOurputStream ff) SV Fil. MVALARS) 42 AAPRESY OutputStream 77 2k, Th FMLA SELMEALE BufferedOutputStream, AWWA. ALI, By ieee AY OutputStream 4 9 #7 (F VO Het. Q3EK: IDK + OutputStream 4 InputStream Kiko KHLZ RA AA AGHA SI. Lae REND ATT ERORA, RAD RRR, IMR PAA REM RUDE. BUSI As ee hice Bn fol EEA PA VO ERR. ABEAT IS, OPERA EL 2.11 Brat. Pecenorian| |:omu0vpustem | | suteedoupesves E writeLong ‘iutMoshBurter) fl wrte EH retum rewum SS 211 eR ££ FileOutputStream.writeQ (tli fi. 2 e9EVH/i] BufferedOutputStream. write(), AOSEBEAT F 32+@ Rm Bett se tS public synchronized void write (byte bi, dit off, dint len) throws ‘er: ptish Sle % o = ( = if (len >= buf.lengtn) ( 1/1 RS BRAS T 4 atom we flushBuffer(); EAP out.write(b, off, len)? 1) RIES AE return; ) if (len > buf.length ~ count) { flushBuffer()3 } : system-arraycopy(b, off, buf, count, len); J (SRS AVE WS ABR count += lens ) Private void flushButfer() throws IOException { if (count > 0) { out.write(buf, 0, count); //i&8 2M out HR Fileoutputstream count = 0; ) WES, Jf 22 AE XK Buffered OutputStream. write( i} #8 2s RRS AB, A DEG ABSHET, ABBA, 2 MIY FileOutputStream.write() 77%, Tbr'S ABH. Dutt SEDLPE REA (SIN RELA PE ATE HEAP 2.1.5. WRT SULA BPN. Zee, RO HT ABET STEKO 2A BURCH TRS IRE _-WIAICR ON TE, MERLE TPAD AEN ER STR A. E DER BON, TBS BL TEA BA AL — Tes BONAR RAEI AE EAH. RA POUMGE LURE, CHEM, ROR, NAS rR. OBR. WER RU ee see Ha SPRL 2.12 Bea = q © Biber = TObserer + “attach 0 [+ update (Eventeyt) | = auane 0 ea + inom) T & ConereteSubject ‘observers. Vector Contiewopnerver = : +7Implement™> attach 0 -s-<
> deattach +
update (Eventevt) <
> inform) | F212 MRA Eh Ha. segssoley Java BYPYE SEAR —§ ini) Java RUPE. mw bm [Subject MMAR, “GALL ARAN ER MERA. LOberver fea ey e ISubject MARAE. “4 [Subject RA AMAR, Zeist informO 7 Via AT ein oe? QPS: UKABATAMTRHL, BeAHFBS. areca hercentey SAO IUE, Aap CS ANH AE SER A ff he 2.5 Bea. _ ese 3 R25: DRA fy & tf ow Se ay > PRR. Sot ae SER AMER, CRA SH Sec EMEP UR ESM : “uae SUMMER TAEROW Oe. ORR, BRUCE. CN Hapa am . cane | MBAR LORRI, RS ARM, TR RANI Boia Phas s Hf updareg aie g towing | RE BURT update, SLAG ORLA AAR RAR AOL OP ERLE Siva x Leena Cl eee ns public interface Isubject{ 3 void attach (I0bserver observer); 1 BARE void detach (I0bserver observer); 1 NRA void inform(); | CEST AR 5 y WU AE OSE Fs * public Tateetana: TObserver{ void update (Event evt); BERR , SICH, TER. CAAP CURA BMS, HOLT HUN FURIE RTH FES informOiE MRE. public class Concretesubject implements subject ( Vector
observers=new Vector
() ; public vold attach(fonserver observer) { observere.addE lement (observer) ; + public void detach (I0bserver observer) ( observers. removeE lement (observer); } phblic void inform) { Event evt=new Event ()7 for (L0bserver ob: oocervers) ( ob. update (evr) 7 (PER, EER 1 he aa: ooo, s Dw wat ~ 24s ss : v to 06° DSL LBE SS MN “oaemninagastekiaee, endaco kent Fi co iby EMD PLEA CEDARS AEN ARE FF es EAE public class ConcreteObserver implements 10bserver{ public void update (Bvent evt) { System.out.printin("obserer receives information"); ) ) ALR A 2 tA, BBE IDK AS AGRA FECA MER 7 RR BE SR. EET java. util 44"), 4445 java.util. Observable #4 ji ae sutil Cee EAL Te Se A 2.13 RS Sabject Observable = [Febe Vester + addObserver (Observer 0) = + deleteObserver (deleteObserver 0) + notifyOservers notifyObservers (Object sea) MyObservable ma Be. seh spot ee ‘java.util Observable “i, neki Obserer0) Ai VE ae DAR AEE MRA AEE 6 i FERRE ERS Observer 201 RN Ee Air 4 ‘ActionLis A EA I 2 AL Mt IE TEE, JRE AbstractButton. (92 a je St RSADPEIE FE ARIN, SABE Ta I SEAR ActionListener 2H Cth HEE Observer) — JPME AAT IM rN SRL (Subject fii (> ANSE BUR, WBA 4 TPE RE ccchegant Ve REAR PB Be. FSU EAR IE, APT BT ech Ba: Subject [ AbstractButton + Tisteners : Objecill + fireActionPerformed (ActionEvent event) nore: <———————- + addActionl istener (ActionListener () Action? erfomied (Action vent event) 1 ConereteObserver Button ConewieListent +
actionPeiformed (ActionEvent event) F214 Swing PRIA A HRS public static class BtnLiatener implements Actioniistener{ SPRBEAANMRB @override public void actionPerformed(ActionEvent e) { //# fireActionPerformed () PRE System.out.printin("click"); //#@4#1#iM. HAAR Aww ) , public static void main(String args{]){ JFrame penew JFrame (); uButton btn=new JButton ("Click ME"); PRIA btn.addActionbistener(new Btnlistener()); //#5kEMT, MAM P.add (btn) + P.pack()# p-setVisible (true) ; ECP AE AbstractButton Pi —-BEIE Be EY, A PR Bm ML SES. EAS BEAN BT SEL HE protected void £ireActionPerformed(ActionEvent event) { Object] listeners - listenerhist.gethistenertist() ;//KMAREWIE //$BU6 act ionbistencr ActionEvent e = mull; for (int i = listeners.tength-2; i>=0; i-=2) { if (listeners [i]=-ActionListener.class) { if fe == null) { String actionCommand ~ ovent.getActionCommand () ; if(actioncommand #= null) { actlonCommand = getactionCommand() ; ) 36+) € - new Actionfvent (AbatractButton.this, ActionEvent . ACTION PERFORMED) actionconmand, event.getihen(), event.getModifiers()); //Wi BER, 11 URFFER 2.4.6 Value Object xt ((Actionbistener) listeners[i+1)).actionPerformed(e) ; (TENA FRB SEHR, 2 DEE ACER, RHEN ARBOR. RE STEMI, ie SCHED ULL BARRE. TETRA, TEPER eZ I AURRR EL: Me REM fat TEAL Hk A Ee A, HEPES UR ARAL HT EAB PS HA AAS Ul OF ny REM ia ae A AS AH] RMI ESET AMA = NS Bras, Wa Faolthte A RME REPS, ELLA RANG ARMENIA (Order) Af. BLUE AMT MLE BP Ti RI, HA © RMI ihe Bae etCientName ‘BeiProdName | IaH AEH ERENT HELI 215 Pram, : RSET 3 RAE RUCK EE. 62), Hein 3 sem ee PE i A DAVOS aE. LAELALHT Value Object HEX . Value Object aoteena— tir BARRE EPR, BEAR CENE a, ATTRA SRF Ae Be, BEE One Jil BEI BAL HES AOD Value Object Bat EL by eeL@ o3!-e9 > 3 Jave- Pe PEYERE(E -— iF GRIN Java BP ER. RE x ge UAH Rea . ag At @e- HSA Valued Object BES iadiake Ee “We iter 18 “AMER 7 “public interface I0rderManager extends Remote { a public Order getOrder(int id) throws RemoteException ; /{Value Object Mat public String getClientName(int id) throws Remote2xception; public String getProdName(int id) throws RemoteException; public int getWumber(int id) throws RemoteSxception? we public lass. ondaeidaaues coiterde eats mo cuokaeed implements TOrderManager { protected OrderManager() throws RemoteException { os 2S super (): b private static final long serialVersionUID = -1717013007581295639L; Patt) Goverriae : public Order getOrder (int 1d) throws RenoteException (//BENTIMAS Order o=new Order ()7 o.setClientName ("billy") § eS o. setNumber (20) 7 Oo, setProdunctName ("desk") 7 return ¢; ) @Override public String getClientName(int id) throws RemoteException { (BIT BP return "billy"; - Qoverride public String getProdName (int id) throws RemoteException ( 23greturn "desk"; y ee ane? public Int getNusber(int Ja) theows RewoteBeceotion (//$EPIMGR eae } y 4624 Value Object ty Order {HSE BL Fs public class Order implements java-io.Serializablet private int orderid; private String clientnane; private int number; : private String produnctName; 7/8 setter getter Wie A oo 1 Mh EA EERIE FP RMU SRA a =) public class OrderManagerserver { public static void main(stringl] argv) { try x : e z LocateRegistry.createRegiatry (1099) + /7eei mer TOrderManager usermananger ~ new Ordermanager ()+//RMI WHEN & = Naming.rebind("OrderManager", usermananger); //9BaE RMI N&R System.out-printin("OrderManager is ready."); ) cateh (Exception e} 4 = System.out.printin("OrderManager Server failed: " + ¢); :: ) Sai OAC Foe HIRE AS T GA Value Object BARR STD Value Obieet ato HERBIE FR: “public static void main(Stringl] argv) { try { eB, TOrderManager usermanager - (lOrderManager) Naming ey - lookup ("OrderManager") + se long begin = System.currentTimeMillia ()+ for (int i = 0; 4 < 1000; 444) { usermanager .getOrder (i) ; /ivalue Object BX ae , s System.out.println("getOrder spend:" + (System.currentTimeMillis() - begin)); begin ~ System. currentTimeMillis()+ 239+for {int i= 0;.4°< 10007 i++) usermanager .getClientName (i) ; usermanager .getNumber (i); usermanager.getProdName (i) ; 1 System. out .printin("3 Method call spend: + (System, currentTimeMillis() - begin) }7 system. out .printin(usermanager.getOrder (0) ey: } catch (Exception e} { System. out .print In (*OrderManager exception: * + 6); ) ) SRNL a, (ENT getOrder( 7 ALAENY 469ms, TT AEATLESE 3 ce Me roa Ae LL REN T66ms. HEN, ie MCR ATT RR, TDA SER Thee ek TROT AE. 2.1.7 MS REE Value Object MCs A306 A818 FH We CE ARETE — FT LI RET, MES AUER UU EHS 20 ELC A RRO A, BPEZE MT AT. Hell, HURL REE MAR. WERT N 3 TERE: O bean O JURIST EE O mai. Re MIE 2.17 Bia, FTE checker WARE Haw stOrder =a ah ‘updateDrider © F AI217 bw MRT I 2 DSi ite Ce Z NARI KIER Bl, AEN TL RE, ETM a Sen, (2) th PRR RET BARA ALAR PAC, inset RIBBLE sete, WANE “SRR AU BR = 2 “AT APRA OL EDL, STDERR IMA WMS, WES OMS ‘eA A RW FR, SE LTT BR TEAC RT BO SR RP A updateOrdei() TEU CREOLE aL PEEL, 8 aS OS Mot 2.18 BRR. 40+Ie 98 Co, 2 whit merit acter SnUHHE we 3H SO at oe . platcOnder | 5/8 getOrder RMI | Xe Pu sere | O(a} | ee AES va RDBMS, Mb SiR, | 1 2B | apaatconer | soe J F218 Wer ACA A Qize: LERMAN -BRLSARHAEW 6 AR, DEBT T Mab 6, DERE B, BRT ALM ERAT, ELLA Bo ERR A Pali, TRY BALA EAR AA, MRR AT, SBOE SAT Wi (RASA eat LAR. BT a AR RO BT A BE ER BEM E PEP USO, WORSE SPIRE PE. SS RE BER SE He Ps elle 45 CRY 2 A A AY updateOrder() AEH AF. REZ Hh, HTS RS BYU A St de RA AT He PR ZTE, MRA ROA Ee, Web TR HE RAERE. AALS ELE IE ALT ELT, BARB A public static void main(stringI! argv) { try ( TOrderManager usermanager > (TOrderManager) Naming + lookup ("OrderManager") 7 : if (usermanager.checkUser(1)) ( LSAT WS eT = LSM, PROBE AE Order o = usermanayer.getOrder (1); O.setNumber (10) 7 usermanager .updateOxder (0) ; b } catch (Bxception e) { System.out .printin("OrderManager exception: * +e); ' d MH TMS RAG. Rea RAAT A public static void main(string(] argv) throws Exception ( BusinessDelegate bd-new BusinessDelegate () / Order ombd.getOrder (11); o-setNumber (11) ; bd.updateOrder (0); J FAL I ARETE REET ) TEMES ABER H BusinessDelogate "), A) LEME, Mii ELEM RL JTLT MY PBL. DRE BRACE MA SEPA CH, AHL AE DB fa Public class BusinessDelegate { TorderManager usérmanayer =null: JER TE wid
You might also like
2018软件设计师教程 第5版 - 9787302491224
PDF
No ratings yet
2018软件设计师教程 第5版 - 9787302491224
686 pages
Java 从入门到精通(第4版) 明日科技
PDF
No ratings yet
Java 从入门到精通(第4版) 明日科技
604 pages
Java核心技术,卷1 (原书第8版)
PDF
No ratings yet
Java核心技术,卷1 (原书第8版)
706 pages
图解java多线程设计模式.pdf (结城浩)
PDF
No ratings yet
图解java多线程设计模式.pdf (结城浩)
523 pages
History Notes..First Comparitices.. June 29 2024
PDF
No ratings yet
History Notes..First Comparitices.. June 29 2024
32 pages
Java并发编程实战(中文版)
PDF
No ratings yet
Java并发编程实战(中文版)
308 pages
图解设计模式 Tu Jie She Ji Mo Shi (结城浩,杨文轩)
PDF
No ratings yet
图解设计模式 Tu Jie She Ji Mo Shi (结城浩,杨文轩)
402 pages
大话处理器
PDF
No ratings yet
大话处理器
260 pages
深入理解计算机系统
PDF
No ratings yet
深入理解计算机系统
833 pages
《程序设计语言概念 (第9版) 》. (Robert Sebesta)
PDF
No ratings yet
《程序设计语言概念 (第9版) 》. (Robert Sebesta)
582 pages
代码之髓 编程语言核心概念
PDF
No ratings yet
代码之髓 编程语言核心概念
237 pages
算法笔记
PDF
No ratings yet
算法笔记
493 pages
系统建设方案 - 百度文库
PDF
No ratings yet
系统建设方案 - 百度文库
14 pages
程序是怎么跑起来的pdf
PDF
No ratings yet
程序是怎么跑起来的pdf
274 pages
面向对象的程序设计
PDF
No ratings yet
面向对象的程序设计
503 pages
Oops With Java
PDF
No ratings yet
Oops With Java
157 pages
系统虚拟化:原理与实现
PDF
No ratings yet
系统虚拟化:原理与实现
252 pages
New Durga Soft SCJP
PDF
100% (1)
New Durga Soft SCJP
582 pages
A Scent of Love in London by Indah Hanaco
PDF
100% (2)
A Scent of Love in London by Indah Hanaco
378 pages
Microcontrollers BCS402. Mod 3, 4, 5
PDF
No ratings yet
Microcontrollers BCS402. Mod 3, 4, 5
17 pages
JPR Unit 1
PDF
No ratings yet
JPR Unit 1
42 pages
Understanding The Linux Virtual Memory Manager
PDF
No ratings yet
Understanding The Linux Virtual Memory Manager
674 pages
深入理解Linux虚拟内存管理
PDF
No ratings yet
深入理解Linux虚拟内存管理
674 pages
COM技术内幕
PDF
No ratings yet
COM技术内幕
311 pages
Java U1
PDF
No ratings yet
Java U1
28 pages
深入理解C# 第3版
PDF
No ratings yet
深入理解C# 第3版
503 pages
数据结构与算法分析Java语言描述 原书第3版
PDF
No ratings yet
数据结构与算法分析Java语言描述 原书第3版
416 pages
OOC 18CS45 Module2 Tie
PDF
No ratings yet
OOC 18CS45 Module2 Tie
38 pages
分布式系统概念与设计 by George Coulouris Z-liborg
PDF
No ratings yet
分布式系统概念与设计 by George Coulouris Z-liborg
654 pages
541118 深入理解计算机系统(原书第三版3)
PDF
No ratings yet
541118 深入理解计算机系统(原书第三版3)
775 pages
Sateesh Gupta Sir Core Java Notes PDF
PDF
No ratings yet
Sateesh Gupta Sir Core Java Notes PDF
420 pages
Computer Notes (Complete)
PDF
No ratings yet
Computer Notes (Complete)
128 pages
UNIX网络编程
PDF
No ratings yet
UNIX网络编程
772 pages
Java 7
PDF
No ratings yet
Java 7
23 pages
钱能C++程序设计教程第二版 (jb51 net)
PDF
No ratings yet
钱能C++程序设计教程第二版 (jb51 net)
571 pages
Java Assignment
PDF
No ratings yet
Java Assignment
35 pages
Spring源码深度解析
PDF
No ratings yet
Spring源码深度解析
397 pages
80X86汇编语言与计算机体系结构 11529936
PDF
No ratings yet
80X86汇编语言与计算机体系结构 11529936
344 pages
深入理解程序设计使用linux汇编语言 (美)Jonathan+Bratlett著;郭晴霞译
PDF
No ratings yet
深入理解程序设计使用linux汇编语言 (美)Jonathan+Bratlett著;郭晴霞译
210 pages
计算机体系结构:量化研究方法(第五版)(中文版)
PDF
No ratings yet
计算机体系结构:量化研究方法(第五版)(中文版)
612 pages
Java Oops Git JDBC Hibernat Servlet JSP Spbot
PDF
No ratings yet
Java Oops Git JDBC Hibernat Servlet JSP Spbot
31 pages
Adobe Scan 21-Dec-2024
PDF
No ratings yet
Adobe Scan 21-Dec-2024
29 pages
Java PDF
PDF
No ratings yet
Java PDF
57 pages
IDA Pro权威指南 (第2版) @
PDF
No ratings yet
IDA Pro权威指南 (第2版) @
501 pages
Core Java Notes All
PDF
No ratings yet
Core Java Notes All
80 pages
Adobe Scan Aug 06, 2024
PDF
No ratings yet
Adobe Scan Aug 06, 2024
24 pages
Web Tech Notes
PDF
No ratings yet
Web Tech Notes
24 pages
80X86汇编语言基础教程
PDF
No ratings yet
80X86汇编语言基础教程
222 pages
Lab Output
PDF
No ratings yet
Lab Output
36 pages
jvm分析
PDF
No ratings yet
jvm分析
549 pages
(自己动手写操作系统) 于渊 无水印影印版(《Orange's一个操作系统的实现》的第一版)
PDF
No ratings yet
(自己动手写操作系统) 于渊 无水印影印版(《Orange's一个操作系统的实现》的第一版)
394 pages
C++ Qt 设计模式(第二版) (中文版) (PDFDrive)
PDF
No ratings yet
C++ Qt 设计模式(第二版) (中文版) (PDFDrive)
500 pages
计算机安全学
PDF
No ratings yet
计算机安全学
238 pages
JAVA Lecture Notes Scanned
PDF
No ratings yet
JAVA Lecture Notes Scanned
256 pages
Core Java Notes by Akshay Sir
PDF
No ratings yet
Core Java Notes by Akshay Sir
32 pages
Operating System Solution 2023-24
PDF
No ratings yet
Operating System Solution 2023-24
20 pages
AC23AP002T 392f61
PDF
No ratings yet
AC23AP002T 392f61
18 pages
80X86汇编语言基础教程 12222553
PDF
No ratings yet
80X86汇编语言基础教程 12222553
222 pages
网络渗透技术
PDF
No ratings yet
网络渗透技术
558 pages