datubaze.files.wordpress.com€¦  · Web viewSee below for a more comprehensive tutorial on...

43
Programmēšanas valodu popularitāte pasaulē Kompānija TIOBE Software jau vairākus gadus veic pētījumus par programmēšanas valodu izmantošanu. TIOBE analīze balstās uz programmētāju meklēto informāciju vietnēs Google, Google Blogs, Yahoo!, Wikipedia, MSN un YouTube.

Transcript of datubaze.files.wordpress.com€¦  · Web viewSee below for a more comprehensive tutorial on...

Page 1: datubaze.files.wordpress.com€¦  · Web viewSee below for a more comprehensive tutorial on Swing. Deployment — How to package applications and applets using JAR files, and deploy

Programmēšanas valodu popularitāte pasaulē

Kompānija TIOBE Software jau vairākus gadus veic pētījumus par

programmēšanas valodu izmantošanu.

TIOBE analīze balstās uz programmētāju meklēto informāciju vietnēs Google,

Google Blogs, Yahoo!, Wikipedia, MSN un YouTube.

Page 2: datubaze.files.wordpress.com€¦  · Web viewSee below for a more comprehensive tutorial on Swing. Deployment — How to package applications and applets using JAR files, and deploy

Programmēšanas valodu popularitātes izmaiņas pēdējos gados

2011 2010 valoda izmaiņas

2

Page 3: datubaze.files.wordpress.com€¦  · Web viewSee below for a more comprehensive tutorial on Swing. Deployment — How to package applications and applets using JAR files, and deploy

Populārākās programmēšanas valodas dažādu firmu skatījumā (2010. gads)

3

Page 4: datubaze.files.wordpress.com€¦  · Web viewSee below for a more comprehensive tutorial on Swing. Deployment — How to package applications and applets using JAR files, and deploy

4

Page 5: datubaze.files.wordpress.com€¦  · Web viewSee below for a more comprehensive tutorial on Swing. Deployment — How to package applications and applets using JAR files, and deploy

5

Page 6: datubaze.files.wordpress.com€¦  · Web viewSee below for a more comprehensive tutorial on Swing. Deployment — How to package applications and applets using JAR files, and deploy

Programmēšanas valoda Java

"Write once, run anywhere"

Java ir firmas Sun Microsystems izstrādāta objektorientēta

programmēšanas valoda. Valoda, kuras sākotnējais nosaukums bija

Oak, tika veidota kā C++ aizstājēja, lai gan tās funkcionalitāte ir

tuvāka Objective C.

6

CC++ Java

Page 7: datubaze.files.wordpress.com€¦  · Web viewSee below for a more comprehensive tutorial on Swing. Deployment — How to package applications and applets using JAR files, and deploy

Java valodas un galveno pakešu izstrādātāji

Java valod tika radīta 1991. gadā kompānijā Sun Microsystems, kā daļa no Zaļā projekta (Green project). 1. Java programmēšanas valodas "tēvs" James Gosling.2. Hibernate (object-relation mapping) izstrādātājs Gavin King. 3. Spring paketes izstrādātājs Rod Johnson.4. Struts paketes izstrādātājs Craig Mcclanahan.5. JBoss paketes izstrādātājs Marc Fleury. 6. Java Collections Framework izstrādātājs Joshua Bloch.7. Test Driven Development un JUnit izstrādātājs Kent Beck.8. Tomcat un Ant izstrādātājs James Duncan Davidson.

Bija nepieciešami 18 mēneši, lai radītu strādājošu versiju. Atklātībā pirmo reizi tā tika laista 1994. gadā, bet 1995. gadā kļuva plašāk pazīstama pēc tam, kad Netscape paziņoja par nodomiem iekļaut tās atbalstu savā Navigator pārlūkprogrammā.

.

.

Javas tehnoloģiju izstrādes un pētniecības centri

7

Page 8: datubaze.files.wordpress.com€¦  · Web viewSee below for a more comprehensive tutorial on Swing. Deployment — How to package applications and applets using JAR files, and deploy

Java statistika (2010. gads)

8

Page 9: datubaze.files.wordpress.com€¦  · Web viewSee below for a more comprehensive tutorial on Swing. Deployment — How to package applications and applets using JAR files, and deploy

