JavaRush /Blog Jawa /Random-JV /Sinau menyang Google | Tingkat 4 | Kuliah 11
sunshine4545
tingkat
Минск

Sinau menyang Google | Tingkat 4 | Kuliah 11

Diterbitake ing grup
Sinau menyang Google |  Tingkat 4 |  Kuliah 11 - 1

1. Kepriye cara kerjane tukang sampah ing Jawa

Penagih sampah minangka proses prioritas rendah sing mlaku sacara periodik lan mbebasake memori sing digunakake dening obyek sing ora dibutuhake maneh. Penagih sampah mlaku ing latar mburi, sejajar karo program, ing benang sing kapisah. Basis kanggo nglumpukake sampah ora ngetung referensi, nanging misahake obyek dadi rong jinis - tekan lan ora bisa digayuh. Sawijining obyek dianggep bisa digayuh (urip) yen dirujuk dening obyek liya sing bisa digayuh (urip). Reachability diitung saka benang. Utas mlaku tansah dianggep bisa digayuh (urip), sanajan ora ana sing ngrujuk. Kabeh obyek ing Jawa disimpen ing area memori khusus sing disebut heap. Kabeh obyek ing program bisa dipérang dadi rong jinis - relatif ngandika, obyek prasaja lan "dawa-urip". Obyek "urip dawa" yaiku sing wis slamet akeh koleksi sampah. Paling asring bakal ana nganti pungkasan program. Akibaté, tumpukan umum, ing ngendi kabeh obyek sing digawe disimpen, dipérang dadi sawetara bagéan. Pérangan pisanan nduweni jeneng ayu - Eden (Alkitab "Taman Eden"), obyek pindhah kene sawise padha digawe. Ing bagean iki memori diparengake kanggo obyek anyar nalika kita nulis anyar. Akeh obyek bisa digawe, lan nalika spasi entek ing wilayah iki, pisanan, "cepet" koleksi sampah wiwit. Sampeyan kudu ngomong yen kolektor sampah banget pinter lan milih algoritma kerja gumantung saka apa sing ana ing tumpukan - sampah utawa obyek kerja. Yen meh kabeh obyek uwuh, Penagih tandha obyek "urip" lan pindhah menyang wilayah memori liyane, sawise kang wilayah saiki wis rampung di resiki munggah. Yen ana sampah cilik lan akeh sing dikuwasani obyek urip, menehi tandha sampah, ngresiki, lan nata barang sing isih ana. Area memori ing ngendi kabeh obyek sing bisa urip paling ora siji koleksi sampah ditransfer diarani Survival Space. Survival Space, ing siji, dipérang dadi generasi. Saben obyek diwenehi generasi adhedhasar jumlah koleksi sampah sing wis dialami. Yen ana siji, iku belongs kanggo "Generasi 1", yen 5 - kanggo "Generasi 5". Bebarengan, Eden lan Survival Space mbentuk wilayah sing diarani Generasi Muda. Saliyane Generasi Muda, ana area memori liyane ing tumpukan - Generasi Lawas ("generasi lawas"). Iki minangka obyek sing umure dawa banget sing wis slamet saka akeh koleksi sampah. Luwih nguntungake kanggo nyimpen kanthi kapisah saka kabeh liyane. Lan mung nalika wilayah Generasi Lawas kebak, i.e. Malah ana akeh obyek sing dawa banget ing program sing ora ana memori sing cukup, koleksi sampah lengkap ditindakake. Ngolah ora mung siji area memori, nanging umume kabeh obyek sing digawe dening mesin Java. Alami, mbutuhake wektu lan sumber daya luwih akeh. Mulane diputusake kanggo nyimpen obyek sing umure dawa kanthi kapisah. Nalika papan entek ing wilayah liyane, sing diarani "pengumpulan sampah kanthi cepet" ditindakake. Iki kalebu mung siji wilayah, lan amarga iki luwih ekonomis lan luwih cepet. Akhire, Nalika malah wilayah kanggo warga umur dawa wis clogged, reresik lengkap mlebu fray. Mangkono, alat sing paling "abot" digunakake dening assembler mung nalika ora perlu maneh. Sinau menyang Google |  Tingkat 4 |  Kuliah 11 - 2

2. Apa wae jinise tukang sampah?

