Chirurgia cranio-cerebrală minim invazivă
Tehnicile minim invazive impun utilizarea unei tehnologii ultramoderne. Endoscoapele operatorii de diverse tipuri, microscopul operator dedicat, neuronavigația, neuroelectrofiziologia, tehnicile avansate de anestezie, chirurgia cu pacientul treaz reprezintă armamentarium fără de care neurochirurgia prin "gaura cheii" nu ar fi posibilă. Folosind tehnicile de mai sus, tratăm un spectru larg de patologii cranio-cerebrale. www.neurohope.ro |
String pool
Last Updated: Nov 04 2014 00:40, Started by
mihaid89
, Oct 25 2014 20:09
·
0
#1
Posted 25 October 2014 - 20:09
Salut,
Revin si eu cu o intrebare despre String-uri. Care e diferenta intre: String s1 = "sir de caractere"; String s2 = "sir de caractere"; si String s1 = new String("sir de caractere"); String s2 = new String("sir de caractere"); In care dintre situatii se creeaza doar o referinta la s1? Unii zic intr-un fel, altii in alt fel si nu mai inteleg care e varianta corecta... Edited by mihaid89, 25 October 2014 - 20:11. |
#2
Posted 25 October 2014 - 20:19
Știi diferența între operatorul == și metoda equals? Folosindu-le afli exact răspunsul întrebărilor tale.
String s1 = "sir de caractere";Aici ”sir de caractere” este un literal constant. Poți să declari 100 de variabile tip String care să pointeze la același literal constant. Cele 100 de variabile vor fi identice (vor pointa către exact aceeași zonă de memorie). String s1 = new String("sir de caractere"); String s2 = new String("sir de caractere");Aici creezi noi obiecte, de fiecare dată. s1 și s2, deși vor avea aceeași valoare ca text, vor fi obiecte diferite în memorie. Folosește ce ți-am spus la început și te vei convinge. |
#4
Posted 25 October 2014 - 20:23
pai asa mi s-a parut si mie logic (ca doar il are pe "new" langa el). Dar eu fac un curs cu Laurentiu Spilca la Telecom Academy si el spune ca atunci cand este cu new se creeaza o referinta..
Este o diferenta intre atribuire directa si folosirea operatorului new. In cazul folosirii operatorului new, daca sirul de caracterea a mai fost anterior adaugat se creaza doar o referinta. Astfel, in exemplul de mai sus sunt doar trei zone de memorie alocate pentru cele patru siruri. Attached FilesEdited by mihaid89, 25 October 2014 - 20:27. |
#5
Posted 25 October 2014 - 20:26
Când ai
String s1 = new String("sir de caractere");s1 nu este obiectul în sine, ci este o referință la un obiect de tip String. Poți avea mai multe referințe la același obiect. |
#6
Posted 25 October 2014 - 20:58
Deci ce spune instructorul mai sus este gresit? Adica este tocmai invers..
|
#7
Posted 25 October 2014 - 21:10
Lasă ce zice instructorul. Vezi ce zice limbajul.
Ți-am spus la început: vezi diferența dintre operatorul == și metoda equals: http://stackoverflow...quals-confusion Cu astea te lămurești dacă instructorul zice bine sau nu. Sau poate ai înțeles tu greșit ce a zis instructorul. Sau poate a înțeles el greșit (se mai întâmplă). |
#8
Posted 26 October 2014 - 15:45
String s1 = "123"
se creeaza 1 pointer si un literal constant: 1) "123" - un literal constant 2) s1 - un pointer catre acel literal ------------------------------------------------ String s1 = new String("123") se creeaza un pointer, un literal constant si un obiect 1) "123" - literal constant 2) new String - obiectul 3) s1 - pointerul care obiect ------------------------------------------------ String s1 = "123"; String s2 = new String("123"); se creeaza un literal, un obiect si doi pointeri 1) "123" - literal 2) s1 - pointer catre literal 3) new String - obiect string 4) s2 - pointer catre obiectul string |
#9
Posted 03 November 2014 - 18:24
Mai revin cu o intrebare. Am facut o paleta de culori care imi returneaza 131072 de culori. Cum fac sa imi returneze toate cele 256^3 culori ca nu ii gasesc logica. Nu cred ca ar avea loc pe monitor oricum ca am 1366X768 = 1049088 pixeli pe monitor. Dar ma intereseaza cam cum arata codul ca sa le returneze.
Eu am scris asa: import java.applet.*; import java.awt.*; public class PaletaCulori extends Applet{ int x,y; static int nr_pixeli; Label l1 = new Label("culori"); public void paint(Graphics g){ for(int ii=0;ii<255;ii++){ for(int i=255;i>=0;i--){ g.setColor(new Color(i,y,0)); g.drawLine(x,y,x,y); x++; nr_pixeli++; } for(int i=0;i<255;i++){ g.setColor(new Color(0,y,i)); g.drawLine(x,y,x,y); x++; nr_pixeli++; } x=0; y++; nr_pixeli++; } } public void init(){ add(l1); new Thread(){ public void run(){ while(true){ try{ Thread.sleep(5000); l1.setText(""+nr_pixeli); }catch(InterruptedException e){} } } }.start(); } } |
#10
Posted 03 November 2014 - 19:15
culoare = 0
for i = 0 .. 4096 for j = 0 .. 4096 pixel[i, j] = culoare++ |
|
#11
Posted 03 November 2014 - 19:43
Quote 256^3=16777216 @mihaid89, ce ai vrut tu sa faci sunt 3 bucle una il alta, nu doua bulce in a-III-a, asa cum ai facut tu = 256 * (256+256) |
#12
Posted 04 November 2014 - 00:40
dani.user, on 03 noiembrie 2014 - 19:15, said:
culoare = 0 for i = 0 .. 4096 for j = 0 .. 4096 pixel[i, j] = culoare++ Da sunt 4096 de pixeli pe orizontala si 4096 pe verticala, dar nu stiu cum sa fac sa generez patratul de culori MarianG, on 03 noiembrie 2014 - 19:43, said:
@mihaid89, ce ai vrut tu sa faci sunt 3 bucle una il alta, nu doua bulce in a-III-a, asa cum ai facut tu = 256 * (256+256) Nu m-am exprimat eu bine.. Vreau a fie ca un spectru de lumini, sa fie intrepatrunse culorile. Edited by mihaid89, 04 November 2014 - 00:45. |
Anunturi
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users