Documente Academic
Documente Profesional
Documente Cultură
Colectarea
Mecanism prin care JVM (Java Virtual Machine) isi realizeaza managementul
memoriei
Lansarea voluntara a colectarii se poate realiza prin metodele statice ale
clasei utilitare System:
public static void gc(); // Lansarea voluntara a GC in incercarea de finalizare a
tuturor obiectelor fara referinta
Clasa Object
Tratarea exceptiilor
Erorile se impart in doua tipuri: checked si unchecked dupa cum tratarea lor este
obligatorie sau nu (adica trebuie mentionate in clauzele throws ale
metodelor/constructorilor si trecute prin blocul try-catch).
Ierarhia:
Throwable - Superclasa tuturor claselor de erori
Error - Erori grave de tip unchecked cauzate de regula de mediu
Exception - Exceptii corespunzand unor erori obisnuite de tip checked mai
putin cele de tip RuntimeException care sunt de tip unchecked si aruncate de JVM
Metode ale clasei Throwable:
public String getMessage() ; // intoarce mesajul de tip String asociat erorii
public StackTraceElement[] getStackTrace(); // intoarce elementele din stiva de executie
reprezentand metode aflate in executie la momentul aruncarii exceptiei
public String toString() ; // intoarce mesajul de eroare si numele clasei
public Throwable getCause(); // intoarce cauza care a generat eroarea atunci cand
eroarea a fost provocata de alta. Instantierea obiectului Throwable trebuie sa se fi facut
printr-un constructor care sa primeasca si referinta la eroarea cauza.
try{
// secventa
}
catch(ClasaExceptii1 e1){secventa1}
...
catch(ClasaExceptiiN eN){secventaN}
finally{secventaFinal}
Clonarea obiectelor
Obiectele clonabile trebuie sa fie instante ale unor clase care implementeaza
interfata Cloneable;
protected Object clone() throws CloneNotSupportedException
public Object clone(){
try {
return super.clone();
}
catch(CloneNotSupportedException e){
System.out.println("Eroare la clonare!"+e);
return this;
}
}
env - referinta la mediul JNI prin care se asigura accesul la functiile JNI
obj - referinta la obiectul Java
JNIEXPORT, JNICALL - macrouri utilizate pentru conformitatea codului C++
(conventii de apel, parametrizari pentru compilarea si linkedidarea codului
C++)
3. Implementarea functiilor C++/C si construirea bibliotecii cu incarcare
dinamica dll.
#include <jni.h>
#include "numeFisierPrototip.h"
JNIEXPORT tip JNICALL Java_numeClasa_metoda(JNIEnv *env, jobject
obj, listaParametrii)
{
....
[return;]
}
4. Incarcarea bibliotecii dinamice in aplicatia Java si rularea aplicatiei.
System.loadLibrary(numeDll)
Tip Java
Tip JNI
Descriere
boolean
jboolean
8 bits, unsigned
byte
jbyte
8 bits, signed
char
jchar
16 bits, unsigned
double
jdouble
64 bits
float
jfloat
32 bits
int
jint
32 bits, signed
long
jlong
64 bits, signed
short
jshort
16 bits, signed
void
void
N/A
Identificatori de tipuri
Tip Java
Signature
boolean
byte
char
double
float
int
long
void
object
Lnume_calificat_clasa;
tip[]
[tip
metoda
( tip_argumente) tip_returnat
Identificatorii de simboluri
Metoda
Semnatura
void f1()
()V
(IJ)I
boolean f3(int[])
([I)B
(Ljava/lang/String;I)D
(I[Ljava/lang/String;C)V