Developpez.com

Une très vaste base de connaissances en informatique avec
plus de 100 FAQ et 10 000 réponses à vos questions

Developpez.com - Java
X

Choisissez d'abord la catégorieensuite la rubrique :


Guide du débutant Java et Java EE

Date de publication : 15/07/2009 , Date de mise à jour : 15/07/2009

Par Jawher Moussa (Accueil) (Blog)
 

Vous souhaitez apprendre Java ou vous avez déjà commencé mais vous vous sentez perdu dans la jungle des technologies, bibliothèques et autres frameworks du monde Java ? Vous souhaitez faire une application Web mais vous ne savez par quoi commencer : MVC, JSP, Servlet, Tomcat, etc ? Idem, vous souhaitez communiquer avec une base de données mais vous savez pas quoi utiliser de JDBC, Hibernate, JPA, etc. ? Si c'est le cas, cet article est pour vous.
Notez bien : cet article n'est pas un tutoriel pour l'apprentissage du langage Java ni d'aucune des technologies déjà ou qui seront citées. C'est une sorte de guide pour avoir une idée générale et/ou une vue d'ensemble de l'offre Java dansquelques domaines clés, et de là une liste de liens vers des ressources qui vous seront utiles par la suite.

            

I. Ce qu'est Java
I-A. Java le Langage
I-B. Java, la Plateforme
II. Avant tout, maitrisez le langage
II-A. Interfaces graphiques
II-B. public static
II-C. Conventions de nommage
II-D. Bibliothèque standard
II-D-1. Collections
II-D-2. Entrées/Sorties
II-D-3. XML
III. Javadoc
IV. JARs, WARs
V. Outillage
V-A. Editeur de texte et compilation en ligne de commandes
V-B. IDEs
VI. Ce qu'est JEE
VII. Les serveurs Java
VIII. Base de données
VIII-A. JDBC
VIII-B. ORMs
IX. Web
IX-A. MVC
IX-B. Servlets et JSP
IX-C. Frameworks
X. Spring


I. Ce qu'est Java

La création de Java a été initié par James Gosling dans Sun vers 1991 et la première version 1.0 a été publiée en 1995.


I-A. Java le Langage

Java, c'est d'abord un langage de programmation orienté objet qui ressemble beauccoup dans sa syntaxe à C, C++, Javascript, etc.

Il propose les types de données usuels, dont int pour représenter les entiers, String pour représenter les chaines de caractères, boolean pour les bolléens, etc.

Idem pour les structure de contrôle, on retrouve la boucle for (style C), le if/else, le while, etc.

Si vous avez déjà fait du C ou du C++, vous ne serez pas trop dépayasés

Par contre, la partie objets/classes de Java est plutôt spécifique à ce langage et différente du C++ par exemple.


I-B. Java, la Plateforme

Java est aussi une plateforme dont les points clés sont :


II. Avant tout, maitrisez le langage

Voilà, tout est dans le titre. Prenez le temps qu'il faut pour assurer un minimum de maitrise du langage Java.

Java est un langage relativement simple, et les ressources dessus manquent pas :

warning Ne sautez pas directement à la création d'interfaces graphiques (avec Swing généralement) ou encore à attaquer une base de données voire encore à jouer avec la partie Web.

II-A. Interfaces graphiques

C'est un avis personnel bien sûr, tiré de ma propre expérience personnelle lors de mon apprentissage de Java, et de mes observations sur les forums et dans mon entourage.

J'ai donc remarqué cette tendance qu'on a quand on débute Java de vouloir créer des interfaces graphiques très tôt lors de l'apprentissage. C'est logique et a plus d'allure que d'afficher du texte dans une console j'en conviens.