1. Lieto 6.5 miljoni programmatūras izstrādātāji.

2. 1.1 biljoni (miljardi) lietojumprogrammu izmanto Java tehnoloģijas.

3. Katru gadu tiek nokopētas 930 miljoni Java Runtime Environment vides.

4. 3 biljoni mobīlo telefonu lieto Javas programmas.

5. 100% Blu-ray atskaņotāji izmantoJavu.

9

Page 10: datubaze.files.wordpress.com€¦  · Web viewSee below for a more comprehensive tutorial on Swing. Deployment — How to package applications and applets using JAR files, and deploy

Java platforma

Java platforma

10

Lietojuma programma

Interfeiss (Aplication Programming Interfeiss)

Java virtuālā mašīna (Java Virtual Machine)

Operētājsistēma

Tehniskais nodrošinājums (hardware)

Page 11: datubaze.files.wordpress.com€¦  · Web viewSee below for a more comprehensive tutorial on Swing. Deployment — How to package applications and applets using JAR files, and deploy

Java platformas neatkarība

11

Page 12: datubaze.files.wordpress.com€¦  · Web viewSee below for a more comprehensive tutorial on Swing. Deployment — How to package applications and applets using JAR files, and deploy

Java – pilnvērtīga platforma

12

Page 13: datubaze.files.wordpress.com€¦  · Web viewSee below for a more comprehensive tutorial on Swing. Deployment — How to package applications and applets using JAR files, and deploy

Programmēšanas valody Java un Python izmantošanas shēma

13

Page 14: datubaze.files.wordpress.com€¦  · Web viewSee below for a more comprehensive tutorial on Swing. Deployment — How to package applications and applets using JAR files, and deploy

Tradicionālais programmu kompilēšanas process

Java programmu kompilēšanas process

14

Page 15: datubaze.files.wordpress.com€¦  · Web viewSee below for a more comprehensive tutorial on Swing. Deployment — How to package applications and applets using JAR files, and deploy

Java Run-Time Environment programmēšanas vide

Java Just In Time (JIT) kompilēšanas process

15

Page 16: datubaze.files.wordpress.com€¦  · Web viewSee below for a more comprehensive tutorial on Swing. Deployment — How to package applications and applets using JAR files, and deploy

Java programmas kompilācijas un izpildes process

16

Java pirmkods (source code)

Java baitkods (bytecode) Operētājsistēma

Tehniskais nodrošinājums

(hardware)

Tīkla nodrošinājums vai failu vadības

sistēma

Klases ielādētājs un baitkoda pārbaudītājs

Kompilators javac Java virtuālā

mašīna (JVM)Kompilators

Just in Time (JIIT)

Page 17: datubaze.files.wordpress.com€¦  · Web viewSee below for a more comprehensive tutorial on Swing. Deployment — How to package applications and applets using JAR files, and deploy

Klašu ielādētājs (class loader)

Nodrošina programmu koda drošu izpildi. Klašu ielādētājs un baitkoda pārbaudītājs noskaidro, vai baitkods ir pareizi izveidots. Tālāk to izpilda vienā no 2 veidiem:

1. Ar interpretatoru jeb JVM, kas baitkodu pārvērš platformatkarīgās instrukcijās rindiņu pa rindiņai.

2. Efektīvāka ir koda ģenerācija "pēc pieprasījuma" (JIT, just-in-time) - t.i. JIT kompilators "atceras", kuri Javas baitkoda gabali jau ir iztulkoti platformas atkarīgās instrukcijās un netulko tos vēlreiz.

3. Trešā iespēja būtu Javas kodu uzreiz kompilēt par platformas atkarīgām instrukcijām - tāpat kā C vai C++. Tas strādātu ātrāk gan par JVM, gan par JIT. Bet šajā gadījumā zustu vairākas Javas platformas priekšrocības, t.sk. koda izpildes lielāka drošība.

Lai gan JIT kompilatoru lietošana var paātrināt koda izpildi līdz pat 10 reizēm, bieži lieto interpretāciju ar JVM, jo programmas gan tiek pildītas lēni, bet JVM parasti ir mazākas prasības pret dzelžiem un tas ātrāk ielādējas. Sun Microsystems piedāvā populāru kombinētu risinājumu HotSpot, kam ir gan JVM, gan JIT iespējas.

