Mémo de préparation à l'examen Java Silver

Mémo de préparation à l'examen Java Silver

1. 1. Les bases de Java

--Lors de l'accès aux champs et méthodes statiques

import static jp.co.xxx.Sample.num
import static jp.co.xxx.Sample.print

Vous pouvez omettre le modificateur en définissant ** ʻimport static** au lieu destatic import`

--La signature du point d'entrée a le format suivant - public static void main (String[] xxx) - public static void main (String... xxx)

N'importe quel.

La commande --javac (compiler) a ** l'extension **, la commande java (exécuter) n'a ** pas d'extension **

javac Main.java
java Main

2. Manipulation des types de données Java

--Type primaire

Type de données valeur
boolean 1 bit
char Caractère Unicode 16 bits
byte 8 bit
short 16 bit
int 32 bit
long 64 bit
float 32 bit
double 64 bit

l'octet fait 8 bits et je me souviens deux fois de là int --long avec float --double Notez qu'il y a du positif et du négatif (Exemple: 0b11111111 (= 255) n'est pas entré dans l'octet (-128 à 127))

Numéro de base Notation
Nombre décimal 123
Hexadécimal 0x1A8
8 base 0123
Nombre binaire 0b011

--Notation numérique utilisant "\ _" Ne pas utiliser avant ou après le début / la fin / le symbole ("." "L" "F" "0x" ...) Continu est OK

--Type de char --Litéral de caractère entre guillemets simples --Numéros Unicode (caractères littéraux) commençant par "\ u" entre guillemets simples

N'importe quel N'utilisez pas de littéraux de chaîne (guillemets doubles)

--Seuls "\ _" et "$" peuvent être utilisés comme identifiants Numéros de la deuxième lettre

3. 3. Utilisation d'opérateurs et de structures de décision

--L'opérateur d'affectation (= ou + =) n'est affecté qu'après l'évaluation de l'opérande.

int a = 3;
int b = a += 5; // a = 8, b = 8
int a = 10 * - 10; // a = -100

--Pour la compatibilité littérale numérique, une conversion explicite est requise lorsque la plage est grande → petite. Cependant, pour les littéraux entiers, c'est OK si c'est dans la plage

byte a = 0b10000000; //int → byte est OK s'il est hors de portée, mais il est hors de portée, donc une erreur de compilation
short b = 128 + 128; //Puisqu'il est dans la plage de court, int → court, mais OK
int c = 2 * 3L; //Depuis long → int, erreur de compilation
float d = 10.0; //Depuis double → float, erreur de compilation (10).0f est OK)

--En Java, les types booléens et numériques ne sont pas compatibles

boolean a = 1; //Erreur de compilation
byte b = true; //Erreur de compilation

--instanceOf détermine si une instance peut être gérée avec le type spécifié

interface A {}
class B implements A {}

---

B b = new B();
System.out.println(b instanceOf B); // true
System.out.println(b instanceOf A); // true
false && x++ == 1; // false, x++Ignorer
false & x++ == 1; // false, x++Être terminé
true || x++ == 1; // true, x++Ignorer
true || x++ == 1; // true, x++Être terminé

--Si le même littéral de chaîne apparaît dans le code, la référence à la même instance sera réutilisée. Mécanisme appelé "pool constant" Une instance String est créée dans l'espace mémoire constant au lieu de l'espace mémoire d'instance pour les littéraux de chaîne. Explicitement nouveau

String a = "test"; //Référence à une instance String créée dans un espace mémoire constant
String b = "test"; //Référence à une instance String créée dans un espace mémoire constant
System.out.println(a == b) //vrai, non seulement "égale valeur" mais aussi "même valeur"

String c = new String("test"); // //Référence à une instance String créée dans l'espace mémoire par exemple
System.out.println(a == c) // false
System.out.println(a.equlas(c)) // true
if (Expression conditionnelle A) hoge();
else
if (Expression conditionnelle B) fuga();
else bar();

//Cela équivaut à

if (Expression conditionnelle A) hoge();
else {
	if (Expression conditionnelle B) fuga();
	else bar();
}

--La condition de l'instruction switch est entrée --Int type ou moins de type entier et son wrapper --Caractères, chaînes --Type d'énumération

seulement ** booléen et long ne sont pas **

** Les variables ne sont autorisées dans aucun des **

4. Créer et utiliser des tableaux

int[] a = new int[0]; //Vous pouvez également créer un objet tableau avec 0 élément
int[] b = new int[3];
ArrayList<Integer> c = new ArrayList<>();

System.out.println(a); // [I@677327b6
System.out.println(b); // [I@14ae5a5 * Contrairement à ArrayList, le contenu ne s'affiche pas même si vous imprimez.
System.out.println(c); // []
//Les deux peuvent être compilés
int[] a;
int b[];
int[][] c[];

--Le nombre d'éléments ne peut pas être spécifié lors de la déclaration d'une variable de type tableau Une variable de type tableau est une référence à une instance de tableau et est distincte de la création de l'instance de tableau.

int[3] a; //Erreur de compilation
int b[3]; //Erreur de compilation
int c[] = new int[3]; // OK. int[3]Une instance de tableau de est créée et une référence à celle-ci est définie dans c

--Le nombre d'éléments doit être spécifié pour créer une instance de tableau La variable est OK ** Dans le cas d'un tableau multidimensionnel, seule la première dimension ne peut pas être omise **

int[] a = new int[3 * 5]; // ok
int x = 5;
int[] b = new int[x]; // ok
int[] c = new int[3.5]; //Erreur de compilation
int[] d = new int[]; //Erreur de compilation

int[][][] e = new int[3][4][5]; // ok
int[][][] f = new int[3][][]; // ok
int[][][] g = new int[][][5]; //Erreur de compilation

--Le contenu du tableau peut être initialisé avec l'opérateur d'initialisation du tableau {}

int[] a = {2, 3}; // ok
int[] b = new int[]{2, 3}; // ok
int[] c = new int[2]{2, 3}; //Erreur de compilation Ne spécifiez pas le nombre d'éléments lors de l'utilisation de l'opérateur d'initialisation
int[] d = {}; //Ok sans éléments
int[] e;
e = {}; //Erreur de compilation L'opérateur d'initialisation ne peut être utilisé que lors de la déclaration d'une variable de type tableau
Child[] c = new Child[]{new Child(), new Child()}
Parent[] p = c; // ok

5. Utilisation de la structure en boucle

--Plusieurs variables peuvent être déclarées dans l'expression d'initialisation de l'instruction for, mais uniquement du même type Seules les formules d'initialisation / de mise à jour peuvent être utilisées pour plusieurs documents Il y a toujours une expression conditionnelle

for (int i = 0, j = 10; true; i++, j++) {}// ok
for (int i = 0, long j = 10; true; i++) {}//Erreur de compilation
for (int i = 0; true, i < 10; i++) {} //Erreur de compilation

--Dans l'instruction for, même si l'expression conditionnelle est omise, c'est ok Boucle infinie sauf si break est utilisé

Sample[] array = {new Sample(1), new Sample(2), new Sample(3)};
System.out.println(array[0].getValue()); // 1
for (Sample s : array){
	s = new Sample(4);
	System.out.println(s.getValue()); // 4
}
System.out.println(array[0].getValue()); // 1

// s.setValue(4)Si tel est le cas, l'arrangement d'origine sera également affecté.

6. Méthodes et opérations d'encapsulation

--Le bloc d'initialisation ({} directement sous la classe) est exécuté avant le constructeur

--Dans une sous-classe, ** le constructeur de la super classe doit toujours être appelé au début de son propre constructeur ** S'il n'est pas spécifié, super () sera inséré au début du code Par conséquent, s'il n'y a pas de super () dans la classe parent, une erreur de compilation se produira.

--Utilisez this () pour appeler un autre constructeur Cela doit être appelé en premier

--Modificateur d'accès

Qualificatif La description
public Tout va bien
protected Uniquement les sous-classes ou classes dans le même package
Aucun Seulement les classes dans le même package
private Seulement à l'intérieur de la classe

7. Opération d'héritage

――Les deux suivants ne sont pas repris dans la sous-classe --Constructeur

--Caractéristiques de la classe abstraite --Ne peut pas être instancié --Ainoko d'interface et de classe concrète Autrement dit, il a à la fois une méthode abstraite et une méthode concrète, et ** les champs peuvent également être définis ** --Une classe concrète qui hérite d'une classe abstraite doit implémenter toutes les méthodes abstraites

class Parent {
	String val = "P";
	public String getVal1(){
		return val;
	}
	public String getVal2(){
		return val;
	}
}

class Child extends Parent {
	String val = "C";
	public String getVal2(){
		return val;
	}
}

class Main {
	public static void main (String args[]){
		Parent p = new Parent();
		Parent c = new Child();
		System.out.println(p.val); // P
		System.out.println(c.val); //Puisqu'il est déclaré comme Parent, P
		System.out.println(p.getVal1()); // P
		System.out.println(c.getVal1()); //Puisqu'il s'agit d'une méthode déclarée dans Parent, P
		System.out.println(p.getVal2()); // P
		System.out.println(c.getVal2()); //C parce qu'il a été remplacé
	}
}

--A propos de la réalisation

interface A { public void abst(); }
class B { public void abst(); }
class C extends B implements A{ } // ok.Considéré pour implémenter la méthode abstraite de A

--Cast = "Garantie de compatibilité avec le compilateur" --Si vous écrivez un cast en un incompatible, vous obtiendrez une ** erreur ** au moment de la compilation. -- (Chaîne) 1 // Erreur de compilation

class Parent {}
class Child extends Parent{ }

class Main{
	public static void main(String args[]){
		Parent c = new Child();
		Parent p = new Parent();
		
		Child c_ = (Child) c; // ok
		Child p_ = (Child) p; //Compile, mais au moment de l'exécution ClassCastException
	}
}
int num = 10;
if (num < 11){
	int num = 20; //Erreur de compilation
	int value = 100; //OK car la portée est différente
}
int value = 200;

8. Gérer les exceptions

--try-catch-finally syntaxe ――La commande ne peut pas être modifiée - try

public static int sample1(){
	try {
		throw new Exception();
	} catch (Exception e){
		return 0;
	} finally {
		return 1;
	}
}

public static int sample2(){
	int val;

	try {
		throw new Exception();
	} catch (Exception e){
		val = 0;
		return val;
	} finally {
		val = 1;
	}
}

public static void main (String args[]){
	System.out.println(sample1()); // 1
	System.out.println(sample2()); // 0
}

--Si une exception se produit

Vous devez effectuer l'une des opérations suivantes. Ce qui précède s'applique également à ceux qui utilisent la méthode déclarée throws ** La méthode principale nécessite également l'un des deux ci-dessus **

Manipuler les principales classes de l'API Java

String --La chaîne est immuable Une fois initialisé, le champ ne peut pas être réécrit

--String est une sous-classe de CharSequence

--Concaténation de chaînes de caractères

String a = "30" + 5; // 305
String b = "30" + 5 + 8; // = "305" + 8 = "3058"
String c = 5 + 8 + "30"; // = 13 + "30" = "1330"

String d = "hoge" + null; // = "hogenull"

--StringBuilder a un tampon pour 16 caractères par défaut

StringBuilder sb = new StringBuilder("abc");
System.out.println(sb.capacity()); // 3 + 16 = 19

StringBuilder sb2 = new StringBuilder(5);
System.out.println(sb2.capacity()); // 5

Style Lambda

--Style Lambda --Une interface qui n'a qu'une seule méthode à implémenter est appelée "interface fonctionnelle".

//Interface fonctionnelle
interface Algorithm1 { 
	void perform(String name);
}

interface Algorithm2 {
	String perform(String name);
}

---

Algorithm1 a = (String name) -> { System.out.println(name); }
Algorithm1 b = (name) -> { System.out.println(name); } //Le type d'argument est facultatif
Algorithm1 c = name -> System.out.println(name); //S'il n'y a qu'un seul argument()Facultatif, s'il n'y a qu'une seule méthode{}Optionnel

Algorithm2 d = name -> { return "hello " + name + " !"; }
Algorithm2 e = name -> "hello " + name + " !"; //J'ai besoin d'une valeur de retour{}En cas d'omission, le retour ne peut pas être décrit
Algorithm2 e = name -> return "hello " + name + " !"; //Erreur de compilation

--Une variable portant le même nom que la variable locale déclarée dans la méthode ne peut pas être utilisée comme nom d'argument de l'expression lambda (même portée).

DateTime

ArrayList

tips

//L'exception de sous-classe vient après
try {} catch (Exception e) {} catch (IOException e) { /** cannot reach **/ };
//Écrivez le processus après continuer
for (int i : list){
	if ( flg ) {
		continue;
		hoge(); // cannot reach
	}
}
//Traitement après retour
void sample(){
	return;
	hoge(); // cannot reach
}

Recommended Posts

Mémo de préparation à l'examen Java Silver
Mémo Java Silver
Un mémorandum de l'examen Java8 Silver
Dossier d'examen de qualification JAVA Silver
Mémo de la méthode d'étude Java Silver
Matériel de préparation aux tests de qualification JAVA
Mémo Java
java quoi que ce soit mémo
Comment passer l'examen Java Silver et comment apprendre
java, mémo maven
Guide de stratégie complet de réservation d'examen Java Silver
Remarque sur Java SE 7
java n'importe quoi mémo 2
Étudier Java Silver 1
Mémo de spécification Java
Mémo de modèle Java
[Test de qualification] Résumé de la méthode d'apprentissage Java SE 8 Silver
Java SE8 Silver réussi
java bronze argent passé
Mémo de l'environnement de développement Java
[Résumé] Par exemple, préparation de l'environnement Java
Journée d'étude Java Silver 1
mémo de connaissances de base java
Mémo d'apprentissage Java (méthode)
Mémo Java Kuche Day
Expérience de passage Java Silver
Résumer l'héritage Java (Java Silver 8)
[java] Java SE 8 Silver Note
[Java Silver] À propos de l'initialisation
À propos de l'héritage (Java Silver)
Mémo d'apprentissage Java (basique)
mémo d'expression java lambda
(Mémo) Java pour instruction
expression lambda java [écriture de notes]
Mémo d'apprentissage Java (interface)
[Java] Mémo d'héritage implicite
Mémo d'apprentissage Java (héritage)
mémo de programmation du concours java
Notes sur l'examen Java8 Gold
[Mémo] Liste liée Java
Visant à acquérir Java Oracle Silver, mémo ponctuel (passe)
Remarque sur Java (WebSphere Application Server) [1]
Sous-chaîne de mémo Java (classe standard)
Résumé de la collecte des problèmes Java SE 8 Sliver
[Expérience] Java SE 8 Silver réussi
Longueur du mémo Java (classe standard)
Créer une méthode java [Memo] [java11]
[Java Silver] À propos de la méthode equals
Mémo d'apprentissage Java (opérateur logique)
Mémo d'apprentissage Java (classe abstraite)
Expérience de passage Java SE8 Silver
[Java] Date Termes associés mémo
Mémo d'étude Java 2 avec Progate
[Java Silver] Comment générer un tableau
Que sont les métriques Java? _Memo_20200818
Java HashMap, entrySet [Mémo personnel]
Immédiatement avant de passer l'examen Java Silver / Feuille de vérification des questions de déclenchement
Comment étudier Java Silver SE 8