Java termeni esentiali 

Java Software Development I exam 1Z0-803 si 804
Java Lexicon

Teodor Iancu, 2015 version. 0.3

A   B   C   D   E   F   G   H   I   J   K   L   M   N   O   R   S   T   U   V   Z   X   Y  nesortate


A.

Abstract Class
O clasa abstracta este o clasa generalizanta si simplificanta
- nu poate fi instantata (nu se pot obtine obiecte)
- nu poate fi instantiata (direct ci numai in subclasse)
- poate avea atat methode abstracte cat si neabstracte
- o singura methoda "abstract" intr-o classa, face ca intreaga classa sa devina abstracta
- Prima classa concreta care extinde o classa abstracta trebuie sa implementeze toate methodele abstracte ale acesteia. (numai overridden NU si overloaded ?)
- Methodele unei clase abstracete nu au corp si se termina cu ;

abstract class A {
abstract public String goUp();
   }

Access Modifiers (controleaza accesibilitatea clasei si a membrilor sai in/din afara clasei si packetelor) :
public
protected
default
private

Nonacces Modifiers (schimba proprietatile default a claselor si membrilor sai):
abstract
final
static

Array
- Arrays pot primi primitve s-au obiecte, dar un array in sine este mereu el insusi un obiect
- Un Array este un obiect
- Elementele unui array de objecte NU sant create automat pe cand primitvele primesc valori default
- Un array de obiecte poate stoca orice obiect care trece testul IS-A (s-au instanceof()) al tipului de obiect declarat (ex. daca Pisica extends Animale atunci un obiect "Pisica" pote intra intrun array Animale)
- Ultimul element dintr-un array se acceseaza cu ajutorul lui length -1
- o variabila byte poate fi acceptata intr-un array de int

Passing Arrays to methods
- When passing an array to a method, the reference of the array is passed to the method

char[] myPopulatedArray = {'a', 'b', 'c', 'd', 'e'};
length = 1 2 3 4 5      // .length is 5
 index = 0 1 2 3 4      // index
(zero basiert)

int length = myPopulatedArray.length;                   // is 5
int lastIndex = myPopulatedArray.length - 1;         // is 4
char lastItem = myPopulatedArray[myPopulatedArray.length -1];      // is 'e'

Two-dimensional array

- length
String[][] data = new String [9][200];
System.out.println(data.length); // 9
System.out.println(data[0].length +" "+ data[1].length +" "+ data[8].length); //200 200 200
200 200 200

String[][] data = new String[9][200];
System.out.println(data.length -1); // 8
System.out.println(data[0].length -1); //199

ArrayLists
- este un "resizable array"
- poate primi numai objeke nu si primive (wrapper lasa numai impresia de primitive)
- pot contine "entries" duplicate




C.

Class
- Intr-un fisier de cod sursa, nu poate exixta decat o singura classa declarata public iar numele classei trebuie sa corespunda cu numele fisierului (Dog.java === public class Dog{})
   dar poate contine orce nr de classe, interfatesi enums, nepublice
- Putem avea acelasi nume de classa, dar in pakete diferite
- O classa nu poate fi si final si absttract java-kurs
- O classa final nu poate fi mostenita

-  A class "implements" an interface. It does not "extend" an interface.
-  Any class, whether abstract or concrete, can implement any interface.
-  A concrete class can be extended by an abstract or a concrete class.

CLASS ACCESS CONTROLS
Class Access Modifiers

- Classes au doi access modifiers: public, si default (default este control level)
- Classes au 1 access level: default (package acces)
- O classa cu default acces este vizibila numai de clasesele din acelasi packet

Class Nonacces modifiers
- final, abstract, si strictfp

Constructors si Instantiation
- Chiar si classele abstracte au un constructor
- Constructorii trebuiesc sa aiba acelasi nume cu classa
- Constructorii nu au return type (daca vezi in cod asa ceva, este vorba despre o methoda care are acelasi nume cu classa)
- Constructori pot folosi oricare acces modifiers (default (fara declarare) si inkl. private)
- Constructori NU pot fi: static, final s-au abstract
- Instanz members sint accesibili numai dupa executia super constructor
- Clasele abstracte au constructori care se executa cand se initializeaza o subclasa concreta
- Interfaces nu au constructori

