Wie komme ich am besten zu den neuesten Entwicklungen in Java? [geschlossen]

7

Ich bewerbe mich um einen Job als Java-Entwickler. Bis 2001 habe ich einige Hobby-Apps in Java programmiert, danach habe ich hauptsächlich in C ++ und anderen Sprachen gearbeitet. In der Zwischenzeit fühlt es sich an, als sei Java sehr gewachsen, und es gibt alle Arten von Akronymen (EJB, Frühling usw.), die mir unbekannt sind.

Wo finde ich eine knappe, klare Erklärung der jüngsten (5 Jahre) Entwicklung von Java? Was sind Schlüsselelemente zu verstehen?

    
Fredriku73 12.03.2009, 11:18
quelle

4 Antworten

25

2001? Wow, die Zeiten haben sich geändert. Das war was? Java 1.3?

Erstens, Sprachfunktionen:

  • Generika: Java hat in der Version 5.0 im Jahr 2004 Generika hinzugefügt, im Wesentlichen als syntaktischer Zucker, um zu verhindern, dass Sie all diese Umwandlungen von Objekten aus Sammlungen durchführen;
  • Anmerkungen: auch in Java 5. Wird häufig in Persistenz-Frameworks verwendet, Spring und anderswo;
  • Typesafe-Enums: Java 5 hat einen Enum-Typ hinzugefügt, der im Grunde eine Klasse (Art von) ist;
  • Parallelität: Java 5 hat umfangreiche Nebenläufigkeits-Utilities hinzugefügt, so dass Multithreading sich stark verändert hat; und
  • Asserts: Eine stark unterverarbeitete Sprachfunktion, die in Java 1.4 hinzugefügt wurde. Wenn aktiviert, wenn Sie Ihr Programm ausführen, können Assets nach verschiedenen Bedingungen suchen und ausbomben, wenn sie nicht wahr sind. Die Tatsache, dass Sie sie beim Ausführen Ihres Programms aktivieren oder deaktivieren können, ist für die Diagnose sehr hilfreich.

Die Sache ist jedoch, die oben genannten sind nicht einmal die großen Veränderungen. Zu Beginn dieses Jahrzehnts unterzog sich Java radikalen architektonischen und philosophischen Veränderungen.

Im Jahr 2001 waren die großen Dinge EJB, Swing und Servlets / JSP. Keiner von ihnen ist wirklich mehr (zumindest nicht direkt).

Wahrscheinlich ist das Größte, was in Java passiert (seit seiner Gründung imho), dass Frühling und Frühling vor fünf Jahren wirklich groß wurden. Spring ist ein leichtgewichtiger Container, der auch Implementierungsunterschiede zwischen verschiedenen Anbietern und APIs verbergen soll. Das größte an Spring ist jedoch das Prinzip der "Inversion der Kontrolle" oder "Abhängigkeitsinjektion". Die Idee ist, dass Klassen ("Beans") aus einer externen Konfiguration ("Anwendungskontext") zusammengesetzt werden.

Ein typisches Muster in den früheren J2EE-Tagen war der Service Locator. Es wird jetzt weitgehend als ein Anti-Muster betrachtet. Im Grunde würden Sie Code wie folgt sehen:

%Vor%

Wenn Sie heutzutage diese Art von Ansatz befürworten, werden Sie als Anachronismus, Rang-Amateur, Spinner oder eine Kombination der drei angesehen.

Die Abhängigkeitsinjektion in ihrer einfachsten Form wird stattdessen das erforderliche Verhalten in Klassen einbringen, ohne die tatsächliche Implementierung zu berücksichtigen. Diese Art der Trennung ist täuschend stark und eine tiefgreifende Veränderung, mit der Sun (noch) nicht wirklich fertig wird. Es verbessert auch den Gerätetest erheblich.

Swing ist immer noch in der Nähe, aber nicht mehr so ​​groß. Sun hat JavaFX in den letzten Monaten als Flash-Wettbewerber und Applet-Ersatz veröffentlicht. Ich persönlich glaube nicht, dass es eine große Zukunft hat (wie Joel in seinem letzten Podcast sagte, Java auf dem Desktop ist im Grunde tot), aber andere werden nicht zustimmen.

