java oder lieber C#

Status
Nicht offen für weitere Antworten.

kara_lahana

Mitglied
ich kann C.
Seit lange habe ich absicht, irgendwann richtig mit Java anzufangen.
Jetzt überlege ich mir,ob ich lieber C# lernen sollte.
ich habe nämlich gehört, dass C# viel schneller als java ist.

was haltet ihr davon?
 

Anubis

Bekanntes Mitglied
Ich kenn mich da zwar nicht so ganz aus, aber ich glaub, dass C# schneller ist, weil Java im Prinzip auf C basiert. Aber ich finde Java einfacher, weil man nicht immer so viel includen muss. In Java reichen ein paar Imports und du hast alles Nötiges.
(Stimmt das dass man in C relativ viel includen muss? Ich kann kein C, hab aber mal damit angefangen und dann aufgehört)
 

Koravel

Mitglied
Ich finde es etwas ungeschickt, diese Frage in ein auf Java spezialisiertes Board zu schreiben :wink:
Ich denke das ist natürlich ganz deine Entscheidung, wobei ich Plattformunabhängigkeit dem geringen Geschwindigkeitsgewinn vorziehen würde.

Vor allem, wenn man bedenkt, dass Linux immer stärker wird.
 

intruder

Mitglied
Anubis hat gesagt.:
Ich kenn mich da zwar nicht so ganz aus, aber ich glaub, dass C# schneller ist, weil Java im Prinzip auf C basiert.

Das ist nicht ganz die richtige erklärung. Du kannst nicht sagen, daß ein Golf 5 langsamer ist als Golf 4, weil der 5er auf dem 4er basiert. Die Ursache liegt ganz woanders.

C Programme werden direkt in Maschinensprache Kompiliert. Der Rechner bzw. Prozessor kann dann das Zeug dann direkt verarbeiten. Die Programme werden daher schneller ausgeführt sind aber Plattformabhängig d.h. dein Prog läuft entweder nur auf Windows oder nur Linux oder nur Mac, je nachdem für welche Platform du es kompiliert hast.

Java Programme werden in Bytecode übersetzt, der für alle Platformen gleich ist d.h. du kannst das gleiche Programm auf jeder beliebigen Platform laufen lassen.
Das ist ja klasse sagst du jetzt sicher.

Ja das ist es. Leider hat die sache aber einen kleinen Hacken.
Der Prozessor versteht den Bytecode nicht!

Toll! Und wozu dann Java? Was soll ich damit, wenn es nicht auf meinem Rechner läuft? - denkst du jetzt vielleicht.

Hym ... mal schauen. Wie kriegen wir es hin, daß unser Prozessor Bytecode versteht?

Ganz einfach, wir organisieren jemanden der Bytecode versteht und der soll es unserem Prozessor übersetzen.

Dieser jemand ist die JVM (Java Virtual Machine).
Es ist ein Stück Software oder besser gesagt ein Softwareprozessor den man ganz normal auf jeder Platform installieren. Die JVM verarbeitet den Bytecode und erklärt unserem Prozessor was er machen soll.

Dieser umweg über die Software kostet Zeit.
Dies ist der Grund dafür, dass Java langsamer ist als C.

Dafür ist es in Java einfacher Fehler zu vermeiden.
Prozesse die bei C von Hand gemacht werden müssen, wie z.B. das vernichten nicht mehr benötigter Objekte die Speicherplatz belegen, werden bei Java automatisch erledigt.

Wenn man also kein Vollprofi in C ist, kann es sein, dass die eigenen Progs in C dennoch langsamer sind als die gleichen Programme in Java, weil man einige Bugs reingehauen hat.

Hängt also alles davon ab, was du machst und wie gut du es machst ;)
 
G

Guest

Gast
Koravel hat gesagt.:
Ich finde es etwas ungeschickt, diese Frage in ein auf Java spezialisiertes Board zu schreiben :wink:
Ich denke das ist natürlich ganz deine Entscheidung, wobei ich Plattformunabhängigkeit dem geringen Geschwindigkeitsgewinn vorziehen würde.

Vor allem, wenn man bedenkt, dass Linux immer stärker wird.


cha!!! Wenn ich dies Frage bei eine forum von c# geschmiesen hätte,hätten die schreiben, dass c# von himmel gefallen ist und so;)

i wanna kritik !!!!!!!! ???:L

