Wiki d'entreprise
Programmation Java/Débogage
Outils de débogage.
Pour déboguer sans TDD (), on peut ajouter le code suivant où l'on veut :
System.out.println("Valeur à afficher");System.exit(0);
Cependant ce n'est pas la meilleure façon de faire.
Il est préférable d'utiliser un IDE supportant le débogage :
Par exemple, Eclipse possède deux manières de lancer une application :
VisualVM.
VisualVM est un outil permettant d'explorer les informations sur les machines virtuelles Java qui tournent sur la machine (une JVM par application).
Cet outil était disponible avec la plateforme Java, édition standard (Java SE) dans les versions du JDK de la version 6 update 7 jusuq'à la version 8 incluse (voir https://docs.oracle.com/javase/8/docs/technotes/guides/visualvm/).
Il est désormais disponible séparément sur le site https://visualvm.github.io/ .
jdb.
jdb est un débogueur en ligne de commande fourni avec le JDK.
Erreurs à la compilation.
Fenêtre de warning.
Une déclaration ne tient pas compte des surcharges possibles, une conversion de variable pose problème. Il faut donc en prévoir les exceptions. Par exemple pour manipuler des entiers :
try {
 i = i/2;
} catch (NumberFormatException e) {
 return 0;
L'ordre des déclarations n'est pas chronologique.
Voir @Override.
Soit :
javac Projet1/Classe1.java
javac Projet1/Classe2.java

Cela peut survenir suite à un Collections.sort(liste), alors même que le Collections.shuffle(liste) fonctionne. Il faut donc utiliser import codice_3 dans le trie : 
import java.util.Collections;
import java.util.Comparator;
private List<T> list;
private Comparator<T> comparator = null;
if(this.comparator!= null) {
 Collections.sort(list, comparator);
Un codice_2 inutile a été détecté.
Cela peut être causé par la mise en commentaires de lignes devenues inutiles (instructions de débogage par exemple).
Lancer la commande "java" vers un .class (et non un .java).
ou.
Il faut passer une conversion de format :
java.text.DecimalFormat df = new java.text.DecimalFormat("#");
monFloat = Float.valueOf(df.format(monDouble));

Le contenu d'une chaîne de caractère ne peut être interprétée comme un nombre :
La méthode mentionnée n'a pas été déclarée, ou du moins pas avec ce type de paramètre (ex : remplacer .addAll() par .add()).
Convertir plus explicitement :
MonEntier = ((Number)MonDouble).intValue();

S'il est possible de retirer le mot codice_5 de la déclaration de la classe, le faire.
Cela peut se produire en invoquant une méthode ou une variable dans sa classe, ou une autre classe.
MaClasse c = new MaClasse();
c.MaMethode();

Il manque sûrement les parenthèses après le nom d'une méthode.
Il convient d'assurer un typage plus fort des paramètres de codice_7, par exemple avec codice_8.
Il manque le délimiteur apostrophe final, ou bien l'apostrophe comme caractère doit être préfixée d'un anti-slash.
Ou bien utiliser une chaîne de caractères pour zéro ou plus d'un caractère.
Il manque le délimiteur guillemet final, ou bien le guillemet comme caractère dans la chaîne doit être préfixé d'un anti-slash.
Une partie de code ne sera jamais exécutée, parce qu'elle est juste après un codice_9 ou un codice_10.
Une exception est lancée explicitement (codice_11) ou par une méthode déclarant pouvoir lancer cette exception sans que la méthode appelante ait déclarée avec codice_12.
Il se peut que la méthode puisse traiter partiellement l'exception (ex : journaliser l'erreur) et qu'elle doive la relancer pour qu'elle soit traitée complétement ailleurs (remonter jusqu'au code de l'interface graphique pour l'affichage d'un message d'erreur).
Dans ce cas, un mélange des deux solutions est à faire :
Si la variable est redéfinie dans une condition différente, il faut les séparer avec des { }, ex :
switch (args[0].toString()) {
 case "1": {
 a = 1;
 break;
 case "2": {
 a = 2;
 break;

Il faut assigner une valeur par défaut à l'objet. Ex :
String[] a = {"", ""};
BufferedWriter bw = null;
Erreurs à l'exécution.
Si deux variables de type "String" identiques ne peuvent pas être comparées.
L'opérateur codice_16 vérifie les références au lieu du contenu.
Il faut donc utiliser la méthode codice_17.
String s = "test";
StringBuffer sb = new StringBuffer("test");
System.out.println(s == new String(sb)); // false !
System.out.println(s.equals(new String(sb))); // true :)
Si une division fait toujours 0.0.
Ajouter codice_18 avant.
Soulevée si l'on applique une méthode sur un objet "null". On peut donc changer l'appel ou lever l'exception :
 try {
 } catch (NullPointerException npe) {
 npe.printStackTrace(); 
Il n'y a pas de méthode main() dans le .jar, ce fichier ne peut donc pas être exécuté directement, mais peut être utilisé par une application ayant une méthode main().
Les classes définies à la compilation (par exemple avec codice_19) sont introuvables.
Un des tableau de la ligne indiquée est appelé avec un indice négatif ou supérieur à sa taille.
Une division par zéro s'évite généralement par un codice_1 sur le dénominateur, ou un codice_14 d'une exception.
Retirer le codice_22 de la boucle du codice_23 ou du codice_24, même s'il est situé après. Si cela ne suffit pas, le retirer de la méthode.
Une application utilisant du code natif a tenté de chargé une bibliothèque de code dynamique (.dll sous windows, .so sous Linux/Mac) 32 bit sur une machine virtuelle Java 64 bits. L'inverse provoque également une variante de ce message d'erreur.
Solutions possibles :
Une application Java utilisant du code natif bien conçue ne devrait jamais rencontrer ce problème : il est possible de détecter la version de Java (32 ou 64 bits) avant de charger la bibliothèque dynamique appropriée, ce qui signifie avoir une version 32 bits et une version 64 bits de cette bibliothèque dynamique (ex : mylib-32.dll et mylib-64.dll).

Photographie/Fabricants/Panasonic/Panasonic Lumix DMC-TS3

Livre de cuisine/Confiture de fraises
Consommation.
Tartinée sur une tranche de pain beurrée, sur une crêpe, une Tarte aux fraises, …
À consommer de préférence dans l'année qui suit la fabrication (ensuite de quoi la confiture s'oxyde, s'assombrit et perd son goût), mais un pot bien stérilisé et fermé hermétiquement reste consommable durant plusieurs années.

Photographie/Fabricants/Yashica/Yashica Mat-124 G

Photographie/Fabricants/Kmart
Guide du MOOC/Histoire
Le terme MOOC a été mentionné pour la première fois par deux auteurs séparément : Bryan Alexander et Dave Cormier. Il a été utilisé dans le cours 
(CCK08), organisé par George Siemens et Stephen Downes. Le cours CCK08 (pour et connaissances connectées était un cours entièrement ouvert qui pouvait être suivi en ligne et gratuitement (il y avait aussi possibilité d'obtenir une certification payante). L'idée derrière le titre de ce cours est importante car elle découle de la théorie du Connectivisme qui dit que l'apprentissage à l'ère du numérique est basé sur la construction de connexions et de réseaux pertinents. Cette idée de se relier les uns aux autres pour construire des connaissances est une des principales dynamiques d'un MOOC.
Si vous voulez vous documenter sur le sujet des MOOC ou du Connectivisme, vous pouvez consulter la page de références de ce guide.
Après ce premier cours CCK plusieurs autres cours suivis: CCK09, PLENK2010, CCK11, LAK11 ... mais comme pour toutes les grandes choses, ces cours ne sont pas apparues du jour au lendemain. 
2 films proposés par Dave Cormier (en anglais) décrivent ce que sont les MOOC et comment ils fonctionnent. Ces films sont courts et très instructifs :

Rédiger sa thèse/Divers/Espaces insécables