17

Page 18: datubaze.files.wordpress.com€¦  · Web viewSee below for a more comprehensive tutorial on Swing. Deployment — How to package applications and applets using JAR files, and deploy

Baitkoda pārbaudītāja (bytcode verifier) funkcijas

1. Vai CLASS failu kods atbilst JVM specifikācijai.

2. Vai kods nepārkāpj Javas izejas kodā noteiktos ierobežojumus (piekļuves pārkāpumi: piemēram, mēģinājumi no ārpuses izsaukt funkciju, kas deklarēta kā "private" - var būt bīstami, it īpaši ja ļaunprātīgs kods neparedzētā veidā izsauc metodes citu autoru programmētām klasēm).

3. Vai kods pareizi izmanto izteiksmju operandu steku (t.i. nenotiek steka pārpildīšanās vai iztukšošanās).

4. Vai metožu izsaukumiem nododamo aktuālo parametru tipi ir pareizi.

5. Nenotiek neatļauti datu pārveidojumi (veselo skaitļu tipi uz referenču tipiem, un tml.).

18

Page 19: datubaze.files.wordpress.com€¦  · Web viewSee below for a more comprehensive tutorial on Swing. Deployment — How to package applications and applets using JAR files, and deploy

Javas Virtuālā Mašīna (JVM)

1 "Aparatūras" specifikācija CLASS failu izpildei. To emulē ar programmu nodrošinājumu. Nav vajadzīgs, lai mašīnas "dzelži" saprastu Javas CLASS failus.

2. JVM lasa kompilēto baitkodu (.CLASS failus), kas ir platformneatkarīgs.

3. JVM var būt Javas izstrādes vides (piem. JDK1.4) sastāvdaļa, Javas izpildes vides (JRE) sastāvdaļa, vai pārlūkprogrammas spraudnis jeb plugins.

4. No tipu pārbaudēm lielākā daļa veikta kompilācijas laikā (stipri tipizēta valoda - mainīgo tipi ir zināmi kompilācijas laikā; ir tomēr iespējams polimorfisms).

5. Jebkurai Sun Microsystems apstiprinātai JVM jāvar darbināt jebkurš standartam atbilstošs .class fails.

19

Page 20: datubaze.files.wordpress.com€¦  · Web viewSee below for a more comprehensive tutorial on Swing. Deployment — How to package applications and applets using JAR files, and deploy

Just in time kompilators

1. Ielādē, pārbauda, izpilda baitkodu.

2. Rekursīvi sekojot koda atkarībām, ielādē visas klases, kuras nepieciešamas programmas izpildei.

3. Klases, kuras nāk no vietējās failu sistēmas (local file system) glabājas atsevišķos vārda apgabalos (namespace).

4. Nepieļauj viltošanas (spoofing) uzbrukumus. Viltošanas uzbrukumi ir mēģinājums iesūtīt ļaunprātīgi modificētus datus tādā vietā, kurai saņēmējs uzticas un šādi izprovocēt saņēmēju veikt uzbrucējam vēlamās darbības. Javas apletu gadījumā - no Interneta atnākušais kods varētu vēlēties nonākt "uzticamā" JVM apgabalā un izpildīties kā droša programma ("Trojas zirgs" utml.). Javas platforma šādus uzbrukumus novērš. (Ir arī "spoofing"-am līdzīgs termins - sniffing, t.i. tīkla saziņas noklausīšanās, to nemodificējot.)

20

Page 21: datubaze.files.wordpress.com€¦  · Web viewSee below for a more comprehensive tutorial on Swing. Deployment — How to package applications and applets using JAR files, and deploy

Java programmēšanas rīku komplekts Java Developer

Kit

Lai varētu kompilēt, atkļūdot (debug) un izpildīt Java valodas programmas ,

nepieciešama izpildes vide Java Developer Kit (JDK)1.

Instalējamais fails:

Istalēšanas gaitā izveidotie katalogi:

1 http://www.webkursi.lv/java-eim/de/index_java.html