- Constructori nu pot fi mosteniti (de accea nu se pot suprascrie)
- Un Constructor nu poate fi invocat direct decat de un alt constructor (prin super() sau this())         
-  in cazul this()
        - trebuie sa apara primul in statmentul  constructor
        - this() si super() nu pot aparea in acelasi constructor

A constructor can access the non-static members of a class.
(A constructor is non-static, and so it can access directly both the static and non-static members of the class.)   ??


E.

Encapsulation
- instant variabilile sint protejate prin "private" implementarea numai prin geter si seter
IS-A se refera la mostenire(extends) s-au implementare(implements) O masina ESTE-UN vehicol, Dacia este o masina ESTE-UN Animal (asadar o dacie este o masina si este si un vehicol)
HAS-A inseamna o instanta a unei clase "has a" referenta la o instanza a unei altei clase s-au ale aceleiasi classe. O masina ARE-UN volan

Enums
- este specificarea unei liste de constante asigurate unui anumit tip (luni, marti, sant de constante de tip saptamana)
- un enum nu este un string s-au int ci de tipul declarat javakurs
- un enum poate fi declarat intr-o class proprie s-au ca membru intr-o clasa dar niciodata intr-o metoda
- Un enum declarat in afara unei clase, trebuie sa NU fie marcat ca fiind: static, final, abstract, protected s-au private
- enum pot contine: constructori, metode, variabile, "constant-specific class bodies"
- constantele enum pot trimite argunente la constructorul sau folosind sintaxa: IANUARIE(1), unde literarul 1 este "passed" constructorului eunm
- constructorul enum poate avea argumente iar acestea pot fi suprascrise
- constructori enum nu pot fi NICIODATA invocati direct in cod, ei sant chemati automat cind un enum este initializat
- semicolons ; la sfarsitul declaratiei sint optionale
- MyEnum.value() returneaza un array al valorilor din MyEnums




F.

Floating-point numbers este implicit double (64 bits)

for() daca este true, se executa statmentul si pe urma sa face iteratia
++ -- STATMENT si pe urma x++ x-- s-au  ++x --x




I.

I/O

  Binar Text
Input InputStream Reader
Output OutputStream Writer
     

DataOutputStream    BufferedOutputStream  FileOutputStream .../myFile.dat
      writeIn(int i)
      writeUTF(String s)

  DataInputStream  BufferedInputStream  FileInputStream   ../myFile.dat
        readInt()
        readUTF()

 PrintWriter  BufferedWriter  FileWriter .../myFiele.txt
       print()
       println()

←  BufferedReader ←  FileReader  ../myFile.dat
         read()
         readLine()

DataOutputStream out = new DataOutputStream(new BufferedOutputStream(new FileOutputStream(fileName.bin))))
DataInputStream in = new DataInputStream(new BufferedInputStream(new FileInputStream(fileName.bin))))

if() Statment
- acoladele sant optionale

import
- este numai pt a economisi apasare de tastatura
- * este continutul unei pagini

Identifiers
- pot incepe cu o litera, cu underscore _  sau cu (currecy character €,$, etc (pt cod generat automat))
- dupa primul caracter poate contine si cifre
- Clasele trebuie sa inceapa cu o litera mare si sa fie substantive (nouns) de ex.Account, PrintWriter
- Interfetele au nume de adjective (ex: Runnable)
- Methodele au nume combinat de substantiv si verb (ex. getBalance, doCalculation )
- Variabilele au nume scurt si descriptiv in CamelCase (buttonWidth)
- Constantele sant scrise cu litera mare separate de _ si sant static si final (MAX_VALUE)

Inheritance
- Mostenirea permite unei clase sa fie subclasa unei superclasse si sa-i mosteneasca variabilile public, protect si methodele accestei classe
- IS-A concept cheie pt. polinorfism, supraincarcare, suprascriere si casting


Interfaces

