java virtual machine (JVM) obecne
J2EE vyvoj
Externi odkazy
Typy souboru
Promenne
Operatory
Podminky, cykly
Tridy, objekty, funkce
Priklady
<a name=“odkazy|]]
<a name=“soubory|]]
javac hello.java … zkompiluje zdrojovy kod hello.java do hello.class
javadoc … dokumentace k jave
java hello … spusti hello.class v JVM (Java Virtual Machine)
appletviewer apHello.htm … prohlizec appletu
javap hello.class … dekompilace .class do .java
jdb … debugger
java -jar Archiv.jar … spusti program v archivu Archiv.jar
jar cvf Archiv.jar *.class … vytvori jar archiv (Java Archiv)
jar tvf Archiv.jar … otestuje jar archiv (Java Archiv)
jar xvf Archiv.jar … rozbali Archiv.jar
unzip -t Archiv.jar … oteztuje JAR zabaleny zipem
<a name=“promenne|]]
char x; … (Character) unicode znak, 2 bajty
byte znak='a'; … (Byte) bajt, -128 - 127
short x; … kratke cislo, 2 baty -32768 - 32767
int x; … integer, cele cislo, 4 bajty -2.147.483.648 - 2.147.483.647
long x; … cele velike cislo, 8 bajtu, -9.223.372.036.854.775.808 ŕ 9.223.372.036.854.775.807
float r = 125.36f; … realne cislo, 4 bajty, -1.4*10^-45 - 3.4*10^38
double r; … realne dvojnasobne cislo, 8 bajtu, 4.9*10^-324 - 1.7*10^308
boolean b; … 0, 1 - lez pravda
x = (int)8.2 … konverze na cele cislo
final float Pi=3.14; … definice konstanty (nelze menit)
<a name=“operatory|]]
(, ) … seskupovani (priorita 16)
A++ [–) … A=A+1 (priorita 15)
*, /, % … matematicke operace * a /, modulo (priorita 14)
+, - … matematicke operace + a - (priorita 13)
= … prirazeni (priorita 3)
A+=B, [*=, -=, /=] … A=A+B (priorita 3)
A==3 [!=] … A je (neni) rovno 3 (priorita 10)
A<=3 (>=,<,>) … A je vetsi rovno (mensi rovno, vetsi, mensi) (priorita 11)
!A … Negace vyroku A, vysledek vyrok (priorita 15)
A<<1, >>, >>> … bitovy posun o jednu pozici do leva u promenne A, do prava se zachovanim znamenka, do prava (priorita 12)
A && B … plati vyrok A a zarovan B (priorita 6)
A || B … plati vyrok A a nebo B (priorita 5)
A & B … bitova operace a 1100 & 1001 = 1000 (priorita 9)
A ^ B … bitova operace nebo 1100 & 1001 = 1101 (priorita 8)
A | B … bitova operace XOR 1100 & 1001 = 0101 (priorita 7)
<a name=“podminky|]]
if (podminka) {} else {}
(podminka) ? prikazy_pokua_pravda : prikazy_pokud_lez;
switch (promenna) { case hodnota1 : prikazy break; case hodnota2 : prikazy break; default: prikazy break; }
for (pocitadlo;podminka;zmena_pocitadla) {}
while (podminka) {}
continue; … Preskoci zbytek cyklu while, ci for a vrati se na zacatek na vyhodnocovani podminky
break; … Vyskoci z cyklu for nebo while
<a name=“tridy|]]
Definice tridy: cat trida.java
public class trida { int a; }
Deklarace objektu tridy pokus: cat pokus.java
public class pokus { public static void main { trida A = new trida(); A.a = 1; System.Out.Println(A.a); } }
Tridy mohou obsahovat i funkce, ktere umi pracovat s promennymy v objektu danne tridy:
public class trida {
public int a; public trida (int a) { this.a = a; } public trida () { this (1); } public zdvoj () { a *= 2; }
}</code>
Deklarace objektu tridy pokus: cat pokus.java
public class pokus { public static void main { trida A = new trida(2); A.zdvoj(); System.Out.Println(A.a); } }
<a name=“funkce|]]
Integer.toString(12) … prevede celociselnou hodnotu na string
Math.Random() … Vygeneruje pseudonahodne cislo
(int)1) … prevede realne nahodne cislo na celociselne
<a name=“priklady|]]
class hello ( public static void main (String[] args){ System.out.println("Hello World"); } }
import java.awt.*; public class apHello extends java.applet.Applet { public void init (){ add(new Label("Hello World")); } }
<BODY> <APPLET code="appletHello.class" width="100" height="30" align="left"> aplet appletHello.class neni podporovan prohlizecem </APPLET> </BODY> </HTML>
import javax.servlet.*; import javax.servlet.http.*; import java.io.* public class servletHello extends HttpServlet { public void doGet (HttpServletRequest request, HttpServletResponse resopnse) throws IOException { PrintWriter out = response.getWriter(); java.util.Date today = new java.util.Date(); out.println("<http><body>Hello, now it is" + today + "</body></html>"); } }
%javac -classpath $PATH_TO_TOMCAT/common/lib/servlet-api.jar -d classes servletHello.java
<?xml version="1.0" encoding="ISO-8859-1" ?> <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4"> <servlet> <servlet-name>Servlet Hello</servlet-name> <servlet-class>servletHello</servlet-class> </servlet> <servlet-mapping> <servlet-name>Servlet Hello</servlet-name> <url-pattern>/hello</url-pattern> </servlet-mapping> </web-app>
<html> <body> Hello, now it is <%= new java.util.Date() %> </body> let-mapping> </html>