ich brauche gründe java zu lernen,obwohl es c# gibt!
 

Manfred

Bekanntes Mitglied
Bin mir zwar nicht sicher, aber läuft das bei C# nicht auch so, dass ein Interpreter benötigt wird??

Nochwas für Java:
Die ganze Mobile Technologie baut darauf
 

Calamitous

Bekanntes Mitglied
kurz gefaßt C# funktioniert ähnlich und hat damit die gleichen "Geschwindigkeitsnachteile" wie Java gegenüber von C.
Also C++ werden wahrscheinlich beide nie einholen. Der Vergleich der beiden zueinander ist eine Sache mit denen man endlos Bücher füllen könnte. Aber sagen wir doch einfach beide sind im schnitt zirka gleichschnell. C# hat halt den Nachteil das es Systemabhängig ist (dank MS.... :autsch: ansonsten könnte auch C# unabhängig sein)
 

StarSeven

Bekanntes Mitglied
Mal eine Frage, passt hierhin glaub ich.
Durch Just-in-Time Compiler soll Java nichtmehr viel langsamer als C++ sein.
Stimmt das?
Wieviel schneller ist eigentlich C/C++ noch?
 
R

Roar

Gast
java ist im moment nicht allzu schnell. das bessert sich aber immer weiter vor allem mit der JRE 1.5, sodass Java programme shcon fast an die geschwindigkeit eines c++ programms reinreichen können. c# wird auch nicht in OP code kompiliert sondern ind die MSIL die dann ein interpreter ausführen darf Java ist vor allem zu empfehlen da, wie shcon gesagt, es im Mobile bereich sehr of tverwendet wird und in zukunft eine große rolle spielen wird wenn jetzt so geile sachen wie UMTS kommen und so, außerdem weil java auch sehr oft im internet verwendet wird, auf servern sowie auf webseiten und so... ich dagegen kenne kein spezielles einsatzgebiet für c#. naja vielleicht serveranwendungen. dazu kommt noch dass kaum einer den .net interpreter hat, bzw. sich runterlädt. bei java ist es anders, da es ja shcon standartmäßig bei den betriebssystemen dabei ist ( bei linux, Mac OS, Solaris etc.) und da die browser die JRE schon beinhalten oftmals.

achja: java ist nicht von Microsoft, also ein sehr großer vorteil c# gegenüber.
 

Reality

Top Contributor
Hi,
intruder hat gesagt.:
Dieser umweg über die Software kostet Zeit.
Dies ist der Grund dafür, dass Java langsamer ist als C.
nicht nur wegen dem. Der Carbage Collector ist sicher eine nette Idee. Jedoch frisst er Speicher und Rechenzeit.

Liebe Grüße
Reality
 
B

bygones

Gast
Reality hat gesagt.:
Der Carbage Collector ist sicher eine nette Idee. Jedoch frisst er Speicher und Rechenzeit.
Deswegen weglassen ?? Ne...
Außerdem kannst du mit JVM Argumenten den Collector ziemlich beeinflussen !!!

http://java.sun.com/docs/hotspot/gc1.4.2/
http://java.sun.com/docs/hotspot/

Durch Hotspot wurde Java schon viel schneller geschaffen - was scheinbar in 1.5 noch verstärkt wurde !

PS: Außerdem ist noch der größte Performance Killer der Programmierer :bae:
 

Reality

Top Contributor
Von weglassen war nie die Rede. Ich habe nur den Nachteil genannt. Trotzdem wäre es mir ohne lieber.

Liebe Grüße
Reality
 
B

bygones

Gast
also lieber Speicher voll laufen lassen anstatt ein bisschen langsamer zu sein ?! ok...
 

Reality

Top Contributor
Oh mann, was du wieder rausinterpretierst. :roll:
C und andere Sprachen kommen ohne Garbage Collektor auch zu recht. Dort macht man es eben manuell, was auch schneller ist und weniger Speicher verbraucht.

Liebe Grüße
Reality
 
R

Roar

Gast
ja und das ist dann auch der grund wieso der speicher dann zugemüllt wird wen man nicht richtig programmiert, das ist dann auch der grund dass das programm ab und zu mal abstürtzt wenn man nicht richtig programmiert. ich finde es wesentlich riskanter einfach so im speicher rumzufummeln als das jemand anderen übernehmen zu lassen.
 

Reality

