Immédiatement avant de passer l'examen Java Silver / Feuille de vérification des questions de déclenchement

Et cet article?

Nous avons répertorié les schémas de problèmes qui se sont trompés en raison d'erreurs trompeuses ou simples lors de la préparation de l'examen Oracle Java SE8 Silver.

Tableau

Tableau


 int[] nums;
 nums = {1, 0}; //Compilation / exécution réussie
 nums = {1.0}; //Erreur de compilation

C'est un modèle dans lequel la troisième ligne est confondue avec un point et une virgule. Il y aura un espace après la virgule, alors soyez prudent et vous ne ferez pas d'erreur.

Appel de méthode de chaîne

String


  String hoge = " ho ge ";
  hoge.trim();
  System.out.print(hoge); //"Ho ge" est sorti

Un modèle qui appelle les méthodes String (en particulier trim, replace, etc.) mais ne les réaffecte pas aux variables. L'exemple ci-dessus omet d'autres traitements, mais s'il est enterré dans d'autres opérations de chaîne de caractères, il sera ignoré de manière inattendue.

Renvoyer le type StringBuilder au lieu du type String

StringBuilder


public String hoge(){
  StringBuilder huga = new StringBuilder("huga");
  return huga.append(" huga");
}

C'est un modèle qui convertit StringBuilder en String sans autorisation dans le cerveau après avoir effectué une opération de chaîne de caractères. Il existe plusieurs choix, alors faites attention au type de retour, en particulier lorsque vous utilisez StringBuilder.

Faire correspondre le nom de la variable locale et le nom du champ

Nom de variable


 class Hoge {
   int a;
   void huga() {
    int a;
    ...
    System.out.println(a);
   }
 }

Il est facile à comprendre car il peut être codé par couleur dans l'EDI, mais il est facile d'oublier l'existence de variables locales en une seule couleur. Si vous faites référence à un champ, celui-ci est joint, donc c'est facile à comprendre ...

Héritage d'héritage (implémentation de méthode)

Héritage héréditaire


abstract class A {
    abstract void hoge();
}

abstract class B extends A {
    void huga() {};
}

class C extends B {
}

Dans ce cas, la classe C entraînera une erreur de compilation. La cause est qu'il n'implémente pas la méthode hoge de classe A. La classe B hérite de la classe A, mais comme il s'agit d'une classe abstraite, elle ne provoque pas d'erreur même si hoge () n'est pas implémentée, La classe C est une classe concrète et doit être implémentée.

Si vous avez explicitement défini un constructeur

Dans le cas ci-dessus, le constructeur sans argument n'est pas généré automatiquement. Il est facile de l'oublier lorsqu'il est appelé, mais cela provoque une erreur de compilation.

Annexe: Ce que je ne savais pas avant de l'apprendre

Conversion automatique par toString

ToString est appelé au moment de la concaténation de chaînes et est implicitement converti en String. Je convertis souvent explicitement, et j'ai le sentiment que je n'ai pas eu l'occasion de m'appuyer sur la conversion implicite. (Il y a un problème de combinaison du type StringBuilder et du type String avec l'opérateur +, mais sera-ce utile jour?)

ArrayList add (index int, objet obj)

Je ne savais pas qu'il n'y avait pas beaucoup de situations où vous devez spécifier la position d'insertion et vous pouvez la spécifier avec la méthode add. ~~ Je pense qu'il est plus pratique d'apprendre à lire la référence que de mémoriser les méthodes une par une. ~~

Vous pouvez écrire des lancers dans la méthode mein

Existe-t-il un modèle qui ne devrait pas être traité en interne?

Impression que la préparation du test a été effectuée

J'ai appris beaucoup de modèles que je n'ai pas abordés jusqu'à présent, mais c'est un peu subtil si cela peut être utilisé dans la pratique. Il existe de nombreux sujets tels que les anti-patterns qui fonctionnent grâce à la compilation, et j'estime qu'il est problématique pour les débutants d'apprendre des patterns tels que "composable et exécutable". Par conséquent, je pense que cet examen doit être passé après avoir compris que le but principal de cet examen est d'approfondir la compréhension de la langue et non le but de pouvoir rédiger un bon programme. ~~ Et j'ai réalisé la grandeur de l'IDE et de la référence. ~~

Recommended Posts

Immédiatement avant de passer l'examen Java Silver / Feuille de vérification des questions de déclenchement
Un mémorandum de l'examen Java8 Silver
Dossier d'examen de qualification JAVA Silver
Mémo de préparation à l'examen Java Silver