- Interfetele sant contracte despre ceea ce poate face o classa, dar nu arata nimic despre modul in care urmeaza sa o faca
- Interfetele pot fi implementate de orce classa in orcare ierarhie (arbore) de mostenire
- Interfatele sant 100% classe abstracte (indiferent daca foloseste modificatorul abstract s-au nu)
- Interfetele pot extinde NUMAI una s-au mai multe interfete I-E   (dar NU pot extinde classe)
- Interfatele NU pot implements nimic (interfate sau class)
- Eine Klasse muß alle Interface Methoden implementieren (oder selbdt abstract sein)
-  Interfetele pot avea NUMAI methode abstracte (neconcrete)
- Methodele Interfeteleor sant obligatoriu public si abstract (by default declarearea este optionala)
- Methodele Interfeteleor trebuie sa NU fie static, final, private s-au protected
- Pt ca mehtodele interfatelor sant abstract nu pot fi final, strictfp s-au native
- Constantele si Variabilile interfatelor sant obligatoriu public static si final (declarearea si ordinea este optionala) putem spune ca Interfaces pot declara numai Constante (nu si instanz variabile)
- O clasa abstracta poate implementa o interfata
- O clasa abstracta nu trebuie sa implementeze methodele interfatei (dar prima subclasa concreta trebuie)
- Interfetele pot extind una s-au mai multe interfate
- Interfetele NU pot extinde o classa
- Interfetele NU pot implementa classe s-au interfete
- Interfaces NU au constructori

abstract interface A{
public abstract void oMethoda(); (Abstrakte öffentliche Instanzmezhoden)
public static final int nr = 2;  (Öffentlichen Klassen Konstanten)

Initialization Blocks
- static {bla bal }se foloseste pt cand vrei ca acel cod sa fie executat numai o data la incarcarea classei
- fara nimic {bla bla } se executa la fiecare noua instanta imediat dupa ce superconstructorul a fost executat
- variabilile din bloc sant local variable




L.

Literal un literal este o valuare fixa care nu are nevoie de nici o operatiune si pentru afi asigurata unei variabile de orice fel

Local Variables
- Local variables nu au valori "default" de accea trebuiesc initializate inainte a putea fi folosite (int t = 3;)
- Local variables (methods variables) traiesc in STACK
- Local variable (adica declarate intr-o methoda) declarations nu pot avea acces modifiers
- final este singurul modificator disponibil la "local variabile"




M.

Modifiers in Java

element Data field Method Constructor Class Interface
modifier top level
(outer)
nested
(inner)
top level
(outer)
nested
(inner)
abstract no yes no yes yes yes yes
final yes yes no yes yes no no
native no yes no no no no no
private yes yes yes no yes no yes
protected yes yes yes no yes no yes
public yes yes yes yes yes yes yes
static yes yes no no yes no yes
synchronized no yes no no no no no
transient yes no no no no no no
volatile yes no no no no no no
strictfp no yes no yes yes yes yes

Access Protection Modifiers in Java (Visibility)

 
class \ have access to private
elements
default
elements
(no modifier)
protected
elements
public
elements
own class yes yes yes yes
subclass - same package no yes yes yes
class - same package no yes yes yes
subclass - another package no no inheritance yes
class - another package no no no yes


 