Top Contributor
Man sieht und lernt dazu...
Der Programmierer wird schon merken, dass der Speicher voll ist (was wohl eher bei größeren Programmen zutrifft) und den Fehler beheben.

Liebe Grüße
Reality
 

Grizzly

Top Contributor
Reality hat gesagt.:
Oh mann, was du wieder rausinterpretierst. :roll:
C und andere Sprachen kommen ohne Garbage Collektor auch zu recht. Dort macht man es eben manuell, was auch schneller ist und weniger Speicher verbraucht.

Liebe Grüße
Reality

Das die manuelle (also eigenhändige) Speicherverwaltung schneller ist, ist klar. Bloss kämpfen damit auch viele C/C++ Programme mit Memory-Leaks, da es halt sehr schwierig ist, diese Speicherverwaltung als Programmierer 100% hinzubekommen (ich spreche da aus eigener Erfahrung).

Allerdings muss man fairerweise auch sagen: "Memory-Leaks" bekommt man auch in Java hin. Man muss nur irgendwelche Objekte referenzieren und vergessen, diese Referenzen wieder auf null zu setzen. Der Garbage Collector denkt sich dann, dass das Objekt noch benötigt wird und gibt den Speicher nicht mehr frei.

Trotzdem ist die Anfälligkeit bei C/C++ Programme deutlich höher, als bei Java Programmen.
 
B

Beni

Gast
Grizzly hat gesagt.:
Allerdings muss man fairerweise auch sagen: "Memory-Leaks" bekommt man auch in Java hin. Man muss nur irgendwelche Objekte referenzieren und vergessen, diese Referenzen wieder auf null zu setzen. Der Garbage Collector denkt sich dann, dass das Objekt noch benötigt wird und gibt den Speicher nicht mehr frei.
:?:

Der GC ist in der Lage "Referenz-Kreise" von Objekten zu erkennen (die in den Hauptthreads nicht mehr benötigt werden). So einfach kannst du ihn nicht überlisten :wink:
 

Grizzly

Top Contributor
Beni hat gesagt.:
[...]So einfach kannst du ihn nicht überlisten :wink:
Es gibt ja auch nicht darum den GC zu überlisten, sondern das auch in Java Programmen sich Fehler einschleichen können, die zu Memory-Leaks führen.

Im Buch Effektiv Java programmieren ist dazu ein nettes kleines Beispiel:
Code:
import java.util.EmptyStackException;

// Finden Sie das "Speicherleck"?
public class Stack {
	private Object[] elements;
	private int size = 0;
	
	public Stack(int initialCapacity) {
		this.elements = new Object[initialCapacity];
	}
	
	public void push(Object e) {
		ensureCapacity();
		elements[size++] = e;
	}
	
	public Object pop() {
		if (size == 0) throw new EmptyStackException();
		return elements[--size];
	}
	
