« Programmation Java/Autres langages » : différence entre les versions

Contenu supprimé Contenu ajouté
m →‎C++ : gram. + orth. + syntaxe + typographie
Ligne 6 :
== [[:Catégorie:C++|C++]] ==
 
* En javaJava, on utilise <tt>final</tt> et non <tt>const</tt>. Le mot <tt>const</tt> é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 (<tt>package</tt>).
* 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 <tt>null</tt> à 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 <tt>-></tt> et <tt>*</tt> (déréférencement) n'existent pas. Il faut utiliser le point (<tt>.</tt>). ;
** 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 (<tt>=</tt>).
* unUn <tt>char</tt> fait un octet en C++ mais 2 octets en Java car l'encodage Unicode utilisé est l'UTF-16.
* <tt>unsigned</tt> 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 {{page|Interfaces|interfaces}}.
* L'opérateur de résolution de portée « <tt>::</tt> » n'existe pas en Java :
** Pour utiliser un membre d'un package ou un membre statique d'une classe, utiliser le point (<tt>.</tt>). ;
** Pour appeler une méthode telle qu'elle est définie dans la classe parente, utiliser la référence <tt>super</tt>.
* 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éfinissableredéfinissables en Java. Les opérateurs n'agissent pas sur les objets, excepté pour l'opérateur <tt>+</tt> permettant de concaténer deux chaînes de caractères.
 
== [[PHP]] ==