Programmation Java/Autres langages

Cette section sera utile aux personnes qui apprennent Java mais connaissant un ou plusieurs autres langages. Les confusions courantes sont évoquées et les équivalences listées.

C++ modifier

  • En Java, on utilise final et non const. Le mot const étant tout de même réservé pour un usage ultérieur.
  • Java ne définit pas d'espace de nom (namespace), mais des paquetages (package).
  • On ne libère pas la mémoire. Cela est géré automatiquement par le ramasse-miette. À la place, il est recommandé de libérer les références aux objets qui ne sont plus utilisés en assignant null à la référence, dès que possible ou juste avant une potentielle allocation d'une grande quantité d'objets ou de grands tableaux.
  • Il n'y a pas de pointeurs mais des références :
    • Les opérateurs -> et * (déréférencement) n'existent pas. Il faut utiliser le point (.) ;
    • Les références (contrairement au C++) peuvent être modifiées pour référencer un autre objet en utilisant l'opérateur d'affectation (=).
  • Un char fait un octet en C++ mais 2 octets en Java car l'encodage Unicode utilisé est l'UTF-16.
  • unsigned n'existe pas en Java : tous les types entiers sont signés.
  • L'héritage multiple possible en C++ est interdit en Java, il faut utiliser des interfaces.
  • L'opérateur de résolution de portée « :: » n'existe pas en Java :
    • Pour utiliser un membre d'un package ou un membre statique d'une classe, utiliser le point (.) ;
    • Pour appeler une méthode telle qu'elle est définie dans la classe parente, utiliser la référence super.
  • Les classes ou méthodes ne peuvent être déclarées virtual car elles le sont toutes : toutes les liaisons sont dynamiques.
  • Les opérateurs ne sont pas redéfinissables en Java. Les opérateurs n'agissent pas sur les objets, excepté pour l'opérateur + permettant de concaténer deux chaînes de caractères.

PHP modifier

  • L'équivalent de PDO (PHP Data Objects) est JDBC (Java DataBase Connectivity).
  • Import est remplacé par require_once.
  • Le framework JUnit par PHPUnit.

C sharp modifier

Le langage C sharp ressemble beaucoup à Java dans la syntaxe, cependant :

  • Le nom des méthodes de l'API est similaire, mais commence par une minuscule en Java :
C sharp : ToString, Length, Main
Java : toString, length, main
  • Les accesseurs de propriétés n'existe pas en Java. Cependant, Java utilise la convention Bean (JavaBean), définissant des noms standards pour les méthodes d'accès aux propriétés (getProperty(), setProperty(value), addPropertyCollectionItem(item), removePropertyCollectionItem(item)...). Cette convention est supportée par les outils de développement en Java (NetBeans par exemple), notamment les outils de création d'interface graphique pour les bibliothèques de composants (AWT, Swing, JavaFX...) qui respectent la convention.

Voir aussi modifier