• literali siruri de caractere
    Un literal sir de caractere este format din zero sau mai multe caractere �ntre ghilimele. Caracterele care formeaza sirul de caractere pot fi caractere grafice sau secvente escape ca cele definite la literalii caracter. Daca sirul este prea lung el poate fi scris ca o concatenare de subsiruri de dimensiune mai mica. Concatenarea sirurilor se face cu operatorul + ("Ana " + " are " + " mere "). Sirul vid este "". Dupa cum vom vedea, orice sir este de fapt o instanta a clasei String, definita �n pachetul java.lang.

Separatori

Un separator este un caracter care indica sf�rsitul unei unitati lexicale si �nceputul alteia. In Java separatorii sunt urmatorii: ( ) { } [ ] ; , . Instructiunile unui program se separa cu punct si virgula
Operatori


  • atribuirea: =
  • operatori matematici: +, -, *, /, %
    Este permisa notatia prescurtata de forma lval op= rval (ex: n += 2)
    Exista operatorii pentru autoincrementare si autodecrementare (post si pre)
    ex: x++, ++x, n--, --n
    Observatie: evaluarea expresiilor logice se face prin metoda scurtcircuitului (evaluarea se opreste �n momentul �n care valoarea de adevar a expresiei este sigur determinata)
  • operatori logici: &&(and), ||(or), !(not)
  • operatori relationali: <, <=, >, <=, ==, !=
  • operatori pe biti: & (and), |(or), ^(xor), ~(not)
  • operatori de translatie <<, >>, >>> (shift la dreapta fara semn)
  • operatorul if-else: expresie_logica ? val_pt_true : val_pt_false ;
  • operatorul , (virgula) folosit pentru evaluarea secventiala a operatiilor int x=0, y=1, z=2;
  • operatorul + pentru concatenarea sirurilor: String s="abcd"
    int x=100;
    System.out.println(s + " - " + x);
  • operatori pentru conversii (cast) : (tip_de_data) int i = 200;
    long l = (long)i; //widening conversion - conversie prin extensie
    long l2 = (long)200;
    int i2 = (int)l2; //narrowing conversion - conversie prin contractie

Comentarii

In Java exista trei feluri de comentarii:

  • Comentarii pe mai multe linii, �nchise �ntre /* si */.
  • Comentarii pe mai multe linii care tin de documentatie, �nchise �ntre /** si */. Textul dintre cele dou� secvente este automat mutat �n documentatia aplicatiei de catre generatorul automat de documentatie javadoc.
  • comentarii pe o singura linie care �ncep cu //.

Observatii:
  1. nu putem sa scriem comentarii �n interiorul altor comentarii.
  2. nu putem introduce comentarii �n interiorul literalilor caracter sau sir de caractere.
  3. secventele /* si */ pot sa apara pe o linie dupa secventa // dar �si pierd semnificatia; la fel se �nt�mpl� cu secventa // �n comentarii care �ncep cu /* sau /**.




Tipuri de date

In Java tipurile de date se �mpart �n doua categorii: tipuri primitive de date si tipuri referinta. Java porneste de la premiza ca "orice este un obiect". Asadar tipurile de date ar trebui sa fie de fapt definite de clase si toate variabilele ar trebui sa memoreze de fapt instante ale acestor clase (obiecte). In principiu acest lucru este adevarat, �nsa, pentru usurinta programarii, mai exista si asa numitele tipurile primitive de date, care sunt cele uzuale :

  • aritmetice
    • �ntregi: byte (1 octet), short (2), int (4), long (8)
    • reale: float (4 octeti), double (8)

  • caracter : char (2 octeti)
  • logic : boolean (true si false)

In alte limbaje formatul si dimensiunea tipurilor primitive de date folosite �ntr-un program pot depinde de platforma pe care ruleaza programul. In Java acest lucru nu mai este valabil, orice dependenta de o anumita platforma specifica fiind eliminata.
Vectorii, clasele si interfetele sunt tipuri referinta. Valoarea unei variabile de acest tip este, �n contrast cu tipurile primitive, o referinta (adresa de memorie) catre valoarea sau multimea de valori reprezentata de variabila respectiva.
Exista trei tipuri de date C care nu sunt suportate de limbajul Java. Acestea sunt: pointer, struct si union. Pointerii au fost eliminati din cauza ca erau o sursa constanta de erori, locul lor fiind luat de tipul referinta, iar struct si union nu �si mai au rostul at�t timp c�t tipurile compuse de date sunt formate �n Java prin intermediul claselor.