PraktikumsFragen

Maurice16

Mitglied
Hallo Leute
ich habe halb ein Praktikum und bräuchte ein paar Fragen von euch beantwortet:

1•Welche Vorteile hat JAVA gegenüber C und C++?
2•Was ist ein "virtueller Computer"?
3•Was ist ein Compiler?
4•Was ist ein Betriebssystem?
5•Was ist eine IDE?
6•Welche Endung (Dateierweiterung, Extension) hat eine JAVA-Programmquelle?
7•Welche Endung bekommt die übersetzte Quelle?
8•Was ist javac und wozu wird es benutzt?
9•Was bedeutet folgende Anweisung im Kommandoprompt javaTest?
10•Welche Ausgabe ergibt folgende Anweisung im Kommandoprompt javaVersuch1.class?
11•Welche Bedeutung hat der Parameter argsin der Zeile publicstaticvoidmain(String args[])?
12•Was ist/bedeutet Random()in der Zeile intzahl = newRandom().nextInt(6)?

Ich bin dankbar für jede Antwort, auch wenn es nur eine ist. =)

Gruß Maurice
 
Wir sind aber nicht da um deine Hausaufgaben zu machen -.-
Google dein Freund und Helfer, wenn du dort was findest was du nicht verstehst, kannst du hier gerne Fragen.
 
Hatte grad nichts besseres zu tun, also hab ich deine Fragen bei Google und Wikipedia eingegeben und ein paar Minuten die Ergebnisse durchgeklickt...

1•Welche Vorteile hat JAVA gegenüber C und C++?
http://www.mrunix.de/forums/showthread.php?t=33712

2•Was ist ein "virtueller Computer"?
http://de.wikipedia.org/wiki/Virtualisierung_(Informatik)

3•Was ist ein Compiler?
http://de.wikipedia.org/wiki/Compiler

4•Was ist ein Betriebssystem?
http://de.wikipedia.org/wiki/Betriebssystem

5•Was ist eine IDE?
http://de.wikipedia.org/wiki/Integrierte_Entwicklungsumgebung

6•Welche Endung (Dateierweiterung, Extension) hat eine JAVA-Programmquelle?
.java

7•Welche Endung bekommt die übersetzte Quelle?
.class

8•Was ist javac und wozu wird es benutzt?
http://linux.die.net/man/1/javac-java-1.6.0-openjdk

9•Was bedeutet folgende Anweisung im Kommandoprompt javaTest?
http://www.manpagez.com/man/1/java/

10•Welche Ausgabe ergibt folgende Anweisung im Kommandoprompt javaVersuch1.class?
Code:
evil-server:~# javaVersuch1.class
-bash: javaVersuch1.class: command not found
evil-server:~# java Versuch1.class
Exception in thread "main" java.lang.NoClassDefFoundError: Versuch1/class
Caused by: java.lang.ClassNotFoundException: Versuch1.class
	at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
Could not find the main class: Versuch1.class.  Program will exit.

11•Welche Bedeutung hat der Parameter argsin der Zeile publicstaticvoidmain(String args[])?
http://en.wikipedia.org/wiki/Main_function_(programming)

12•Was ist/bedeutet Random()in der Zeile intzahl = newRandom().nextInt(6)?
http://download.oracle.com/javase/6/docs/api/java/util/Random.html

Nächstes mal bitte selber suchen, sonst gibts n Minus von mir ;)

Gruß
BK
 
Hallo,

also zum 1. Punkt versuche ich mal meine Sicht darzulegen.

C bzw. C++ Code wird in einen nativen Zielcode übersetzt (kompiliert). Dieser Zielcode ist dann nur mit einer bestimmten Plattform (x86, PowerPC, ...) kompatibel und für eine bestimmte Architektur optimiert (z. B. Pentium 4). Java Code wird dagegen in einen Zwischen-Code (Bytecode) übersetzt, der dann von der Virtuellen Maschine implementerungs- und fallabhängig interpretiert, kompiliert und optimiert wird. Java Code ist also portabler als C/C++ Code. (Vorteil: Höhere Portabilität)

Die Programmiersprache JAVA verfügt auch über eine höhere Typsicherheit als C/C++. In JAVA lässt sich von einem Array immer die tatsächliche länge ermitteln, damit bei einer iteration durch das Array die Grenzen nicht überschritten werden. Werden die Grenzen doch überschritten, wird dieser Fehler zur Laufzeit erkannt und es wird eine Exception geworfen. In C hätte man dann ein unerwartetes Verhalten der Anwendung ...

Code:
void * memcpy ( void * destination, const void * source, size_t num );

In C ist es z. B. auch möglich einem enum Type jeden beliebigen Wert aus dem Wertebereich von int zuzuweisen, auch wen dieser Wert bei der Typdefinition des enum nicht definiert wurde. In Java ist dies z. B. nicht möglich. In Java wird dieser Fehler bereits vor dem Kompilieren erkannt. (Vorteil: Höhere Reliability)

In JAVA muss Speicher der mit dem Operator new reserviert wurde nicht wieder freigegeben werden, dies wird durch den Garbage Collector der Virtuellen Maschine erledigt. In C/C++ muss mit malloc, calloc und new resiertierter Speicher mit free oder dem destruktor wieder freigegeben werden. Dies erfordert jedoch trotzdem, dass man in Java verantwortungsvoll mit den zur Verfügung stehenden Speicherplatz umgeht.
 
Zurück