21

Page 22: datubaze.files.wordpress.com€¦  · Web viewSee below for a more comprehensive tutorial on Swing. Deployment — How to package applications and applets using JAR files, and deploy

Java programmēšanas rīku komplekta Java Developer

Kit svarīgākās programmas

Kompilēšana - rīks javac.exe

CLASS koda interpretēšana – rīks java.exe

Dokumentācijas ģenerēšana - rīks javadoc.exe

Klašu failu arhivēšana - rīks jar.exe

Lietojumu darbināšanas vide Java Runtime Environment - patstāvīgām

programmām (standalone program), apletiem, servletiem, utml.

Kompilācija: javac Klase_a.java

Izpilde: java Klase_a

Visu klašu pārkompilācija: javac *.java

22

Page 23: datubaze.files.wordpress.com€¦  · Web viewSee below for a more comprehensive tutorial on Swing. Deployment — How to package applications and applets using JAR files, and deploy

Kompilācijas programmas javac.exe parametri

23

Page 24: datubaze.files.wordpress.com€¦  · Web viewSee below for a more comprehensive tutorial on Swing. Deployment — How to package applications and applets using JAR files, and deploy

Izpildes programmas java.exe parametri

24

Page 25: datubaze.files.wordpress.com€¦  · Web viewSee below for a more comprehensive tutorial on Swing. Deployment — How to package applications and applets using JAR files, and deploy

Rīku komplekta Java Developer Kit instalēšana

1. Java Developer Kit (JDK) faili Windows operētājsistēmas vidē parasti ir

katalogā \Program Files\Java\jdk1.6.0_05 .

2. Javas virtuālā mašīna ir izpildāma programma java.exe katalogā jdk1.6.0_05\

bin.

3. Javas kompilators ir cita izpildāma programma javac.exe šajā kataligā.

JDK versijas pārbaude:

25

Page 26: datubaze.files.wordpress.com€¦  · Web viewSee below for a more comprehensive tutorial on Swing. Deployment — How to package applications and applets using JAR files, and deploy

Rīku komplekta Java Developer Kit instalēšana (turpinājums)

Lai Java lietojumu programmas varētu glabāt un izmantot no jebkura kataloga:

1) jādefinē sistēmas vides mainīgais JAVA_HOME ar kura palīdzību tiek

norādīta JDK programmu atrašanās vieta (piemēram, I:\Program Files\Java\

jdk1.6.0_05);

2) jāpievieno PATH mainīgajam katalogu %JAVA_HOME%\bin (PATH

direktorijas uz Windows datoriem atdala ar semikoliem(;)).

Šajā gadījumā, kompilējot un darbinot Javas programmas nebūs jānorāda pilns

ceļš uz javac un java.

Start Control Panel Performance and Maintenance System (Environment variables)

26

Page 27: datubaze.files.wordpress.com€¦  · Web viewSee below for a more comprehensive tutorial on Swing. Deployment — How to package applications and applets using JAR files, and deploy

Java informācija MS Windows reģistrā (apskate un apstrāde ar Registry Editor)

27

Page 28: datubaze.files.wordpress.com€¦  · Web viewSee below for a more comprehensive tutorial on Swing. Deployment — How to package applications and applets using JAR files, and deploy

http://java.sun.com/docs/books/tutorial/http://java.sun.com/javase/reference/index.jsp

