CURS JAVA Fundamente
CRISTIAN OLARU
http://olaru.blogspot.com
Cuprins
1. Introducere2. Tipuri de date3. Structuri de control4. Clase si obiecte5. Alte constructii6. JDBC7. Servlets8. JSP9. Struts10. ANT
1. INTRODUCERE
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
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
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 …
2. TIPURI DE DATE
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
2.2 Domenii valori
Tipuri primitive
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
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”) ;
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
3. STRUCTURI DE CONTROL
a. Alternativei. ifii. switch
b. Repetitive1) while2) do 3) for
c. Altelea. breakb. continue
4. CLASE SI OBIECTE
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
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
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
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
5. ALTE CONSTRUCTII
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
5.2 Ierarhia de exceptii
Ierarhia de exceptii
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
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()
5.5 Colectii - interfete
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
6. JDBC
Java Database Connectivity
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
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
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
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().
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
Top Related