Martino: Java lernen

Hallo,

ich habe nun einige Jahre PHP hinter mir und will etwas Neues lernen.
Nachdem ich mich interessehalber mit Python und Java (z.B. Java for Total Beginners) beschäftigt habe, ist meine Wahl auf Java gefallen. Neben einfachen "Symphatiegründen" (Syntax) ist ein Hauptgrund sicher auch, dass Java auf dem Arbeitsmarkt offenbar gefragter ist als Python.

Zu meinen Fragen:

  1. Sollte man als Java-Anfänger mit einer IDE lernen oder eher mit einem einfachen Textedtitor beginnen? Als IDE würde ich Eclipse bevorzugen, das ich auch für PHP verwende.
  2. Welches Java-Buch ist für meine Ausgangslage (Programmiererfahrung OOP in PHP4 und 5) besonders empfehlenswert? Trotz (oder wegen) meiner PHP-Vorbelastung ist mir wichtig, Java systematisch und von Grund auf zu lernen.

Martino

  1. Hi,

    Neben einfachen "Symphatiegründen" (Syntax) ist ein Hauptgrund sicher auch, dass Java auf dem Arbeitsmarkt offenbar gefragter ist als Python.

    »»
    Das ist tatsächlich wirklich so.

    Und auch wenn ich dir auch leider keinen Rat geben kann, so habe ich dennoch selbst auch eine Frage zu deinem Thema.

    Warum ist Java so gefragt? Alle Programme die ich nutze und die Javabasis sind, haben eines gemein: Sie beanspruchen extrem die PC-Resourcen, so dass ich so eine Anwendung immer nur widerwillig starte. Egal ob jetzt als Webanwendung oder lokales Programm.

    Ist der einzige Vorteil von Java die OS-Unabhängigkeit, und wenn ja, macht das die Nachteil wieder wett?

    Paul

    1. Ist der einzige Vorteil von Java die OS-Unabhängigkeit, und wenn ja, macht das die Nachteil wieder wett?

      Phyton ist soviel ich weiss auch OS-Unabhängig. Täusche ich mich?

      1. Hi,

        Phyton ist soviel ich weiss auch OS-Unabhängig. Täusche ich mich?

        Weiss nicht, aber Python auf jeden Fall, wie so manch andere natürlich auch ;-)

        Paul

        1. *zuck* Mist, schon wieder Falsch geschrieben

    2. Hallo Paul,

      Warum ist Java so gefragt? Alle Programme die ich nutze und die Javabasis sind, haben eines gemein: Sie beanspruchen extrem die PC-Resourcen, so dass ich so eine Anwendung immer nur widerwillig starte. Egal ob jetzt als Webanwendung oder lokales Programm.

      Ist der einzige Vorteil von Java die OS-Unabhängigkeit, und wenn ja, macht das die Nachteil wieder wett?

      Nein, die OS-Unabhängigkeit ist nur einer von vielen Vorteilen:

      • OS-Unabhängigkeit durch teilweise interpretierte Ausführung
      • Geschwindigkeit durch Kompilierung in Bytecode und JIT-Compiler, der den Bytecode zur Laufzeit in nativen Code übersetzen kann
      • Riesige API, die fast alles mitliefert was man braucht - daneben gibt es viele weitere Funktionalitäten von einzelnen Herstellern
      • Einfache Syntax, keine komplexen und fehleranfälligen Konstrukte wie in C++
      • Sicherheitskonzept durch den Einsatz einer virtuellen Maschine leicht realisierbar
      • Nicht allzuschwer von Anfängern zu verstehen
      • Keine Speicherlöcher durch den Einsatz eines Garbage-Collectors
      • Wird an vielen Universitäten eingesetzt, dadurch ein großes Angebot an Entwicklern

      In der Regel ist nur der Start der JVM langsam. Läuft die JVM bereits, beispielsweise als Server im Bereich von JSP, so ist die Performanz doch recht hoch. Was ebenso an der Geschwindigkeit zehrt sind AWT/Swing. Der Einsatz von Toolkits wie etwa Qt könnte hier zu einer Beschleunigung führen. Das Ganze nennt sich Qt Jambi und kann hier bestaunt werden.

      Grüße

      Marc Reichelt || http://www.marcreichelt.de/

      --
      panic("Oh boy, that early out of memory?");
              linux-2.2.16/arch/mips/mm/init.c
      Selfcode: ie:{ fl:| br:> va:} ls:< fo:} rl:( n4:( ss:) de:> js:| ch:? sh:| mo:) zu:)
      1. Hallo,

        • Keine Speicherlöcher durch den Einsatz eines Garbage-Collectors

        Dem möchte ich widersprechen. Zwar kann man in Java keine Speicherlöcher im
        klassischen Sinne erzeugen, also indem ein Programm einen Speicherbereich
        anfordert, aber auf diesen nicht mehr zugreifen kann, weil kein Pointer mehr
        darauf existiert. In Java muß ja zumindest ein Objekt noch eine Referenz auf
        ein anderes Objekt besitzen muß, damit dieses nicht weggeräumt wird, also
        einem Memory Leak entsprechen würde. Daher könnte man annehmen, dass es dieses
        Problem in Java nicht gibt.

        Tatsächlich ist es aber so, dass man Quasi-Speicherlöcher erzeugen kann.
        Bevor ich mir jetzt lange erkläre, linke ich einfach auf einen Artikel von
        IBM, der die Problematik erklärt: http://www.ibm.com/developerworks/java/library/j-leaks/

        Ansonsten findet Google massenhaft Material zu den Suchbegriffen "java memory leak".

        Gruß
        Slyh

    3. Hallo,

      Warum ist Java so gefragt?

      Plattformunabhängig, sicher, stabil, mittlerweile Open Source, gut!! dukumentierte API etc.

      Alle Programme die ich nutze und die Javabasis sind, haben eines gemein: Sie beanspruchen extrem die PC-Resourcen, so dass ich so eine Anwendung immer nur widerwillig starte. Egal ob jetzt als Webanwendung oder lokales Programm.

      Nenne doch ein paar solche Programme die du verwendest.
      Ich arbeite mit IDEs die selbst in Java geschrieben sind, stimmt sie belasten den Rechner, aber wenn man Entwickler ist, hat man meistens einen entsprechend ausgestatteten Rechner. Ich habe schon Webanwendungen mit Grails und Grooy programmiert, sie laufen ziemlich schnell im Web und im Hintergrund ist alles Java.
      Und es gibt ja wesentlich mehr angefangen von JavaFX über GWT (Google Web Toolkit, das Google letztes Jahr startete und unter anderem ein Java zu JavaScript Compiler hat) und Java ME (Micro Edition) bis schweregewicht anwendungen mit EJB etc.

      Ist der einzige Vorteil von Java die OS-Unabhängigkeit, und wenn ja, macht das die Nachteil wieder wett?

      Welche Nachteile wären das?

      Grüße
      Thomas

  2. Hi,

    Zu meinen Fragen:

    1. Sollte man als Java-Anfänger mit einer IDE lernen oder eher mit einem einfachen Textedtitor beginnen? Als IDE würde ich Eclipse bevorzugen, das ich auch für PHP verwende.

    Also ich bin auch mit Eclipse eingestiegen und dass hat es mir erleichert, weil z.B. Methoden vorgeschlagen werden die man nutzen kann oder Grundgerüste eingefügt werden können (Schleifen, try-catch usw.). Zum anderen find ich es einfacher Fehler zu finden da einem genau die Stelle gezeigt wird.

    1. Welches Java-Buch ist für meine Ausgangslage (Programmiererfahrung OOP in PHP4 und 5) besonders empfehlenswert? Trotz (oder wegen) meiner PHP-Vorbelastung ist mir wichtig, Java systematisch und von Grund auf zu lernen.

    Ich hab mich damit ziemlich gut zurechtgefunden. Es sind viele Beispiele vorhanden und mit den Erklärungen bin ich gut zurechtgekommen. Das ist natürlich immer Geschmackssache, jemand anders würde dir vielleicht ein anderes Buch vorschlagen :) am Besten einfach mal reinschauen (Buch ist ja komplett kostenlos online)

    Viele Grüße, Micha

  3. Hi,
    wie es schon gesagt worden ist, ist das Buch "Java ist auch eine Insel" zu empfehlen.

    Angefangen und weitergearbeitet habe ich ebenfalls mit Eclipse, das opensource Programm ist wirklich sehr gut. Wusste garnicht das man damit auch PHP programmieren kann :)

  4. Moin,

    Zu meinen Fragen:

    1. Sollte man als Java-Anfänger mit einer IDE lernen oder eher mit einem einfachen Textedtitor beginnen? Als IDE würde ich Eclipse bevorzugen, das ich auch für PHP verwende.

    Ich habe meine ersten Erfahrungen mit Java mit einem Texteditor gemacht ;-). Aber eine IDE ist bei Java doch recht hilfreich. Welche du nutzt ist relativ egal.

    1. Welches Java-Buch ist für meine Ausgangslage (Programmiererfahrung OOP in PHP4 und 5) besonders empfehlenswert?

    Ich bin bisher für die Standardedition von Java mit den folgenden Büchern ausgekommen:

    Das schon erwähnte Werk Java ist auch eine Insel in der 7. Auflage: http://openbook.galileocomputing.de/javainsel7/
    Und das Handbuch der Javaprogrammierung:
    http://www.javabuch.de/

    Beide sind netterweise kostenlos erhältlich. Wenn du dann damit durch bist, würde ich dir empfehlen, falls du Java auch beruflich verwenden willst, dich mit der Enterprise Edition zu beschäftigen. Aber erst mal solltest du mit der Standard Edition gut vertraut sein, bevor du dich die Java EE traust.

    Gruß

    Stareagle

  5. Hallo,

    ich werde dann mal mit folgendem Material loslegen:
    Eclipse
    "Java ist auch eine Insel"
    "Handbuch der Java-Programmierung"
    Java API docs

    Das sollte für eine Weile reichen :-)

    Vielen Dank für Eure Hilfe!
    Martino

  6. Hallo,

    ich habe nun einige Jahre PHP hinter mir und will etwas Neues lernen.
    Nachdem ich mich interessehalber mit Python und Java (z.B. Java for Total Beginners) beschäftigt habe, ist meine Wahl auf Java gefallen.

    Jeder hat so seine Gründe. Das Tutorial finde ich ziemlich nutzlos, wenn du nicht Eclipse sondern Java lernen willst.

    Zu meinen Fragen:

    1. Sollte man als Java-Anfänger mit einer IDE lernen oder eher mit einem einfachen Textedtitor beginnen? Als IDE würde ich Eclipse bevorzugen, das ich auch für PHP verwende.

    Texteditor für Java zu nehmen ist ein Grund sich nach 2 Wochen für immer von Java zu Trennen. Du kannst nicht mal die Core-API im Kopf haben geschweige den von Anwendungen die selbst in Java gschrieben eine eigene Java-API mitbringen. Eine IDE sollte schon sein, welche ist an sich nicht so wichtig, die Grundlagen beherrschen alle ausreichend gut.
    Ich persönlich nutzte Eclipse eher weniger. Entweder arbeite ich mit Sun Studio Enterprise (gab bzw. gibt's frei) oder mit IntelliJ. Empfehlen kann ich Netbeans ebenfalls noch vor Eclipse.

    1. Welches Java-Buch ist für meine Ausgangslage (Programmiererfahrung OOP in PHP4 und 5) besonders empfehlenswert? Trotz (oder wegen) meiner PHP-Vorbelastung ist mir wichtig, Java systematisch und von Grund auf zu lernen.

    http://java.sun.com/docs/books/tutorial/java/index.html

    Ein absolutes Muss an Buch ist: Effective Java von Joshua Bloch.
    http://www.amazon.de/Effective-Java-Programming-Language-Guide/dp/0321356683/
    Das Buch schlechthin, wenn du etwas über Java wissen/lernen willst.

    Grüße
    Thomas