Javas tehnoloģijā ietilpst:
Saskaņā ar Sun Microsystems aprakstu: Java: A simple, object-oriented, network-savvy, interpreted, robust, secure, architecture neutral, portable, high-performance, multithreaded, dynamic language. (Sk. http://java.sun.com/docs/overviews/java/java-overview-1.html). Var piebilst arī, ka Java ir cieši saistīta ar atvērtā koda izstrādi - Javas tehnologjiju uzvedību nosaka publiskoti, relatīvi vienkārši standarti - šos standartus var uzprogrammēt ikviens, kurš to vēlas (tādēļ ir daudz bezmaksas un atvērtā koda rīku). Javā turklāt bieži raksta visdažādāko "open source" programmatūru.
public class A {
public String f() {
String a1 = "Hello";
String b1 = "BB";
String b2 = "BB";
a1 = a1 + "!";
// Stringa objekts "Hello" nupat kļuva par drazu,
// jo mainīgais "a1" norāda uz jaunu objektu - "Hello!"
b1 = null;
// Stringa objekts "BB" nav draza, jo uz to joprojām
// norāda mainīgais b1
return a1;
// pēc iziešanas no šīs metodes, "BB" kļūst par drazu,
// jo izpildes stekā vairs nav mainīgā "b2".
// Toties objekts "Hello1" joprojām dzīvo - to
//
}
public static void main(String[] args) {
A a = new A(); // izveido jaunu klases A eksemplāru
System.out.println(f()); // drukā "Hello1".
// pēc iziešanas no šīs metodes arī klases A
// vienīgais eksemplārs un strings "Hello1" būs drazas
}
}
Drazu savākšana:
vairsNevajadzigsMainigais = null; // atbrīvo objektu, uz kuru norādīja vairsNevajadzigsMainigais Runtime.getRuntime().gc(); // Programmētājs ierosina JVMam veikt drazu savākšanu
Bet neviens no šiem paņēmieniem negarantē, ka drazas tiešām tiks savāktas pirms programmas izpilde turpināsies tālāk.
Nodrošina programmu koda drošu izpildi. Klašu ielādētājs un bitkoda pārbaudītājs noskaidro, vai bitkods ir pareizi izveidots. Tālāk to izpilda vienā no 2 veidiem:

Sk. piezīmi - The Byte Code Verification Process. 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.
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.)
Piezīme: Kas ir formālie parametri (formal parameters) un kas ir aktuālie parametri (actual parameters)? Piemērs:
// Metodes rindiņu līdz atverošajai figūriekavai
// sauc par prototipu.
// Metodes prototipā ierakstītie parametri a un b
// ir formālie parametri.
public int sum(int a, int b) {
return a+b;
}
// Šajā sum() izsaukuma piemērā 3 un 4 ir aktuālie parametri
public void f() {
System.out.println(sum(3,4))
}
ClockMain.java
package sample1;
public class ClockMain {
public static void main(String[] args) {
MyClock myClock = new MyClock();
System.out.println(myClock.getMessage());
}
}
MyClock.java
package sample1;
import java.util.Date;
public class MyClock {
public String getMessage() {
Date d = new Date();
return "Pareizs laiks: " + d;
}
}
javac ClockMain.java java ClockMain
(MyClock.java kompilējas automātiski)
Visas klases pārkompilēt var ar komandu:
javac *.java
Lai varētu kompilēt, atkļūdot (debug) Javas programmas, vajag izpildīšanas vidi, kompilatoru (javac), interpretatoru (java) un citus programmatūras rīkus. To sauc par Javas programmēšanas instrumentāriju: JDK (Java Developer Kit).
Uzinstalējot šo JDK, piemēram, uz Windows datora direktorijā c:\Program Files\Java\jdk1.6.0, Javas Virtuālā Mašīna ir izpildāma programma "jdk1.6.0" apakšdirektorijā bin/java.exe, un Javas kompilators ir cita izpildāma programma šajā apakšdirektorijā - bin/javac.exe. Tādēļ, lai Javu varētu gan kompilēt, gan darbināt jebkurā direktorijā, ir ieteicams definēt sistēmas vides mainīgo JAVA_HOME ar vērtību c:\Program Files\Java\jdk1.6.0 (vai jebkuru citu, kuru esat izvēlējušies instalācijas brīdī), kā arī pievienot PATH mainīgajam direktoriju %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.
javac: Command not found
ClockMain.java:6: cannot resolve symbol
symbol : method printl (java.lang.String)
location: class java.io.PrintStream
System.out.printl(myClock.getMessage());
^
NotClockMain.java:4: Public class ClockMain must be defined in a file called "ClockMain.java".
Arī izsaucot interpretatoru java var rasties kļūdas, ko sauc par izpildes laika kļūdām (runtime errors). Piemēram,
Šādas kļūdas varētu rasties, ja klasei ClockMain nevar atrast sakompilētu CLASS failu (t.i. tas neatrodas nevienā no CLASSPATH norādītajām direktorijām vai JAR failiem. Otrajā gadījumā - ja klasē ClockMain nav definēta metode "main" ar pareizu prototipu, t.i.:
public static void main(String[] args)
Sk. attēlu: Izpildes laika vide (runtime environment)