	/**
	 * Schaffe für mindestens ein weiteres Element Platz,
	 * indem du die Kapazität jedes Mal, wenn das Array
	 * wachsen muss, ungefähr verdoppelst.
	 */
	private void ensureCapacity() {
		if (elements.length == size) {
			Object[] oldElements = elements;
			elements = new Object[2 * elements.length + 1];
			System.arraycopy(oldElements, 0, elements, 0, size);
		}
	}
}
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
I Java updatebar? Oder lieber C# nutzen? Java Basics - Anfänger-Themen 9
L Erste Schritte Java oder doch lieber PHP? Java Basics - Anfänger-Themen 2
W Java-PRogramm liest als EXE-File Nicht USB, jedoch aus NetBeans Java Basics - Anfänger-Themen 23
W Methoden java map ersatz für c++map Java Basics - Anfänger-Themen 2
M Erste Schritte Java Primzahltester Java Basics - Anfänger-Themen 4
A csv Reader für Java? Java Basics - Anfänger-Themen 27
K Java - Enums Java Basics - Anfänger-Themen 30
tomzen Java Unterstützung für exel dateien installieren. Java Basics - Anfänger-Themen 2
Rookar java.lang.NoClassDefFoundError: org/json/JSONException Java Basics - Anfänger-Themen 2
Rookar Mit Button andere java öffnen Java Basics - Anfänger-Themen 4
F Java Object to Hashmap ? Java Basics - Anfänger-Themen 6
I Backend in Java und Ansicht von Dateien in statische HTML Seiten? Java Basics - Anfänger-Themen 15
R Input/Output Verwendung des Euro-Zeichens in Java Java Basics - Anfänger-Themen 7
I Push Nachrichten von JAVA EE App an Mobile App Java Basics - Anfänger-Themen 3
H .java Dateien in Eclipse einbinden und ausführen Java Basics - Anfänger-Themen 1
onlyxlia Schlüsselworte Was meint man mit "einen Typ" in Java erstellen? Java Basics - Anfänger-Themen 2
O Java Kara geschweifte Klammern Java Basics - Anfänger-Themen 2
richis-fragen Mausrad logitech kann links und rechts klick wie in java abragen. Java Basics - Anfänger-Themen 15
XWing Java Klssenproblem Java Basics - Anfänger-Themen 4
R Umgebungsvariable java -cp gibt immer Java-Hilfe... Java Basics - Anfänger-Themen 3
farbenlos Csv Datei in Java einlesen Java Basics - Anfänger-Themen 18
F TableModelListener: java.lang.ArrayIndexOutOfBoundsException: 132 Java Basics - Anfänger-Themen 3
G Java 8 - Support-Ende Java Basics - Anfänger-Themen 7
T Java Weihnachtsbaum + Rahmen Java Basics - Anfänger-Themen 1
N Will mit Java anfangen Java Basics - Anfänger-Themen 13
Ü Java Array - Buchstaben als Zahlen ausgeben Java Basics - Anfänger-Themen 22
M Java Iterator Verständnisfrage Java Basics - Anfänger-Themen 6
M Java Mail Programm Java Basics - Anfänger-Themen 4
Sniper1000 Java 391 für Windows Java Basics - Anfänger-Themen 37
J Java long- in int-Variable umwandeln Java Basics - Anfänger-Themen 6
JaZuDemNo Java im Studium Java Basics - Anfänger-Themen 7
E Java Programm zur anzeige, ob Winter- oder Sommerzeit herrscht Java Basics - Anfänger-Themen 62
I QR code in Java selber generieren Java Basics - Anfänger-Themen 5
V Java-Ausnahmebehandlung: Behandlung geprüfter Ausnahmen Java Basics - Anfänger-Themen 1
krgewb Java Streams Java Basics - Anfänger-Themen 10
A Überwältigt von der komplexen Java Welt Java Basics - Anfänger-Themen 29
O Mehrfachvererbung auf Spezifikations- und Implementierungsebene in Java. Interfaces Java Basics - Anfänger-Themen 19
John_Sace Homogene Realisierung von Generics in Java ? Java Basics - Anfänger-Themen 19
P Meldung aus Java-Klasse in Thread an aufrufende Klasse Java Basics - Anfänger-Themen 1
R mit Java API arbeiten Java Basics - Anfänger-Themen 9
P JDK installieren Probleme bei der Java-Installation Java Basics - Anfänger-Themen 8
S Java: Wie sortiere ich eine ArrayList benutzerdefinierter Objekte nach einem bestimmten Attribut? Java Basics - Anfänger-Themen 2
Timo12345 JNLP File mit Java öffnen Java Basics - Anfänger-Themen 2
S Video Editierung mit Java.._ Java Basics - Anfänger-Themen 2
F Einstelungen in Java - CursorBlinkRate Java Basics - Anfänger-Themen 10
A PHP $_POST["name"] in Java Java Basics - Anfänger-Themen 3
vivansai21 Is there a oneliner to create a SortedSet filled with one or multiple elements in Java? Java Basics - Anfänger-Themen 9
Athro-Hiro Weißes Bild in Java erstellen Java Basics - Anfänger-Themen 3
Arjunreddy Can someone please tell me how to use a debugger in BlueJ(a Java environment) Java Basics - Anfänger-Themen 1
M Java assoziationen (UML) Java Basics - Anfänger-Themen 8
H Excel-Tabellen mit Java erstellen Java Basics - Anfänger-Themen 4
Simon16 Java ArrayListe von einer Klasse sortieren Java Basics - Anfänger-Themen 2
P Wie kann ich in meinem Java Programm etwas dauerhaft speichern? Java Basics - Anfänger-Themen 5
H Nutzt Eclipse alle CPU-Threads beim Ausführen von Java-Programmen? Java Basics - Anfänger-Themen 4
xXGrowGuruXx Java einstieg, leichte sache 0 verstanden Java Basics - Anfänger-Themen 7
A java.sql.SQLException: Data type mismatch. Java Basics - Anfänger-Themen 1
H Java-Programm zur Ausgabe von Zuständen Java Basics - Anfänger-Themen 80
N Java Spiel Figur auf dem Hintergrundbild bewegen. Java Basics - Anfänger-Themen 11
G Kann Java-Programm nicht als jar aufrufen, auch als EXE nicht Java Basics - Anfänger-Themen 19
N Java Taschenrechner hat Jemand vlt einen Tipp dafür wie ich jetzt die buttons verbinden kann und das Ergebnis auf dem textfield anzeigen lassen kann Java Basics - Anfänger-Themen 13
A Lerngruppe Java Java Basics - Anfänger-Themen 2
G Help me in the Java Program Java Basics - Anfänger-Themen 2
L Java- Vererbung Java Basics - Anfänger-Themen 4
LimDul Suche Java Stream Tutorial Java Basics - Anfänger-Themen 2
_so_far_away_ Ich möchte Java lernen Java Basics - Anfänger-Themen 11
benny1993 Java Programm erstellen für ein Fußball-Turnier Java Basics - Anfänger-Themen 3
M Datentypen While-Schleife eine Java Methode erstellen Java Basics - Anfänger-Themen 3
V Bild per Java Script austauschen Java Basics - Anfänger-Themen 7
MoxMorris this Keyword in Java Java Basics - Anfänger-Themen 14
D Wie kann man in Java nach Arrays auf Duplikate prüfen Java Basics - Anfänger-Themen 12
wolei JAVA Zeitdifferenz feststellen. Java Basics - Anfänger-Themen 4
DiyarcanZeren Rekursion in Java Java Basics - Anfänger-Themen 5
wolei Java generic interface in a generic class Java Basics - Anfänger-Themen 6
monsterherz Ablauf der Erstellung eines Java Programmes Java Basics - Anfänger-Themen 17
monsterherz Circle.java:5: error: <identifier> expected Java Basics - Anfänger-Themen 2
julian-fr Wie kann ich am besten Java lernen? Java Basics - Anfänger-Themen 17
A Java-Properties und -RessourceBundles Java Basics - Anfänger-Themen 5
lrnz22 Java-Basics-Aufgabe Java Basics - Anfänger-Themen 8
R Java kann nicht installiert werden Java Basics - Anfänger-Themen 8
marcelnedza Finde meinen Fehler in einer Methode nicht, Java Karol Java Basics - Anfänger-Themen 15
G In ein java Dokument Ton einbinden Java Basics - Anfänger-Themen 1
C was heisst es wenn java ']' erwartet ? Java Basics - Anfänger-Themen 2
KeinJavaFreak Erste Schritte Programm "Java(TM) Platform SE binary " nicht vorhanden Java Basics - Anfänger-Themen 1
KeinJavaFreak Erste Schritte Java "Executable Jar File" nicht vorhanden Java Basics - Anfänger-Themen 1
melisax Java 2D-Array Tabelle Java Basics - Anfänger-Themen 4
melisax Java Array Wert an bestimmtem Index angeben Java Basics - Anfänger-Themen 14
J Java Testklasse Java Basics - Anfänger-Themen 5
P Java Selenium . Parameterized.Parameters erzeugt eine Fehlermeldung Java Basics - Anfänger-Themen 14
W Java-Code mit Array Java Basics - Anfänger-Themen 14
W Java-Code Java Basics - Anfänger-Themen 2
P BeforeEach AfterEach werden nicht ausgeführt. Java / Selenium Java Basics - Anfänger-Themen 4
A Wie führe ich eine Batch-Datei von meiner Java-Anwendung aus? Java Basics - Anfänger-Themen 18
W Java code- TicTac toe Java Basics - Anfänger-Themen 51
Ostkreuz Java Docs Java Basics - Anfänger-Themen 9
R Java boolean Unterschied " == " und " = " Java Basics - Anfänger-Themen 3
D Java Programm mit Batch-Datei starten Java Basics - Anfänger-Themen 32
W Java-code Java Basics - Anfänger-Themen 8
W Java-code Java Basics - Anfänger-Themen 9
W Java-Code erklären Java Basics - Anfänger-Themen 6
A Java Kurs / Tutorial Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben