Arhiva

Archive for august, 2009

Mi s-a luat (și) de Metrorex

august 31, 2009 Alex Chiri 1 comentariu

Pe scurt:

  • Azi a fost a nu știu câta oară când era metroul plin ochi și nu mergea aerul condiționat;
  • Dimineața metrourile pe M1 vin la minim 7-8 min, la Crângași și Victoriei e omor;
  • Boii, care se grăbesc să își proptească curul pe scaun, chiar și pentru o stație, te împing de parcă am fi la cursa “care prinde primul loc pe scaun”;
  • Visătorii, care uită de ei în ușă, parcă au o plăcere să fie dați la o parte de oamenii care vor să iasă pe peron.
  • Vocea tipei, care îmi aduce aminte de ‘nșpe ori că pasajul de la Unirii e închis (și de asta eu ocolesc), că s-au schimbat numele a nu știu câte stații, iar în final ne amintește cât de mult îi pasă Metrorexului de noi.
Categories: Imbecilisme Tags: ,

Ducu Bertzi și Florian Pittiș în concert

Albumul concertului celor doi se poate asculta integral pe site-ul radio3net (vedeți un banner ceva mai jos in pagină). O fi de ceva vreme linkul pe site-ul radio3net, dar eu abia acum l-am văzut. Oricum, un concert foarte bun.

Categories: Muzica Tags: ,

Site-ul Microsoft și versiunile lui locale

Se pare că cei de la Microsoft au făcut ceva modificări la imaginea principală dintr-o pagină a site-ului lor în varianta poloneză. Imaginile și articolul de pe Engadget le găsiți aici.

Ce nu înțeleg eu e, de ce l-au “albit” pe tipul din centru pentru polonezi?

Că nu au făcut treaba până la capăt e altă poveste. Dacă mă uit bine parcă nici imaginea originală nu arată prea naturală. Oare după ce considerente au ales persoanele din imagine?

Update: Greșeala Microsoft a încurajat și pe alții să producă propria versiune a acelei pagini. Vedeți la TechCrunch.

Categories: Internet Tags: ,

G1, noul “gunoier” al Java

Este foarte posibil ca în următoarea versiune de JVM să fie lansat un  nou “garbage collector”. Acesta ar aduce îmbunătățiri la colectarea în timp real a resurselor redundante, însă creatorii lui nu garantează că în anumite situații nu va afecta performanțele aplicației.

Citiți mai multe aici.

Categories: Java Tags: ,

Bruce Eckel despre Google Chrome Browser/OS

Un articol foarte interesant despre Google Chrome OS în care Bruce Eckel dezbate impactul acestui sistem de operare asupra consumatorului dar și a programatorului web.

Tendința globală pare să fie cea de promovare a netbook-urilor, dispozitive de dimensiuni mici cu resurse mai puține. Eckel crede că Google va lua fața Microsoft prin Chrome OS și că utilizatorul obișnuit va aprecia o interfață mai simplă și mai rapidă decât a Windows-ului (rămâne de văzut dacă e într-adevăr așa).

Mai sunt câteva aspecte discutate de Eckel în articol și merită citit (mai ales că e destul de scurt :D ).

Categories: Internet Tags: ,

Quote no. 7

Doing nothing is very hard to do … you never know when you’re finished.

Leslie Nielsen

Categories: Quotes Tags: ,

Call-by-reference sau call-by-value în Java?

Cei care ați făcut C sau C++ vă aduceți aminte de așa numitele transmiteri de parametri prin valoare sau prin referință. În Java nu există ‘sau’ ci doar call-by-value, indiferent de tipul parametrului.

În momentul în care apelăm o metodă cu parametrii primitivi atunci valoarea lor este transmisă parametrilor formali din metodă. În cazul unor obiecte, valoarea referință este transmisă parametrilor formali și nu obiectul cu totul. Ceea ce înseamnă că și parametrul formal, dar și parametrul inițial din apel vor referenția același obiect din memorie. Acest lucru are cel puțin două consecințe:

  1. Orice modificări făcute asupra stării obiectului referențiat de către parametrul formal, vor fi vizibile și după încheierea apelului metodei;
  2. Dacă modificăm parametrul formal din metodă(deci nu starea obiectului referențiat de el), modificarea nu va fi vizibilă după ieșirea din apel.
   1: public class Test {

   2:     public String rezultat = "bun";

   3:     public Test() {

   4:         System.out.println("Constructor din Test");

   5:     }

   6:     

   7:     public void schimba(Test tst) {

   8:         tst.rezultat = "rau";

   9:         tst = null;

  10:     }

  11:     

  12:     public static void main(String[] args) {

  13:         Test tst = new Test();

  14:         System.out.println(tst.rezultat);

  15:         tst.schimba(tst);

  16:         System.out.println(tst.rezultat);

  17:     }

  18: }

După compilare și rulare, acest program va afișa:

Constructor din Test

bun

rau

La linia 8 se modifică starea obiectului Test referențiat de parametrul formal tst, iar la linia 9 se asociază lui tst valoarea null. Modificarea asupra atributului rezultat se poate observa la ieșirea din apelul metodei schimbă.

Metode cu număr de parametri variabil

Începând cu Java 1.5 a fost introdusă facilitatea de a creea metode cu număr de parametrii variabil. Astfel de metode sunt numite metode cu aritate variabilă și pot permite apeluri cu un număr mai mare de parametri decât parametrii formali din semnătura metodei.

Pentru o metodă cu aritate variabilă, ultimul parametru formal trebuie declarat în felul următor:

<tip>… <nume parametru formal>

Prin urmare, în semnătura unei metode cu aritate variabilă putem avea un singur parametru formal ca mai sus și acesta trebuie să fie ultimul în lista de parametri formali. De asemenea, o altă consecință este că parametrii care pot varia ca număr sunt de același tip.

Parametrul formal ce variază este, de fapt, un array care este umplut cu parametrii dați în plus la apel. Prin urmare, următoarele semnături ale metodei angajare sunt considerate identice:

public void angajare(String… candidati);

public void angajare(String[] candidati);

Dacă cele două semnături sunt considerate identice, în momentul în care am încerca să facem overload la prima formă cu a doua(sau invers), am primi eroare la compilare.

Categories: D'ale SCJP-ului Tags: ,

Vedetele noastre fără inhibiții

august 21, 2009 Alex Chiri 1 comentariu

O prezentare unică, fără precedent a vedetelor din România. Câte una pe zi, azi Nicolae Guță, mâine, cine știe! A se vizualiza pe stomacul gol!

Declararea și inițializarea de Array

După cum bine se știe un Array, în Java, se poate declara în felul următor:

int[] numere[] = new int[10][10];

Parantezele pătrate se pot pune ori la tipul de date, ori la numele variabilei, ori la amândouă. De asemenea dimensiunea poate lipsi la ultimele dimensiuni ale array-ului. Deci aș fi putut scrie și așa:

int[] numere[] = new int[10][];

Există două modalități de a face declararea și inițializarea unui Array:

  1. int[] numere = new int[] {1, 2, 3, 4};
    Atenție: cand se face inițializarea array-ului nu se mai trece dimensiunea!
  2. int[] numere = {1, 2, 3, 4};
    Acesta este un bloc de inițializare, care poate fi folosit în locul liniei de mai sus, are același efect.

Diferența între cele două modalități este că cea de-a doua nu este o expresie și nu poate fi folosită în felul următor:

int[] numere;

numere = {1, 2, 3, 4}; //nu e ok

numere = new int[] {1, 2, 3, 4}; //e ok

Categories: D'ale SCJP-ului Tags: , ,