incorectitudine 4

com.javarush.test.level17.lesson10.home04 incorectitudine

După două zile de tortură și golovolomaniya, am reușit, totuși, și de polutyka, pentru a primi aprobarea de server. Aici sunt doar o evaluare corectă a postului nu sunt de acord, și voi explica de ce.







Permiteți-mi să amintesc condiția:


Și raționamentul meu:
Metoda 0. Nu atingeți. Atribuie variabila locală la metoda 3, care sincronizate (a se vedea., Etc)
Metoda 1: Nu atingeți. Se creează o nouă instanță a unei clase care solicită o metodă și 0, care determină, de asemenea, o metodă de sincronizat 3.
Metoda 2: Nu atingeți. Numai funcționează cu metoda de argumentare, care nu este nici o referință.
Metoda 3. Se pune sincronizate. Evident, se schimba nostru exemplu dintr-un câmp de clasă.
Metoda 4. Nu atingeți. Da, câmpul schimbă instanța a clasei, dar StringBuilder nu este thread-safe, dar metoda este privat și în cadrul clasei de apeluri nimeni. (Văzut undeva în Vechiul această metodă este posibil ca privat care cauza prin utilizarea unui tambur și vrăjitoria, dar nu nifiga înțeleg, și nu cred că a fost luată în considerare în pregătirea problemei)
Metoda 5. Nu atingeți. Creează o nouă instanță a StringBuffer (), și lucrează cu ei, metoda nu se schimba argumentul.
Metoda 6. Pune sincronizate. Acesta funcționează cu ieșire în consolă. Se schimbă domeniul nostru de clasă probă.
Metoda 7. Nu atingeți. Cu resurse partajate nu funcționează. Nu se schimbă nimic. nimeni nu-l atinge.

Totalul cel puțin există în mod clar metode greșite și incorecte. (Cine a decis, eu ar trebui să știe ce)
Desigur, confundă tineri Padawans, iar tema este deja destul de complex.
Toate acestea sunt doar opinia mea personală. Întreb au întărit convingerea mea știind în justețea sau să explice unde și de ce am greșit. Multumesc anticipat.






Metoda 0 - sunt de acord,
Metoda 1 - atunci când un obiect este creat în metoda Solution recalculat valoarea param. Prin urmare, sincronizarea,
Metoda 2 - Sunt de acord,
Metoda 3 - sunt de acord,
Metoda 4 - variază câmp de clasă care în cadrul clasei este numită de 6,
Metoda 5 - Sunt de acord,
Metoda 6 - sunt de acord,
Metoda 7 - Sunt de acord.

De asemenea, aproximativ 4 metode trebuie adăugat că clasa de StringBuilder nu conține o sincronizare standard cum ar fi StringBuffer, deci 4 pentru a sincroniza metoda)

Clasa de soluție va fi utilizată toroane, adică alte clase externe (moștenite de la subiect) va utiliza o copie a soluției noastre, precum și Metod04 declarate ca fiind private. atunci putem fi siguri că nici o clasă externă sau clasa descendent din clasa noastră nu va avea acces la această metodă (nu se poate apela). Iată ceea ce nu este clar - de ce metoda de sincronizare care nimeni nu va face vreodată ... cu excepția faptului că singura clasă de soluții în sine, în care unele metode publice, dar implicit pare a fi considerat că desenul sau modelul clasei, având în vedere în problema este complet ...

Da, dar dacă obiectul nostru de clasă vor fi folosite sub rezerva filetului:
Ce ar putea să-l folosească va trebui să pună în aplicare interfața Runnable și, prin urmare, metoda de a alerga, și de exemplu, va fi numit method4
apoi se dovedește că mai multe fire de discuție pot avea acces la această metodă, în același timp (în cazul în care nu este sincronizat)

despre metoda1 mulțumiri - autentificate. Dar nu este foarte clar. - OK, atunci când numit metoda1 crea obiectul și cauza metode de 0 și 3, și se recalculează param, dar că param, va prinalezhat acest nou obiect. La rechemarea metoda va crea un obiect nou, etc. Am verificat - de 2 ori numit Metoda 1 - și a creat 2 obiect diferit

Nu știu cine și cum a luat această problemă, dar am înțeles-o așa - este necesar pentru a îndeplini condițiile problemei - și anume, pentru a sincroniza metodele pe care yuzayut „resurse“ comune și metoda +, care creează un nou obiect de clasa Solution. Condiția și a fost scris - Soluția Class Instalația va fi folosit fire, așa că ...

este servit ca un indiciu, și este destul de logic pentru mine.

Sarcina predat, dar răspunsul nu este așa. Vreau să înțeleg.