Programim dhe zhvillim, javascript, python, php, html

A ka diçka si malloc/falas në java?

Megjithatë, nuk kam parë kurrë deklarata të tilla, a ekziston fare në botën java?

10.12.2010

Përgjigjet:


1

Versioni i Java i malloc është new -- ai krijon një objekt të ri të një lloji të caktuar.

Në Java, memoria menaxhohet për ju, kështu që nuk mund të delete ose free në mënyrë eksplicite një objekt.

10.12.2010
  • Pra, nuk mund të hyj drejtpërdrejt në hapësirën e kujtesës? 10.12.2010
  • Jo, ju nuk mund të fitoni akses në adresën bazë të treguesit/memorjes së një objekti Java përmes ndonjë mjeti të arsyeshëm. C# ju lejon ta bëni këtë duke përdorur fjalën kyçe unsafe: msdn.microsoft.com/en-us/library/chfa2zb8(v=VS.100).aspx Ju lutemi, vini re se kjo është shumë, shumë rrallë e nevojshme. 10.12.2010
  • Referencimi i objektit që dëshironi të lironi në nul i tregon kujtesës së grumbulluesit të mbeturinave nëse është i lirë për t'u mbledhur. 17.02.2015

  • 2

    Java ka një grumbullues mbeturinash. Kjo është arsyeja pse ju nuk shihni kurrë deklarata të tilla në kodin tuaj (që është mirë nëse më pyesni mua)

    Në shkencën kompjuterike, mbledhja e mbeturinave (GC) është një formë e menaxhimit automatik të kujtesës. Është një rast i veçantë i menaxhimit të burimeve, në të cilin burimi i kufizuar që menaxhohet është memoria. Mbledhësi i mbeturinave, ose thjesht mbledhësi, përpiqet të rikuperojë mbeturinat ose memorien e zënë nga objektet që nuk janë më në përdorim nga programi. Mbledhja e mbeturinave u shpik nga John McCarthy rreth vitit 1959 për të zgjidhur problemet në Lisp.

    10.12.2010

    3

    Nuk ekzistojnë ekuivalente të drejtpërdrejta në Java:

    C malloc krijon një nyje grumbulli të pashtypur dhe ju kthen në të një tregues që ju lejon të aksesoni memorien si të dëshironi.

    Java nuk ka konceptin e një objekti të pashtypur dhe nuk ju lejon të aksesoni drejtpërdrejt memorien. Më e afërta që mund të merrni në Java me malloc do të ishte new byte[size], por kjo ju kthen një objekt të shtypur fort që mund ta përdorni VETËM si një grup bajt.

    C free lëshon një nyje grumbulli.

    Java nuk ju lejon të lëshoni në mënyrë eksplicite objekte. Shpërndarja e objekteve në Java është plotësisht në duart e grumbulluesit të plehrave. Në disa raste ju mund të ndikoni në sjelljen e GC; p.sh. duke i caktuar null një variabël referimi dhe duke thirrur System.gc(). Megjithatë, kjo nuk e detyron objektin të shpërndahet ... dhe është një mënyrë shumë e shtrenjtë për të vazhduar.

    10.12.2010

    4

    new në vend të malloc, grumbullues plehrash në vend të lirë.

    10.12.2010

    5

    Nëse nuk jeni të mirë (tm) supozoj se mund të keni akses në kujtesën e papërpunuar përmes ndërfaqes JNI. Këtu mund të telefononi programe C nga Java Programs. Sigurisht që duhet të ekzekutoni në një mjedis ku programi juaj ka privilegjet për ta bërë këtë (një shfletues normalisht nuk do ta lejojë këtë nëse nuk është vetëvrasës), por ju mund t'i qaseni objekteve nëpërmjet treguesve C në atë mënyrë.

    Pyes veten se nga vjen pyetja origjinale. Në një moment shumë kohë më parë isha plotësisht skeptik për nocionin se menaxhimi i kujtesës në stilin C dhe treguesit e stilit C nuk ishin të nevojshëm, por në këtë pikë unë jam një besimtar i vërtetë.

    10.12.2010
  • +1 Për të vënë në dukje JNI -- jo se kjo do të lejojë automatikisht aksesin në menaxhimin e objekteve, por duke përdorur JNI mund të merret me memorie/burime të pamenaxhuara nëse ata dëshirojnë. 10.12.2010
  • Materiale të reja

    Masterclass Coroutines: Kapitulli-3: Anulimi i korutinave dhe trajtimi i përjashtimeve.
    Mirë se vini në udhëzuesin gjithëpërfshirës mbi Kotlin Coroutines! Në këtë seri artikujsh, unë do t'ju çoj në një udhëtim magjepsës, duke filluar nga bazat dhe gradualisht duke u thelluar në..

    Faketojeni derisa ta arrini me të dhënat false
    A e gjeni ndonjëherë veten duke ndërtuar një aplikacion të ri dhe keni nevojë për të dhëna testimi që duken dhe duken më realiste ose një grup i madh të dhënash për performancën e ngarkesës...

    Si të përdorni kërkesën API në Python
    Kërkesë API në GitHub për të marrë depot e përdoruesve duke përdorur Python. Në këtë artikull, unë shpjegoj procesin hap pas hapi për të trajtuar një kërkesë API për të marrë të dhëna nga..

    Një udhëzues hap pas hapi për të zotëruar React
    Në këtë artikull, do të mësoni se si të krijoni aplikacionin React, do të mësoni se si funksionon React dhe konceptet thelbësore që duhet të dini për të ndërtuar aplikacione React. Learning..

    AI dhe Psikologjia — Pjesa 2
    Në pjesën 2 të serisë sonë të AI dhe Psikologji ne diskutojmë se si makineritë mbledhin dhe përpunojnë të dhëna për të mësuar emocione dhe ndjenja të ndryshme në mendjen e njeriut, duke ndihmuar..

    Esencialet e punës ditore të kodit tim VS
    Shtesat e mia të preferuara - Git Graph 💹 Kjo shtesë është vërtet e mahnitshme, e përdor përpara se të filloj të punoj për të kontrolluar dy herë ndryshimet dhe degët më të fundit, mund të..

    Pse Python? Zbulimi i fuqisë së gjithanshme të një gjiganti programues
    Në peizazhin gjithnjë në zhvillim të gjuhëve të programimit, Python është shfaqur si një forcë dominuese. Rritja e tij meteorike nuk është rastësi. Joshja e Python qëndron në thjeshtësinë,..