EJB war 2001 groß. Nicht mehr so ​​viel. Es wurde (richtigerweise) als Albtraum der XML-Konfiguration angesehen, Unterschiede in den Anwendungsservern, die sie größtenteils nicht portabel (oder nicht-trivial portabel, wenn Sie bevorzugen) und sie sind solch eine schwergewichtige Lösung (vor 3.0), die sie nicht Ich habe wirklich so viele Anwendungen.

EJB 3.0 hat einen viel springhafteren Ansatz der Abhängigkeitsinjektion (Art von) und Anmerkungen von POJOs (einfachen alten Java-Objekten) genommen.

Servlets und JSP waren 2001 groß. Struts begann damals oder bald danach und war bis vor einigen Jahren groß. Es wurde jetzt von anderen moderneren Web-Frameworks übertroffen (wie Struts 2 - keine echte Beziehung zu STruts 1 trotz des Namens - Spring MVC, Seam und so weiter).

Das große Ding heutzutage - nicht nur in Java - ist das Web und RIAs. Flash / Flex und Javascript / HTML / CSS (plus Frameworks) regieren heutzutage hier den Platz (und ja Theres GWT, aber es hat eine kleine Fangemeinde).

Weblogic und Websphere sind nicht so groß wie 2001. JBoss hat immer noch eine Menge Dynamik, aber mein Appserver der Wahl ist heutzutage Sun Glassfish v2 oder v3 Prelude.

IDEs haben sich ebenfalls geändert. JBuilder war 2001 groß. Jetzt gibt es nur noch drei: Eclipse, Netbeans und IntelliJ (probalby in dieser Reihenfolge der Popularität, aber meine Vorliebe ist IntelliJ, die auch die einzige kommerzielle der Reihe ist).

    
cletus 12.03.2009, 11:40
quelle
4

Ich empfehle Ihnen dringend, Blogs zu lesen. Das ist normalerweise der beste Weg, um auf dem neuesten Stand zu sein.

Ссылка

Sieh dir diesen SO-Thread an: Java lernen

    
Tobias Hertkorn 12.03.2009 11:23
quelle
3

Abonnieren und hören Sie den Java Posse Podcast .

    
Martin OConnor 12.03.2009 11:35
quelle
1

Cletus hat eine erstaunliche Antwort gegeben, aber ich stimme stark mit

überein
  

Java auf dem Desktop ist im Grunde tot

Tatsächlich ist es mehr als lebendig:] Eclipse IDE ist weit mehr als nur ein Entwicklerwerkzeug. Sehen Sie sich das SWT / JFace / Eclipse RCP Framework auf eclipse.org an - mit ihm können Sie selbst Anwendungen wie Eclipse erstellen. Texteditoren, grafische Diagrammeditoren, Modellierungstools, Berichte .. Ich kann selbst nicht mit Eclipse-Technologien mithalten ... einige von ihnen haben es in Spring geschafft und sind sogar in der nächsten Java-Version geplant, um nativ unterstützt zu werden (Module wie OSGi) ). Vergessen Sie Swing, Desktop-Apps werden heutzutage auf RCP Weise entwickelt.

Einige Informationen finden Sie unter Ссылка und finalisieren Sie die Zone unter dzone.com.

Java unterstützt jetzt standardmäßig JavaScript und zusätzlich wurden eine Reihe von Sprachen wie python, ruby ​​usw. als Jython , JRuby . Es gibt auch eine neue Sprache namens groovy und ihr Flaggschiff-Projekt grails (die Spring und Hibernate verwendet).

GWT (Java zu JavaScript Converter + Widget-Set) gewinnt an Aufmerksamkeit. Es gibt sogar ein emergentes Projekt namens Eclipse RAP, das darauf abzielt, RCP-Inhalte ins Web zu bringen.

Abgesehen von JBoss und Glassfish könnten Sie sich für Jetty interessieren - eine extrem leichte und dennoch leistungsstarke Alternative.

    
mantrid 15.03.2010 23:47
quelle

Tags und Links