 Precedenta:

int x = 1;
int y = x++ + x; //3

int x = 1;
int y = x + x++; //2

4 + 20 / (3 - 1) * 2 //24
if (x < 100) && (x > 10) // cu paranteze s-au && nu are ce cauta acolo

true || true && false // true (&& are prioritare inainte la ||)

 

main()
- main() pate fi un nume de metoda oarecare (in conbinatie cu public static void main (String[] args))
- main() poate fi suprascrisa


Methods

- Methods arguments are always copies
- prima litera mica, camelCase si sa fie Verb + Substantiv (ex.getBallance())

 

MEMBER ACCESS MODIFIER

4 Acces modifiers: public, protected,default, private (access modifiers NU se aplica niciodata la local variabile - de fapt la local var nu se aplica niciodata un modificator cu o singura exceptie final)
Nonacces modifiers: final, abstract; strictfp(force floating points)

- Methodele si instance variables sant cunoscute ca "members"
- Members pot folosi toate cele patru acces levels: public, protrected, default si private
- Accesul members se face in doua forme:
    - Codul dintr-o clasa poate accesa membri altor classe
    - O subclass-a poate mosteni membri superclass-ei sale
- Daca o clasa nu poate fi accesata nici membri ei nu pot fi accesati
- Vizibilitatea clasei trebuie clarificata inainte de vizibilitatea membrilor
- public members pot fi accesati de toate classele chiar si din alte pakete
- Daca un membru ale unei superclasse este public, subclassele sale or sa le mosteneasca, indiferent in ce pakete se afla
- Accesarea membrilor fara "dot operator" se poate face numai daca se afla in acceasi classa
- this. se refera mereu la obiectul care ruleaza actual
- this.oMethoda() este sinonim cu oMethoda()
- private members se pot accesa numai de codul din acceasi clasa
- private members nu sant vizibili in afara de propria classe (asa ca private members nu se pot mosteni)
- private methods are not inherited at all so there is no question of overriding a private method.
- private methods nu pot fi suprascrise
- default si protected members difera numai daca sant implicate subclasele
        - default members pot fi accesati numai de clasele din acelasi paket
        - protected members pot fi accesati de toate clasele din accelasi paket, PLUS in subclase indiferent de paket ( prin mostenire (extends) DAR NU SI PRIN  INSTANTIERE)
       - Atentie daca o clasa aflata in acelasi paket cu subclasa instantiaza subclasa, NU are acces la membri protected mosteniti de aceasta subclasa (cu exceptia subclaselor subclaselor)
       - protected = package + kids (subclase)

Other Modifiers-Members
- final - Methodele final mu pot fi suprascrise in subclase
- abstract - Methodele abstract sant declarate cu o semnatura, tip de returnare,optional clauze throw, dar nu pot fi implementate (nu contin cod functional )
se fol. pt a forta o subclassa sa le implementeze (datorit methodei abstracte clasa respectiva devine si ea abstracta )
- Methodele abstract se termina cu ; (nu folosesc acolade {})
- O methoda nu este abstracta daca:
        - nu este declarata "abstract"
        - are paranteze
        - POATE (dar nu trebuie) sa aiba cod intre paranteze
- Prima clasa concreta care extinde o clasa abstracta trebuie sa implementeze toate methodele abstracte ale acelei clase abstracte
- Clasele abstracte nu trebuie sa implementeze methodele abstracte din superclassa abstracta implementata DAR prima clasa concreta trebuie sa implementeze TOATE methodele abstracte din TOATE clasele abstracte mosteite
- abstract - Methodele abstract trebuiesc fi implementate de subclasse, asa ca trebuiesc fi mostenibile, din acest motiv:
        - java-kurs methodele abstracte nu pot fi private
        - methodele abstracte nu pot fi final
Synchronized Methods
- indica faptul ca acesta metoda poate fi accesata doar de un un singur thread de-o-data
- Modificatorul synchronized se aplica numai la methode si "code blocks"
- Modificatorul synchronized poate folosi oricare controlor de acces si poate fi marcat si final
- native - este un modifier si se aplica numai la methode si se termina cu (); Modificatorul native se poate aplica numai la methode
    - implementeaza cod nativ (ex C)

- strictfp - Modificatorul  strictfp poate fi aplicat numai pt. classe si methode

Local Variables
Instantz Variables
Methods
final
final
final
public
public
protected
protected
private
private
static
static
transient
abstract
volatile
syncronised
strictfp
native

- Denumirea parametrul unei methode nu poaate fi la fel cu denumirea unei local variabile (method variable)
- Class variable(static) si instanz variable nu pot avea acelasi nume

 

Math.random()

int zufallszahl = (int)(Math.random() * (max - min) + min); // between min and max.
int zufallszahl = (int)(Math.random() * (5 - 2) + 2); // >= 2, < 5

zufallszahl = Math.random(); // >= 0.0, < 1.0 (float, double)
int zufallszahl = (int)(Math.random() * 40); // (intre 0 si 39) // >= 0, < 40 (exclusiv) sinonim cu
int zufallszahl = (int)(Math.random() * (39 + 1)); // (intre 0 si 39) // >= 0, < 40 sinonim cu ex de sus

int zufallszahl = (int)(Math.random() + 0.5) // 0 OR 1




N.

nested classes este sinonim cu inner classes




O.

Objects
- obiejectele (inkl. instanz variables) traiesc ins Heap

Overrriding and Overloading
- Methodele pot fi suprascrise si supraincarcate
- Constructori pot fi numai supraincarcati
- Methodele pt a fi suprascrise trebuie sa indeplineasca urmatoarele conditii:
        - trebuie sa aiba acelasi lista de argumente
        - acelasi return typ (cu exceptia "covariant typ = unde return typ poate fi o subclasa")
        - Nu trebuie sa aiba accesori de modificare mai restrictivi dar mai lejeri da
- Methodele private nu pot fi mostentite
private methods are not inherited at all so there is no question of overriding a private method.
- O subclassa foloseste super.overridenMethodnName() pt. a folosi versiunea mehodei din superclassa
- Methodele pt a putea fi supraincarcate trebuie sa indeplineasca urmatoarele conditii:
        - lista de argumente trebuie sa fie diferita
        - Poate avea return typ diferit numai daca si lista de argumente este diferita
        - Poate avea acces moodifiers diferit
        - Poate "throw" exceptii diferite
- Polimorfismul se poate aplica numai la suprascriere nu la supraincarcare
- Object type determina determina ce methoda este folosita la compilare

If there is another method with the same name but with a different number of arguments in a class then that method can be called as overloaded.




P.

Polymorphism
- Tipul reference variabile(nu tipul obiectului) decide ce mehtoda va fi folosita




R.

Return Types

- Methodele supraincarcate isi pot sa isi schimbe return type (Methodele suprascrise nu (cu excepria covariantei)
- Obicects reference return type poate accepta "null" ca return value
- array este un return type legal (si ca declarare si si ca return type)
- Methods care au ca returnun type un object refernz, pot returna un subtype
- Methods care au ca return type o interfata, pot returna "any implementer"

- Comparearea Objekt Refernez Variabilelor se face cu = = , return true numai daca ambele referentz var se refera la acelasi obiect.
- Pt Compararea obiectelor se fol methoda equals()
- Compararea valorilor la Primitive Variables face cu = =




S.

Scope
Scope se refera la "lifetime-ul" unei variabile:
si anume patru basics scopes:
        - static variables live atata timp cit traieste clasa sa (Klassen Variable)
        - instanz variables exixsta atit cit obiectele sale (Object  Variable)
        - local variables live atata timp cit methoda este in stack (Methoden Variable)
        - block variables (ex for if) live pana la terminarea blocului

Source File Declarations Rules
- O sursa cod poate avea numai one public class
    daca codul contine o classa public, numele clasei (fisierului) trebuie sa fie acelasi cu numele classei
- Un fisier poate avea mai multe nonpublic class javakurs

Static Variable si Methods
- Methodele si variabilele statice nu sant legate la nici o instanta particulara a unei classe (independente de obiecte)
- Pt accesarea unui membru static al unei clase, nu este nevoie de instantarea acelei clase
- Exixta numai o singura copie a unei variabile statice si toate instantele impart aceasi copie
- methodele statice nu au acces direct la membri nonstatici
- O metohoda statica nu poate accesa instanz variabile (non statice) direct, pt a fi accesate trebuie folosit .dot operator.
- Membri NonStatici au acces la membri static dar Static nu are acces la nonStatic
- static method cannot be overridden by a non-static method and vice versa
- nu poate folosi this (apartine unui anumit obiect)

- Metodele statice au comportament unic in toate instantele
- static variable au o singura copie a valori in toate instantele
- toti membri statici apartin clasei nu a vreunei instante
- methodele statice nu pot fi suprascrise dar pot fi redefinite

- Static- atributele statice mai sant numite si "class fields" s-au "class methodos" pt ca apartin classei si nu a unei instante.

String and StringBuilder
   = = compara Strings reference pe cand methoda equals() compara valuarea in sine
- String este un obiect
- String este imutabila dar string referent variable nu sant
- String are o methoda java-kurs pe nume lengh() -- arrays au un atribut pe nume .length (A-A)
- String, StringBuilder, and StringBuffer - all are final classes.
- String methoden:
length()
concat()
http://www.tutorialspoint.com/java/java_strings.htm


StringBuilder delete(int start, int end)
substring(int beginIndex) // "unhappy".substring(2) returns "happy"

switch
- poate evalua numai: enums, byte, short, int, char si String         // NU boolean, long, float and double
- case trebuie sa fie un literal s-au final, ori o expresie constanta inkl enum, String
- default label nu este obligatoriu




V.

Variable Declarations
- Instant variabilile pot
        - avea orice controlor de acces
        -  pot fi marcate ca fiind final s-au transient
- Instant variabilile NU pot fi: abstract, synchronized, native, or strichtfp
- Este legal ca numele unei "local variable" sa fie indentica cu o "instant variable" (aceasta se numeste "shadowing")
- final variables pot avea urmatoarele proprietati:
        - final variables nu pot primi alte valori dupace a fost declarata
        - final reference variables nu poate sa se refere la un alt obiect dupa ce a fost declarat final
        - final variables trebuiesc fi initializate inainte de executarea constructorului
- Nu exixta object final, un object refence marcat ca fiind final NU inseamna ca acel obiect nu poate fi schimbat


 

Nesortate

Operator Precedence
Operators Precedence
postfix i++   i--                                                                                         RIGHT
unary ++i   --i   +i    -i     ~    !                                                                RIGHT
multiplicative *   /   %
additive +   -
shift <<   >>   >>>
relational <   >   <=   >=    instanceof
equality ==   !=
bitwise AND &
bitwise exclusive OR ^
bitwise inclusive OR |
logical AND &&
logical OR ||
ternary ? :                                                                                                  RIGHT
assignment =  +=  -=   *=   /=   %=   &=   ^=   |=    <<=    >>=    >>>=          RIGHT

 

public static void main(String[] args) VM

arrays au un atribut pe nume .length (A-A)

substring, indexOf() = IE Inclusiv - Exclusiv (ultimul index fiind exclusiv se afiseaza adaugand un nr la index String s = "0"; System.out.println(s.substring(0, 1));

PI = packet import

Animal doina = new Horse();
Animal --> Compiler Time //
Horse --> Run Time // DR dreapta runTime

- Suprascris = Run Time // OR Overwrite runTime
- Supraincarcat = Compiler Time

The concept is : variables are shadowed and methods are overridden.

^ logical XOR, return true daca exact un operand este TRUE

-2 * -1 = 2 // -1 das inverseaza primitivele

+ * + = +
+ * - = -
- * + = -
- * - = +

Packetul java.lang este importat automat

String, StringBuilder, and StringBuffer - all are final classes.

Math.pow(2, 3); // 8.0 //atentie typ double

int x = 0; int y = x = x + 1; //1

int x = 1; y = (x > 2) ? 10 : -10; //-10

int a = 4 + 20 / 2 * 2; // 24

int x, int y; // Wrong (de doua ori int)

int month = 09; // Wrong (octal fara cifra 8 si 9)

class Beta extends java.util.HashMap{} // este admis

modulo operator is typically used with integer operands, it also works for floating-point values

Octal values is base 8 (adica 0 - 7)
Octal literals are with a leading zero, for example 035 and 02764523 (fara 8 si 9)

 

ANDROID

Log.e("bezeichner", "Fehlerbeschreibung") // e error, d debug

Activitys sant App screens


Links:
The Java® Language Specification
  James Gosling

Engineering ToolBox
  Decimal, binary, octal and hexadecimal numbers

ASCII -Table

Java Programming Cheatsheet

Java Fundamentals Tutorial

 


Java ™ and all Java-based trademarks are trademarks of Oracle®, Inc. in the United States
Primavera-Kassensysteme Die Professionelle und Bedienungsfreundliche Registrierkasse