Jawa nduweni pitung jinis pengepul:
  1. Pengumpul Sampah Serial
  2. Pengumpul Sampah Paralel
  3. CMS Pengumpul Sampah
  4. G1 Pengumpul Sampah
  5. Epsilon Garbage Collector
  6. Z tukang sampah
  7. Shenandoah Garbage Collector

3. Apa "generasi" obyek

Kabeh obyek ing Survival Space dipérang dadi generasi. Saben obyek diwenehi generasi adhedhasar jumlah koleksi sampah sing wis dialami. Yen ana siji, iku belongs kanggo "Generasi 1", yen 5 - kanggo "Generasi 5".

4. SoftReference digunakake kanggo apa?

Obyek sing dirujuk mung dening referensi alus bisa diklumpukake sampah yen program kehabisan memori. Yen program tiba-tiba kehabisan memori, sadurunge mbuwang OutOfMemoryException, pengumpul sampah bakal mbusak kabeh obyek sing dirujuk dening tautan alus lan nyoba nyedhiyakake memori menyang program maneh. Obyek sing ora mati mung dening SoftReference bisa urip ing sembarang koleksi sampah lan paling kamungkinan bakal numpes yen program entek memori.

5. Conto nggunakake SoftReference

SoftReferences dirancang khusus kanggo caching. Ayo nganggep yen program klien kerep njaluk macem-macem data saka program server. Banjur program server bisa cache sawetara, nggunakake SoftReference iki. Yen obyek sing disimpen saka pati dening referensi alus njupuk munggah paling saka memori, banjur kolektor uwuh mung bakal mbusak lan iku.

6. Conto nggunakake WeakReference

Yen ana mung referensi banget kanggo obyek, banjur obyek iki urip, nanging bakal numpes sak koleksi sampah sabanjuré. Obyek sing ora mati dening WeakReference mung ora bakal slamet saka koleksi sampah sabanjure. Nanging nganti kedadeyan, sampeyan bisa njaluk kanthi nelpon metode get()ing WeakReference lan nelpon cara utawa nindakake liya. Conto nggunakake WeakReference yaiku WeakHashMap.

7. Napa WeakHashMap dibutuhake

WeakHashMap minangka HashMap sing kunci referensi lemah - WeakReference. Sampeyan nyimpen pasangan obyek ing WeakHashMap - tombol lan nilai. Nanging WeakHashMap ora ngrujuk langsung menyang tombol, nanging liwat WeakReference. Mulane, nalika obyek sing digunakake minangka kunci dadi ora bisa digayuh, bakal dirusak sajrone pengumpulan sampah sabanjure. Iki tegese nilai kasebut bakal dibusak kanthi otomatis saka WeakHashMap. WeakHashMap trep banget kanggo nyimpen informasi tambahan kanggo sawetara obyek. Kaping pisanan, gampang banget dipikolehi yen sampeyan nggunakake obyek kasebut minangka kunci. Kapindho, yen obyek dirusak, lan kabeh data sing ana gandhengane bakal ilang saka HashMap. Contone, program kasebut nduweni benang sing ngawasi karya sawetara obyek tugas lan nulis informasi babagan kasebut menyang log. Banjur thread iki bisa nyimpen obyek sing dilacak ing WeakHashMap. Sanalika obyek ora dibutuhake maneh, kolektor sampah bakal mbusak, lan referensi saka WeakHashMap bakal dibusak kanthi otomatis.

8. Apa iku logger

Objek Logger digunakake kanggo nyathet pesen kanggo sistem utawa komponen aplikasi tartamtu. Log minangka dhaptar acara sing kedadeyan. Paling asring, informasi babagan paramèter metode sing diarani, kabeh kesalahan sing dicegat, lan akeh informasi penengah ditulis ing log. Kabeh proses logging kasusun saka telung bagean.
  • Bagian pisanan yaiku ngumpulake informasi.
  • Bagian kapindho yaiku nyaring informasi sing diklumpukake.
  • Bagian katelu yaiku rekaman informasi sing dipilih.

9. Carane nyiyapake logger

  1. Tambah ketergantungan menyang pom.xml.
  2. Tambah file log4j.properties kanggo sumber daya.
    Biasane, setelan logger log4j disetel ing file log4j.properties. Ing file iki sampeyan bisa nemtokake sawetara appenders - obyek sing data bakal ditulis.
  3. Tambah menyang kelas kanthi logika bisnis private static final Logger log = Logger.getLogger(ххх.class);.
digunakake:
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION