1 / 23

Java vs Algoritmy v Jave

Java vs Algoritmy v Jave. Java je. čistý Smalltalk štýl OOP, vylepšenie C ++ , internet programming language , o bjektovo-orientovan á paradigma, silná typová disciplína, vznikla v Sun Microsystems , James Gosling , 1990 ovplyvnená: Objective-C , C++ , Smalltalk , Eiffel

Télécharger la présentation

Java vs Algoritmy v Jave

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Java vs Algoritmy v Jave

  2. Java je ... • čistý Smalltalk štýl OOP, • vylepšenie C++, • internet programming language, • objektovo-orientovaná paradigma, • silná typová disciplína, • vznikla v Sun Microsystems, James Gosling, 1990 • ovplyvnená: Objective-C, C++, Smalltalk, Eiffel • ovplyvnila:C#,J#, VJ# Java nie je: • operačný systém, ale pokúša sa ... • javascript ...  • easy... ”Saying Java is simpler than C++ is like saying K2 is shorter thenEverest”…

  3. Základné pojmy • dva druhy programov: applikácie a applety • Java Core API – runtime (JRE), • Java Platform – prenositeľnosť, • Java Virtual Machine (JVM), • Java Development Kit (JDK), • JIT kompilátor, • Java ME (Micro Edition) • Java SE (Standard Edition) • Java EE (Enterprise Edition) • Java Environment • Eclipse, • JBuilder, • NetBeans, • Kawa, • MS-Java

  4. Java joke "Write once, run anywhere" is actually a euphemism for "Write once, debug everywhere História • firma SUN, James Gosling,1991, jazyk Oak • 1993, Java for WWW • 1995, oficiálne predstavenie JAVA 1.0, • paradigma Write Once, Run Anywhere (WORA), • vývojové nástroje (JDK):http://www.javasoft.com/ • JDK 1.0 (1996) - nepoužíva sa, • JDK 1.1 (1997) - JDBC, JavaBeans, RMI, vnorené triedy… • J2SE 1.2 (1998) - Java 2 SDK (nové knižnice, Swing, Collections, …), reflection model, JIT kompilátor, • J2SE 1.3 (2000) - zmeny v API, rýchlejšia, CORBA, JNDI, … • J2SE 1.4 (2002) - stabilná, výnimky, XML parser, ... • J2SE 5.0 (2004)- jazykové úpravy, generics, enumerate, ... • Java SE 6 (2006) – beta • Java SE 7 (coming soon) – nové API, knižnice, ...

  5. OOP 5 pravidiel OOP (Alan Kay): • všetko je objekt, • program je hŕba objektov oznamujúcich si, čo robiť, posielaním si správ, • každý objekt má svoj kus pamäte • každý objekt má typ • objekty rovnakého typu môžu prijímať rovnaké správy

  6. Java vs. C++ Typy: • C++: bool, char, short int, int, long int, float, double, long doube, unsigned… • Java: boolean, char, byte, short, int, long, float, double. bite-size je definovaná jazykom, nie implementáciou  char je 16bit, Unicode Java nemá union typ  Java nemá neinicializované lokálne premenné  Pointre: Java nemá pointre, pointrovú artimetiku  Java má implicitný garbage collector  Template (generics), enumerate: Java od verzie 1.5

  7. Java vs. C++ Polia: C++ : pointre a polia splývajú, chýba range checking  Predávanie argumentov: Java: argument-by-value, neexistuje by-reference neexistujú voliteľné parametre Operátory: Java: Overloading operátorov je zakázaný Riadenie výpočtu: Java: neexistuje goto  Správa výnimiek  Rýchlosť vs.prenositeľnosť.....

  8. Prvý Súbor Prvy.java: public class Prvy { public static void main(String[] args) { System.out.println("Ahoj"); } } C:\borovan\java>javac Prvy.java C:\borovan\java>java Prvy Ahoj C:\borovan\java>

  9. Komentáre Súbor Komentare.java: public class Komentare { static double obsahKruhu(double r) { /* metoda obsah kruhu*/ return r * Math.PI; } public static void main(String[] args) { int uhrada; int pocetPiv = 5; uhrada = pocetPiv * 15; // typický komentar System.out.println("uhrada = " + uhrada); uhrada = pocetPiv * /* 15 */ 20; /* 15 je za desinku */ System.out.println("uhrada = " + uhrada); System.out.println("Obsah kruhu o polomere 5 = " + obsahKruhu(5.0)); } } uhrada = 75 uhrada = 100 Obsah kruhu o polomere 5 = 15.707963267948966

  10. Základné celočíselné typy • byte, short, int, long 8,16,32,64 bitov • neexistuje unsigned int public class IntNaByte { public static void main(String[] args) { int i; byte b; b = -1; // -1 = 255 unsigned i = (b < 0) ? b + 256 : b; System.out.println("i = " + i); i = 128; b = (byte) ((i > 127) ? i - 256 : i); System.out.println("b = " + b); i = 100; b = (byte) ((i > 127) ? i - 256 : i); System.out.println("b = " + b); } } i = 255 b = -128 b = 100

  11. Konštanty • Desiatkové 32,12,.... • Osmičkové 0126, 015, 01 • Šestnástkové 0x56,0x1,0xCD,... • Long int 123456789123L • Znakové ‘A’,’%’,’\u00E1’,’\n’,’\f’ • Reťazcové “toto je retazec v Jave” • Logické typu boolean: true, false • Reálne float, double: 15.8, 7E23, 3.14F,...

  12. Nekonečno Integer.MIN_VALUE, Float.MAX_VALUE public class Nekonecno { public static void main(String[] args) { double nula = 0.0; double vysledok = +5.0 / nula; System.out.println(vysledok); // Infinity if (Double.POSITIVE_INFINITY == vysledok) System.out.println("kladne nekonecno"); // kladne nekonecno vysledok = -5.0 / nula; System.out.println(vysledok); // -Infinity if (Double.isInfinite(vysledok) == true) System.out.println("nekonecno"); // nekonecno System.out.println("MAX = " + Float.MAX_VALUE + ", 2 * MAX = " + (2 * Float.MAX_VALUE)); // MAX = 3.4028235E38, 2 * MAX = Infinity vysledok = nula / nula; // NaN System.out.println(vysledok); if (Double.isNaN(vysledok) == true) System.out.println("nie je cislo"); // neni cislo } }

  13. Deklarácia premenných int i; char c; float f; int i, j, k; int j = 1; final int MAX = 10; final int MAX; MAX = 10; public class TriedaSKonstantou { public static final int MAX = 10; public static void main(String[] args) { System.out.println("MAX = " + MAX); System.out.println("MAX = " + TriedaSKonstantou.MAX); } }

  14. Priradenie, pretypovanie,konverzie j = 3.14; // nie := int j, i = 5; if (i == (j = 5)) // nie if (i = (j = 5)) System.out.println(i); int i = 5; double d = (int) i; // rozšírenie podtypu do nadtypu char c = ‘A’; int i = (int) c; char d = (char)i;// zúženie do podtypu rozširujúce konv. Byte->short->int->long->float->double zužujúce konv. double->float->long->int->short->byte short s = 300; byteb = (byte) s; System.out.println("s = " + s + ", b = " + b); // s = 300, b = 44 b = (byte) 255; System.out.println("b = " + b); // b = -1

  15. Výrazy, pretečenie int i = 5, j = 1, k; i++; // i bude 6 System.out.println("i = " + i); j = ++i; // j bude 7, i bude 7 System.out.println("j = " + j + ", i = " + i); j = i++; // j bude 7, i bude 8 System.out.println("j = " + j + ", i = " + i); k = --j + 2; // k bude 8, j bude 6, i bude 8 System.out.println("k = " + k + ", j = " + j); i = j % 4; // delenie modulo byte b = 126; System.out.println("b = " + b); // b = 126 b += 3; System.out.println("b = " + b); // b = -127 b = -126; b += -5; System.out.println("b = " + b); // b = 125

  16. Operátory j*= i-2; ==, !=, &&, ||, ! logické &, |,~, ^, <, >,<<,>>,>>> bitové Skrátený súčet, súčin (rozdieľ oproti C++) int i, j, k; i = 1; j = 2; k = 3; if (i == 1 || ++j == 2) k = 4; System.out.println("i = "+ i +", j = "+ j +", k = "+ k); // i = 1, j = 2, k = 4 …ak miesto || bude | // i = 1, j = 3, k = 4 int i, j, k; i = 1; j = 2; k = 3; if (i == 2 && ++j == 3) k = 4; System.out.println("i = " + i + ", j = " + j + ", k = " + k); // i = 1, j = 2, k = 3 …ak miesto && bude & // i = 1, j = 3, k = 3

  17. Bitové operácie &, |, ^, <<, >>, >>>, ~ byte i = 7 & 9; byte i = 7 | 9; int i = 4; if (i % 2 == 0) // klasicky System.out.println(i + " je parne"); if ((i & 1) == 0) // bitovo System.out.println(i + " je parne"); final byte VIDITELNY = 1; final byte PREMIESTITELNY = 2; final byte MENITELNY = 4; final byte SMAZATELNY = 8; byte stav = 0; stav |= VIDITELNY; if ((stav & VIDITELNY) == VIDITELNY) System.out.println("je viditelny"); stav &= ~VIDITELNY; if ((stav & VIDITELNY) == VIDITELNY) System.out.println(“je viditelny"); } byte x = 5; x <<= 3; int x = 256; x >>= 4; // int x = 16; x >>= 2; // 4 int x = -16; x >>= 2; // 1073741820 byte i = 7 ^ 5; // 2

  18. Priority (používaj zátvorky) . [index] (typ) ! ++ -- * / % + - << >> >>> < <= >= > == != & ^ | && ?: = += …

  19. if-then-else if (booleovský výraz) C++: if(c = getchar() != ‘A’) … ok príkaz; Java: if(c = getchar() != ‘A’) … error else Java: if((c = getchar()) != ‘A’) … ok príkaz; (booleovský výraz)?výraz1:výraz2 max = (i > j) ? i : j; break continue

  20. cykly while (booleovský výraz) príkaz; do { príkazy; } while (booleovský výraz); for (výrazštart;výrazstop;výraziter)chyba: for(int i=1,sum=0; i<=10;i++)… príkaz; navesti: for (int n = 0; n < 4; n++) { for (int m = 0; m < 2; m++) { if (n == 2 && m == 1) continue navesti; System.out.print(n + "-" + m + " "); } }

  21. switch, return switch (citajZnak()) { case 'a' : case 'b' : case 'c' : System.out.print("1"); break; case 'd' : System.out.print("2"); break; default : System.out.print("3"); break; } return výraz;

  22. java.io import java.io;// include <stdio.h>  Výstup: System.out.print() i = 4; j = 7; System.out.print("Toto je hodnota premennej i: " + i + "\n"); System.out.println("Toto je premenna i: "+i+"\na toto j: "+j); System.out.println("Sucet je " + i + j); System.out.println("Sucet je " + (i + j));

  23. cvičenie public class puzzle { static void usage() { System.out.println("Usage: \n\t" +"help yourself"); System.exit(1); } public static void main(String[] args) { if(args.length != 1) usage(); if(args[0].equals("paj")) { int n = 0; int m = 0; while(m < 314588) { double a = Math.random(); double b = Math.random(); if (a*a < 1-b*b) n++; m++; } System.out.println("What ??? !" + (4F*n/m)); } else usage(); } } static void printBinaryInt(String s, int i) { System.out.println(s + ", int: " + i + ", binary: "); System.out.print(" "); for(int j = 31; j >= 0; j--) if(((1 << j) & i) != 0) System.out.print("1"); else System.out.print("0"); System.out.println(); } System.out.println((((1 << j) & i) != 0)?”1”:”0”); System.out.println(((1 << j) & i)?”1”:”0”);

More Related