Seulement,le codage des interfaces graphiques via Swing ou autre API implqiue plusieurs notions plutôt avancées (communication inter classes, classes anonymes, partage d'état, etc.) que vous ne maitrisez pas encore à ce stade de l'apprentissage.

Ca rendrait votre contact avec Java pénible et douleureux. Vous aurez à poser des questions mal-reçus sur les forums et si vous tenez le coup, vous résoudrez vos problèmes avec des solutions moches qui n'adhèrent pas à la philosophie objets et Java.


II-B. public static

Si vous vous retrouvez à déclarer pleins de champs (ou méthodes) comme "public static" dans vos classes, c'est que vous vous y prenez mal.

Ceci indique généralement un backgroud procudéral (pascal, C, etc.) et viole les préceptes de bases de la programmation orienté Objets, tel que l'encapsulation.

Il faut savoir qu'un champ statique sera partagé pour toutes les instances de la classe. C'est donc une sorte de variable globale version objet. La programmation objet prone plutôt de minimiser la visibilité/durée de vie/couplage des données.

Ce sujet mérite à lui seul un article complet et dépasse l'objectif de cet article.
Je vous conseillerais juste de garder ça en mémoire, et quand vous vous trouvés forcés de procéder de la sorte (public static) dans votre code, bien que ça marche et que ça résoud le problème, prenez le temps de vous documenter encore plus sur le langage Java (tutoriels, lecture de morceaux de code, etc.) et de revenir dessus plus tard.


II-C. Conventions de nommage

Que vous débutez la programmation avec Java ou que vous venez d'un autre langage, sachez que Java définit des règles plutôt strictes concernant le nommage des variables, méthodes, classes, etc.

La majorité du code Java qui circule dans la nature adhère à ces conventions. Que ces conventions vous paraissent logiques et acceptables ou moches et inadmissibles, sachez que le fait que tout le monde utilise les mêmes conventions facilite la lecture du code (il paraît qu'on passe plus de temps à lire le code qu'à en écrire). Ca permet d'un coup d'oeil de savoir que ceci est une variable ou un champ, ou plutôt un type.

TODO: links


II-D. Bibliothèque standard

La bibliothèque standard a été incluse dans la plateforme Java pour une raison : Vous implifier la vie :)

...


II-D-1. Collections


II-D-2. Entrées/Sorties


II-D-3. XML


III. Javadoc


IV. JARs, WARs


V. Outillage

Dans sa forme la plus simple, la rpogrammation avec Java nécessite un éditeur de texte et le JDK.

Le processus se déroule comme suit :

  1. Créer les dossiers et fichiers java correspondants aux packages et aux classes
  2. Saisir le code dans les fichiers texte
  3. Compiler via la console (javac)
  4. En cas d'erreur, revenir à l'étape 2
  5. Exécuter le code compilé via la console (java)
  6. Revenir à l'étape 1 ou 2
C'est très pénible comme processus de développement et personne ne l'utilise en pratique ou s'il a le choix.

Seulement, il vaut quand même procéder de la sorte quand on débute, non pas par méchanceté/stupidité/gouts pervers, mais pour :

info A propos du dernier point, beacoup de gens commencent directement par un EDI (Eclipse, Netbeans, etc.). Déjà que ça cache les détails de compilation/exécution, mais plus grave encore, quand un problème survient, et du fait qu'ils interagissent uniquement avec l'EDI, il arrive qu'ils ne savent plus si une erreur vient de leur code (une erreur de compilation ou d'exécution) ou de l'EDI qu'ils utilisent.
Je déplace régulièrement et plusieurs fois par semaine (pour ne pas dire jour) des messages postés dans le forum Eclipse et qui n'ont strictement rien à voir avec Eclipse, du genre "je n'arrive pas à me connecter à ma base de données depuis Eclipse" ou "Comment calculer la factorielle d'un nombre N sur Eclipse"

V-A. Editeur de texte et compilation en ligne de commandes


V-B. IDEs

Un EDI est une sorte de super éditeur de texte qui permet de :


VI. Ce qu'est JEE


VII. Les serveurs Java


VIII. Base de données


VIII-A. JDBC


VIII-B. ORMs


IX. Web


IX-A. MVC


IX-B. Servlets et JSP


IX-C. Frameworks


X. Spring



            

Valid XHTML 1.0 TransitionalValid CSS!

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2009 Jawher Moussa. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Responsables bénévoles de la rubrique Java : Mickael Baron - Robin56 -