Trails Covering the BasicsGetting Started — An introduction to Java technology and lessons on installing Java development software and using it to create a simple program. Learning the Java Language — Lessons describing the essential concepts and features of the Java Programming Language. Essential Java Classes — Lessons on exceptions, basic input/output, concurrency, regular expressions, and the platform environment. Collections — Lessons on using and extending the Java Collections Framework. Swing — An introduction to the Swing GUI toolkit, with an overview of features and a visual catalog of components. See below for a more comprehensive tutorial on Swing. Deployment — How to package applications and applets using JAR files, and deploy them using Java Web Start and Java Plug-in. Preparation for Java Programming Language Certification — List of available training and tutorial resources. Specialized Trails and LessonsCustom Networking — An introduction to the Java platform's powerful networking features. The Extension Mechanism — How to make custom APIs available to all applications running on the Java platform. Full-Screen Exclusive Mode API — How to write applications that more fully utilize the user's graphics hardware. Generics — An enhancement to the type system that supports operations on objects of various types while providing compile-time type safety. Note that this lesson is for advanced users. The Java Language trail contains a Generics lesson that is suitable for beginners. Internationalization — An introduction to designing software so that it can be easily be adapted (localized) to various languages and regions. JavaBeans — The Java platform's component technology. JDBC Database Access — Introduces an API for connectivity between the Java applications and a wide range of databases and a data sources. JMX— Java Management Extensions provides a standard way of managing resources such as applications, devices, and services. JNDI— Java Naming and Directory Interface enables accessing the Naming and Directory Service such as DNS and LDAP. RMI — The Remote Method Invocation API allows an object to invoke methods of an object running on another Java Virtual Machine. Reflection — An API that represents ("reflects") the classes, interfaces, and objects in the current Java Virtual Machine. Security — Java platform features that help protect applications from malicious software. Sound — An API for playing sound data from applications. 2D Graphics — How to display and print 2D graphics in applications. Sockets Direct Protocol — How to enable the Sockets Direct Protocol to take advantage of InfiniBand.

28

Page 29: datubaze.files.wordpress.com€¦  · Web viewSee below for a more comprehensive tutorial on Swing. Deployment — How to package applications and applets using JAR files, and deploy

Java programmas kompilācija un izpilde ar Java Developer Kit (JDK) programmām

Fails Sveiki.javapublic class Sveiki { public static void main (String[ ] args) { System.out.println ("Sveiki. Saksim apgut valodu Java."); } }

1. kompilācija: javac.exe Sveiki.java

2. izpilde: java.exe Sceiki.class

29

Sveiki.javaKlases programma Java valodā

Kompilators javac.exe

Sveiki.classKompilētā programma (baitkods)

Izpildes veicējs java.exe

Page 30: datubaze.files.wordpress.com€¦  · Web viewSee below for a more comprehensive tutorial on Swing. Deployment — How to package applications and applets using JAR files, and deploy

Programmas veidošana un izpilde izmantojot programmēšanas valodu Java

1. Fails Sveiki.java ar programmu (klases Sveiki definējumu):

public class Sveiki{public static void main(String[] args){System.out.println("Sveiki. Saksim apgut valodu Java.");} }

2. Komandrindas režīma izsaukšana (Start Run cmd).

3. Pārbaude, ka Java Developer Kit instalācija veikta (java –version).

4. Java klases kompilācija (javac Sveiki.java), tiek iegīts fails Sveiki.class.

5. Klases Sveiki metodes main() izpilde (java Sveiki).

30

Page 31: datubaze.files.wordpress.com€¦  · Web viewSee below for a more comprehensive tutorial on Swing. Deployment — How to package applications and applets using JAR files, and deploy

Java klašu struktūra dati un metodes. Struktūrvienību sadarbība

31

KlaseAmain() metodeSetX1() metodex1 datu vienība GetX1() metodeSetX2() metodex2 datu vienība GetX2() metodeMetodeC() MetodeD()

KlaseBMetodeE()SetX3() metodex3 datu vienība GetX3() metodeSetX4() metodex4 datu vienība GetX4() metodeMetodeF()

Page 32: datubaze.files.wordpress.com€¦  · Web viewSee below for a more comprehensive tutorial on Swing. Deployment — How to package applications and applets using JAR files, and deploy

JAVA klases definēšanas pamatnoteikumi

class KlasesNosaukums {

datu_lauks_1datu_lauks_2. . .konstruktors_1konstruktors_2. . .metode_1metode_2. . . }

1. Tiek ņemts vērā vai izmantots lielais vai mazais burts (main vai Main).

2. public (access modifier) – citas klases var izmantot vai citas metodes var

izmantot.

3. Klases nosaukums sākas ar lielo burtu (Klase_A).

4. Faila nosaukumam ar klases definējumu un klases nosaukumam ir jābūt

vienādiem.

1. Faila paplašinājums ir .java.

2. Kompilators izveido failu ar klases nosaukumu un paplašinājumu .java.

3. Klases izpilde sākas ar metodi main.

4. Tiek izmantots pieraksts objekts.metode(parametri).

32

Page 33: datubaze.files.wordpress.com€¦  · Web viewSee below for a more comprehensive tutorial on Swing. Deployment — How to package applications and applets using JAR files, and deploy

Klases definēšanas un pārbaudes piemērs

public class Darbinieks {// klases atribūti private String UZVARDS; private double ALGA; private int DZIM_GADS; // konstruktora funkcija public Darbinieks (String uzv, double alg, int gads) { UZVARDS = uzv; ALGA = alg; DZIM_GADS = gads; } // metodes public String getUzvards() { return UZVARDS; } public double getAlga() { return ALGA; } public int getDzim_gads() { return DZIM_GADS; } public void Algas_maina (double procents) { double pieaugums = ALGA * procents /100; ALGA += pieaugums; } }

public class DarbinieksTests { public static void main (String [ ] args) { Darbinieks [ ] darbinieki = new Darbinieks [3]; darbinieki [0] = new Darbinieks ("Koks", 400.50, 1980); darbinieki [1] = new Darbinieks ("Celms", 500.50, 1985); darbinieki [2] = new Darbinieks ("Sakne", 550.50, 1970);for (Darbinieks d : darbinieki) System.out.println("uzvards= "+ d.getUzvards() + ", alga= " + d.getAlga() ); } }

uzvards= Koks, alga= 400.5uzvards= Celms, alga= 500.5uzvards= Sakne, alga= 550.5Process exited with exit code 0.

33

Page 34: datubaze.files.wordpress.com€¦  · Web viewSee below for a more comprehensive tutorial on Swing. Deployment — How to package applications and applets using JAR files, and deploy

Klašu Cilveks un CilveksTests definējums un izpildē iegūtais rezultāts

public class Cilveks {// Klases datiprivate String vards;private String uzvards;//Konstruktora funkcijapublic Cilveks(String a, String b) {vards = a; uzvards = b;}//Metodespublic String getVards() {return vards;}public String getUzvards() {return uzvards;}public void setVards(String x) {vards = x;}public void setUzvards(String y) {uzvards = y;} }

public class CilveksTests{public static void main(String[] args){ // Masiva aizpildisanaCilveks[] masivs = new Cilveks[2];masivs[0] = new Cilveks("Juris", "Koks");masivs[1] = new Cilveks("Rasma", "Zars");// Datu izvadefor (Cilveks c : masivs)

System.out.println(c.getVards()+c.getUzvards());//Objekta izveidosanaCilveks a;a = new Cilveks("A", "B");System.out.println(a.getVards()+a.getUzvards());//Metozu izmantosana datu ievadeia.setVards("Zane");a.setUzvards("Liepa");System.out.println(a.getVards()+a.getUzvards());Cilveks b = new Cilveks("n", "n");

b.setVards("Ligita");b.setUzvards("Caune");System.out.println(b.getVards()+b.getUzvards());}}

34

Page 35: datubaze.files.wordpress.com€¦  · Web viewSee below for a more comprehensive tutorial on Swing. Deployment — How to package applications and applets using JAR files, and deploy

Java Programmas veidošana izmantojot redaktoru TextPad

Klases definējuma ievade

Klases kompilācijas un programmas izpildes veikšana

35

Page 36: datubaze.files.wordpress.com€¦  · Web viewSee below for a more comprehensive tutorial on Swing. Deployment — How to package applications and applets using JAR files, and deploy

Java programmas izpilde ar IDE rīku NetBeans

36

Page 37: datubaze.files.wordpress.com€¦  · Web viewSee below for a more comprehensive tutorial on Swing. Deployment — How to package applications and applets using JAR files, and deploy

Jaunumi!

1. Projektu Hibernate un Seam dibinātājs Gavin King, konferences QCon

laikā atklājis dažas lietas saistībā ar projektu Ceylon, kura ietvaros tiek

veidota jauna programmēšanas valoda un programmēšanas rīku komplekts

(SDK), kas pretendē uz Java aizvietotāja statusu.

2. Projekts jau divus gadus tiek attīstīts kompānijas RedHat dzīlēs dziļā

slepenībā.

37