JavaRush /Blog Jawa /Random-JV /10 Java 8 fitur sing durung krungu.

10 Java 8 fitur sing durung krungu.

Diterbitake ing grup
Lambdas, lambdas, lambdas. Mekaten ingkang dipun rungokaken menawi tiyang ngrembag babagan basa Jawi 8. Nanging menika namung setunggal perangan. Java 8 nduweni akeh fitur anyar - sawetara kelas lan idiom anyar sing kuat, lan liya-liyane mung sing kudu ana wiwit wiwitan. Aku wanted kanggo pindhah menyang sepuluh fitur anyar sing aku ndeleng minangka permata cilik sing mesthi worth ngerti. Mesthine ana siji utawa loro sing pengin dicoba, mula ayo miwiti! 1) Metode standar. Anyar ing basa Jawa, saiki sampeyan bisa nambah badan metode menyang antarmuka ( metode standar ). Cara iki ditambahake tanpa syarat ing kabeh kelas sing ngetrapake antarmuka kasebut. Iki menehi kesempatan kanggo nambah fungsi anyar menyang perpustakaan sing wis ana tanpa ngilangi kode lawas. Sing mesthi plus. Ing tangan liyane, iku akeh blurs baris antarane antarmuka, kang obliges kahanan tartamtu kanggo tindakake minangka konvènsi, lan kelas sing nderek wong, minangka implementasine pribadi. Ing tangan tengen (tengen), iki bisa dadi cara sing elegan kanggo nggawe antarmuka luwih pinter, ngindhari pengulangan, lan ngluwihi perpustakaan. Ing tangan ala; kita bakal rauh ndeleng cara ing antarmuka sing nelpon iki lan matak menyang jinis konkrit. Brrr.... 2) Proses mandheg. Miwiti proses tambahan minangka salah sawijining perkara sing sampeyan tindakake setengah ngerti yen sampeyan bakal bali (debug) kanggo debug nalika proses kasebut (retak) (crash) dibatalake, (hang) macet, utawa nggunakake 100% CPU. Kelas Proses saiki wis bersenjata karo rong cara anyar kanggo mbantu sampeyan ngontrol proses sing ora diatur. Pisanan, isAlive () , ngijini sampeyan kanggo gampang mriksa yen proses mlaku tanpa kudu ngenteni. Kapindho lan luwih kuat (warning!) iku destroyForcibly () , sing ngijini sampeyan kanggo (ora isin) meksa (mateni) mungkasi proses sing wis ngluwihi wektu (nunggu utawa digunakake) utawa ora perlu maneh. 3) StampedLock. Saiki kanggo soko tenan macem. Ora ana sing seneng nyelarasake kode. Iki minangka cara sing apik kanggo nyuda kinerja aplikasi sampeyan (utamane ing skala gedhe) utawa luwih elek, nyebabake beku. Nanging, kadhangkala sampeyan ora duwe pilihan. Ana akeh idiom kanggo nyinkronake akses multi-threaded menyang sumber. Salah siji sing paling disenengi yaiku ReadWriteLock lan implementasine sing gegandhengan. Idiom iki nyuda pratelan kanthi ngidini sawetara utas nggunakake sumber daya nalika mblokir mung benang sing manipulasi. Iku muni apik, nanging ing laku kunci iki dadi alon , utamané karo nomer akeh thread nulis. Iki dadi ala banget yen Java 8 ngenalake RWLock anyar sing diarani StampedLock . Kunci iki ora mung luwih cepet, nanging uga nawakake API sing kuat kanggo ngunci optimistis, ing ngendi sampeyan bisa entuk kunci sing diwaca kanthi murah, kanthi pangarep-arep ora ana operasi sing ditulis nalika bagean kritis kode kasebut. Ing pungkasan bagean, sampeyan takon kunci apa rekaman kedadeyan sajrone wektu kasebut, mula sampeyan bisa mutusake apa arep nyoba maneh, nambah kunci, utawa nyerah. Kunci iki minangka alat sing kuat lan pantes kirim kabeh babagan awake dhewe. Aku bungah banget karo dolanan anyar iki. apik tenan! Kajaba iku, sampeyan bisa maca kene . 4) Perekam saingan. Iki minangka permata cilik liyane kanggo sapa wae sing nganggo aplikasi multi-Utas. API anyar sing prasaja lan efisien kanggo maca lan nulis counter saka pirang-pirang benang. Kadhangkala, malah luwih cepet tinimbang nggunakake AtomicIntegers. Apik tenan! 5) Nilai opsional (utawa opsional). Oh, null pointers, sirah kanggo kabeh pangembang Jawa. Mbok menawa sing paling populer saka kabeh pengecualian, wis ana wiwit jaman biyen. Paling ora wiwit taun 1965 . Nyilih saka Scala lan Haskell, Jawa 8 duwe pola anyar, disebut Opsional, kanggo referensi mbungkus sing bisa null. Iki ora ateges peluru perak sing bakal ngilangi null, nanging minangka sarana kanggo perancang API kanggo nunjukake ing tingkat kode (tinimbang dokumentasi) yen nilai null bisa bali utawa liwati menyang cara, lan panelpon kudu nyiapake iku. Dadi iki mung bisa digunakake kanggo API anyar, yen panelpon ora ngidini referensi kanggo uwal saka pambungkus, ngendi iku bisa aman dereferenced. Aku kudu ngomong yen aku cukup ambivalent babagan fitur iki. Ing tangan siji, nulls tetep masalah ageng, aku appreciate kabeh sing wis rampung kanggo ngatasi. Ing tangan liyane, aku cukup mamang yen iki bakal sukses. Iki amarga nggunakake Opsional mbutuhake usaha sing terus-terusan saka kabeh perusahaan lan ora duwe pengaruh langsung. Tanpa penegakan sing kuat, kemungkinan bakal tetep ing sisih kiwa dalan. Waca liyane babagan Opsional . 6) Cathetan kabeh. Kemajuan cilik liyane ing basa Jawa: anotasi bisa ditambahake ing meh kabeh kode sampeyan. Sadurunge, anotasi mung bisa ditambahake ing bab kaya kelas utawa deklarasi metode. Wiwit Java 8, anotasi bisa ditambahake menyang deklarasi variabel lan parameter, nalika menehi nilai menyang jinis tartamtu, utawa malah nyedhiyakake obyek anyar. Iki minangka bagean saka upaya konsentrasi (bebarengan karo perbaikan alat JavaDoc lan API) kanggo nggawe basa luwih ramah kanggo analisis statis lan alat pangukuran (kayata FindBugs). Iki minangka fitur sing apik, nanging kaya invokeDynamic sing dienalake ing Jawa 7, nilai nyata bakal gumantung marang apa sing ditindakake masyarakat. 7) Operasi overflow. Saiki, iki minangka set metode, sing kudu dadi bagian saka perpustakaan inti wiwit dina. Hobi favoritku debugging numerik overflows nalika ints ngluwihi 2 ^ 32, lan nerusake kanggo nggawe kesalahan nastiest lan paling ora dikarepke (i. e. "Kepiye ing bumi aku entuk nilai aneh iki?"). Maneh, ora ana peluru perak ing kene, nanging ana akeh fungsi kanggo manipulasi nomer sing mbuwang nalika kebanjiran kanthi cara sing kurang pangaksumo tinimbang operator +/* standar sampeyan, sing tanpa syarat. 8) Lumaku liwat katalog. Iterasi liwat isi wit direktori wis suwe dadi salah sawijining perkara sing digoleki wong Google (ing ngono sampeyan bakal disaranake nggunakake Apache.FileUtils). Java 8 menehi kelas Files facelift karo sepuluh cara anyar. Favoritku iku lumaku () , kang nggawe thread puguh (penting kanggo sistem file gedhe) kanggo iterate liwat isi struktur direktori. 9) Generasi acak sing kuat. Saiki ora ana kekurangan omongan babagan kerentanan sandhi lan kunci. Keamanan piranti lunak minangka bisnis sing rumit lan rawan kesalahan. Mulane aku seneng metode SecureRandom anyar. getinstanceStrong () , sing kanthi otomatis milih generator acak paling kuat kasedhiya kanggo Mesin Virtual Jawa. Iki nyuda kemungkinan sampeyan bakal gagal utawa duwe generator sing ringkih, sing bakal nggawe kunci lan nilai sing dienkripsi luwih rentan kanggo peretasan. 10. Date.toInstant(). Java 8 ngenalake API anyar kanggo tanggal lan wektu . Iki cukup dingerteni amarga sing wis ana ora apik banget. Joda ateges wis arep menyang API Jawa kanggo tanggal lan kaping kanggo sawetara taun. Nanging, sanajan API anyar, ana masalah gedhe - ana akeh kode lan perpustakaan sing nggunakake API lawas. Lan kita kabeh ngerti yen dheweke ana ing kene kanggo tetep. Dadi apa sing bakal sampeyan lakoni? Kanggo entuk iki, Jawa 8 nindakake soko sing rada elegan kanthi nambahake metode anyar ing kelas Tanggal sing diarani Instant () sing ngowahi dadi API anyar. Iki ngidini sampeyan nggawe lompat cepet menyang API anyar, sanajan nggarap kode sing nggunakake API tanggal lawas (lan bakal terus dilakoni kanggo mangsa ngarep).
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION