fundamentele limbajului java

31
CURS JAVA Fundamente CRISTIAN OLARU http:// olaru.blogspot.com

Upload: colaru

Post on 22-Nov-2014

9.862 views

Category:

Technology


9 download

DESCRIPTION

Introducere Tipuri de date Structuri de control Clase si obiecte Alte constructii JDBC

TRANSCRIPT

Page 1: Fundamentele Limbajului Java

CURS JAVA Fundamente

CRISTIAN OLARU

http://olaru.blogspot.com

Page 2: Fundamentele Limbajului Java

Cuprins

1. Introducere2. Tipuri de date3. Structuri de control4. Clase si obiecte5. Alte constructii6. JDBC7. Servlets8. JSP9. Struts10. ANT

Page 3: Fundamentele Limbajului Java

1. INTRODUCERE

Page 4: Fundamentele Limbajului Java

1.1 Istoric si caracteristici

1995 - Java se naste. Tata: James Goslings, Mama: Sun Microsystems

Distributii: JSDK, J2EE, J2ME Versiuni JSDK : 1.1…1.4, 5.0 (Tiger), prezent -

6.0(Mustang), viitor 7.0(Dolphin) Caracteristici: total orientat obiecte, suport

intern pentru fire de executie, complet specificat (JLS), case sensitive

Page 5: Fundamentele Limbajului Java

1.2 JVM

Compilare – trecerea din cod sursa (.java) in byte code pentru JVM (.class)

Executia – interpretarea byte code-ului in JVM Avantaje JVM – independenta de platforma,

servicii pentru codul executrat JSDK vs JRE vs JVM

Page 6: Fundamentele Limbajului Java

1.3 Instalare si utilizare

Instalare JDK, JRE Exemplu HelloWorld Compilare - javac, executie java, documentatie

standard - javadoc Prezentare IDE: Eclipse si IDEA IDE: debugging, javadoc, refactoring …

Page 7: Fundamentele Limbajului Java

2. TIPURI DE DATE

Page 8: Fundamentele Limbajului Java

2.1 Tipuri de date1

Limbaj puternic tipizat – tip cunoscut in momentul compilarii

Variabile constante si conventii de nume in Java

Tipuri: primitive (numerice si boolean), referinta (clase, interfete, tablouri)

Tipurile numerice: integrale (byte, schort, int, long, char), virgula mobila (float, double)

Conversii intre tipuri

Page 9: Fundamentele Limbajului Java

2.2 Domenii valori

Tipuri primitive

Page 10: Fundamentele Limbajului Java

2.3 Tipuri de date2

Infasuratori pentru tipurile primitive (Float, Double, Byte, Long, Short, Boolean, Character) – java.lang

Clasa Math, pachetul java.math Operatii cu numere mari: BigDecimal si

BigInteger Siruri de caractere – tipul String,

concatenare +, imutabilitate, StringBuffer - mutabil

Page 11: Fundamentele Limbajului Java

Immutable

Clasa String

1) String s=”abc” ; 3) String s2= s ;

s2 “abc”

The heap

String reference variable

String objects

String reference variable

s

“abcdef”

String objects

2) String s= s.concat(“def”) ;

Page 12: Fundamentele Limbajului Java

2.4 Tablouri

Sunt referinte – creare folosind operatorul new, length, indexare []

Lungime prestabilita Pot contine atat primitive cat si referinte

(spre deosebire de JCF) Clasa utilitara java.util.Arrays – sort, fill,

equals

Page 13: Fundamentele Limbajului Java

3. STRUCTURI DE CONTROL

a. Alternativei. ifii. switch

b. Repetitive1) while2) do 3) for

c. Altelea. breakb. continue

Page 14: Fundamentele Limbajului Java

4. CLASE SI OBIECTE

Page 15: Fundamentele Limbajului Java

4.1 Clase si pachete

Declararea unei clase, membri: atribute, metode, constructori

Public static void main Unitatea de compilare, pachete - fs Librarii vs. pachete, spatiu de nume,

package, include Incarcare dinamica ClassLoader,

CLASSPATH, jars

Page 16: Fundamentele Limbajului Java

4.2 Clase si obiecte in Java

Domeniul de vizibilitate al unei clase este intreg pachetul din care face parte

Modificatorii de acces unei clase: public, abstract, final

Obiecte: declarare, instantiere, initializare, operatorul new, constructori

Clasa Object: equals, hashCode, toString, clone Distrugerea obiectelor, garbage colector

Page 17: Fundamentele Limbajului Java

4.4 Mosteniri si interfete

Interfete – clase abstracte pure Implements, mostenire multipla – extends,

incapsulare Mosteniri

Semnificatia mostenirii, constructorii claselor derivate, late binding, polimorfism

Conversii intre tipuri referinta - cast, upcast

Page 18: Fundamentele Limbajului Java

4.3 Ascunderea implementarii

Modificatori de acces: private – numai in clasa in care e declart protected – acces via mostenire peste pachete public – acces de interfata package – la nivel de pachet

Membri si modificatori Modificatori atribute - static, final Modificatori metode – static, final, abstract Exemple JDK(Calendar) + patterns

Page 19: Fundamentele Limbajului Java

5. ALTE CONSTRUCTII

Page 20: Fundamentele Limbajului Java

5.1 Sistemul de exceptii

Suport intern pentru exceptii in limbaj Separa tratarea exceptiilor de codul obisnuit Tipuri de exceptii:

Exception – eroare generica Error – eroare de sistem – se prinde degeaba RuntimeException – eroare uzuala – nu trebuie prinsa in

mod uzual

Try, catch, finally, trows Exceptii proprii – de bussines: trow

Page 21: Fundamentele Limbajului Java

5.2 Ierarhia de exceptii

Ierarhia de exceptii

Page 22: Fundamentele Limbajului Java

5.3 Fire de executie Programare concurenta, operatii atomice, monitoare Incrementarea nu este operatie atomica; initializarea

simpla este (inclusiv referinte), inafara de double si long

Suport inclus direct in limbaj – clasa Thread, interfata Runnable

Sincronizarea operatiilor atomice folosind syncronize

Studiu de caz – colectiile sincronizate LocalThread

Page 23: Fundamentele Limbajului Java

5.4 Colectii

Java Collection Framework (JCF) – containeri de obiecte

Colectii: Collection (List, Set) pentru valori simple, Map pentru perechi cheie/valoare

Implementari uzuale: ArrayList (List), HashSet (Set), HashMap (Map)

Colectii sincronizate 1.1 – Vector (List), Hashtable (Map)

Parcurgerea colectiilor: Iterator Sortare colectii: Comparable – compareTo()

Page 24: Fundamentele Limbajului Java

5.5 Colectii - interfete

Page 25: Fundamentele Limbajului Java

5.6 Librarii standard

java.lang – Cloneable, Comparable, Runnable, Object, infasuratori, Math, Number, String, Thread, System, Throwable, Exception

java.util - colectii, Calendar - GregorianCalendar, Date, Timer, Locale, StringTokenizer

java.io – File, Reader, Writer, InputStream, OutputStream

java.lang.reflect – reflection API java.net – Socket, URL

Page 26: Fundamentele Limbajului Java

6. JDBC

Java Database Connectivity

Page 27: Fundamentele Limbajului Java

6.1 Introducere in JDBC

Prin JDBC se incearca realizarea unei interfete intre Java si baze de date

Pachetul din JDK: java.sql Pentru fiecare tip de SGBD este necesar un driver

(o librarie jar) care abstractiveaza conectivitatea classes12 pentru Oracle, jconnector pentru

MySQL clasa DriverManager, ce se ocupa cu inregistrarea

driverelor ce vor fi folosite in aplicatie

Page 28: Fundamentele Limbajului Java

6.2 Specificarea URL-ului

Sursa de date se specifica prin intermediul unei adrese numite JDBC URL care are urmatorul format jdbc:sub-protocol:identificator_baza_de_date

Exemple: jdbc:odbc:testdb jdbc:oracle:[email protected]:1521:testdb jdbc:sybase:testdb jdbc:db2:testdb

Page 29: Fundamentele Limbajului Java

6.3 Pasi in lucrul cu JDBC

1. Inregistrarea si incarcarea driver-ului

2. Crearea unei conexiuni folosind clasa

Connection

3. Interactiunea cu baza de date

folosind clasa Statement, PreparedStatement, CallableStatement

4. Receptionarea rezultatelor utilizand

metode ale clasei ResultSet

Page 30: Fundamentele Limbajului Java

6.4 Interogari

Un obiect Statement este cel care trimite cereri SQL catre baza de date

Pentru realizarea unei cereri folosim metoda executeQuery() a unui obiect din clasa Statement

Pentru crearea unui obiect Statement este folosit un obiect al clasei Connection

Prelucrarea rezultatului – ResultSet, decuplarea de baza de date

Obiectul ResultSet contine linii din baza de date pe care le parcurgem folosind metoda next().

Page 31: Fundamentele Limbajului Java

Referinte utile

0. Cristian Olaru: http://olaru.blogspot.com 1. Istoric - Java timeline:

http://www.javarss.com/java-timeline-10years.html 2. Download: http://java.sun.com/ 3. Specificatia limbajului: http://java.sun.com/docs/books/jls/ 4. Specificatia masinii virtuale: http://java.sun.com/docs/books/vmspec/ 5. Blog Gosling: http://blogs.sun.com/jag/ 6. Bruce Eckel - Thinking in Java: http://www.mindview.net/Books/TIJ/ 7.Eclipse: http://www.eclipse.org 8. IntelliJ IDEA: http://www.jetbrains.com/ 9. JavaDoc: http://java.sun.com/j2se/1.4.2/docs/api/index.html 10. Java Tutorial: http://java.sun.com/docs/books/tutorial/index.html 11. Forum curs: http://www.javaromania.com