Pour des notes personnelles
--Attention lors de l'utilisation de la classe wrapper
--La valeur initiale est nulle, donc si vous essayez de la conserver telle quelle, elle tombera avec nullpo.
branche sur chaîne
hashCode ()
et ʻequals () `sont comparées dans cet ordre.
--Sensible aux majuscules et minuscules.public class Sample {
static int num1;
static Integer num2;
public static void main(String arg[]) {
//Le type de données de base est initialisé à 0
switch (num1) {
case 0:
System.out.println(0);
break;
default:
System.out.println(1);
break;
}
//Tomber avec Nurpo
switch (num2) {
case 0:
System.out.println(0);
break;
default:
System.out.println(1);
break;
}
}
}
//résultat
[skanehira@MacBook java]$ java Sample
0
Exception in thread "main" java.lang.NullPointerException
at Sample.main(Sample.java:17)
[skanehira@MacBook java]$
_ (trait de soulignement)
protégés et privés ne peuvent utiliser que des méthodes
--ʻAccès gamme (tableau ci-dessous) `Décorateur d'accès | sens |
---|---|
public | Accessible de n'importe où |
protected | Uniquement accessible à partir du même package ou des classes héritées |
non spécifié | Uniquement accessible à partir du même package |
private | Uniquement accessible depuis la classe |
Comment appeler un membre statique
--Nom de classe, membre statique
--Nom de la variable membre statique--` Accès direct au sein de la classe des instances et des membres statiques`` --static → l'instance est NG --instance → statique est OK
Lieu applicable | sens |
---|---|
variable | Devenir une constante |
Méthode | Ne peut pas être remplacé |
classe | Ne peut pas hériter |
initialiseur statique`` --Un bloc qui ne s'exécute qu'une seule fois lorsque la classe est chargée. --ʻInitiateur`` --Un bloc qui est exécuté avant que le constructeur ne soit appelé lors de l'instanciation. --ʻOrdre d'exécution
--static initializer-> initializer-> constructeur.public class Sample {
public static void main(String arg[]) {
new Init();
}
}
class Init {
//initialiseur statique
static {
System.out.println("static initializer");
}
//Initialiseur
{
System.out.println("initializer");
}
//constructeur
Init() {
System.out.println("construct");
}
}
//Résultat d'exécution
[skanehira@MacBook java]$ java Sample
static initializer
initializer
construct
Enum
public static final
et devient une constante de classe.
--Ne peut pas être instancié avec new.--ʻEnumérateur type constructeur / variable / définition de méthode`
public class Sample {
public static void main(String arg[]) {
// toString():Le nom de la constante est renvoyé
System.out.println(Status.ACTIVE);
System.out.println(Status.STOP);
//Méthode définie
System.out.println(Status.ACTIVE.getNum());
// ordinal():Position constante de retour
//0 à partir de l'ordre défini,1,2...
System.out.println(Status.ACTIVE.ordinal());
System.out.println(Status.STOP.ordinal());
// values():Obtenir une liste des constantes définies
for (Status s : Status.values()) {
System.out.println(s);
}
// valueOf():Obtenir des objets de constantes définies
Status active = Status.valueOf("ACTIVE");
// name():Obtenir le nom de la constante
System.out.println(active.name());
}
}
enum Status {
//Passer int au constructeur pour créer un nouvel objet de type Status
ACTIVE(0), STOP(1);
//Définir des variables
private int num;
//constructeur
Status(int n) {
this.num = n;
}
//Méthode
public int getNum() {
return num;
}
}
//résultat
[skanehira@MacBook java]$ java Sample
ACTIVE
STOP
0
0
1
ACTIVE
STOP
ACTIVE
** Classe d'objets **
toString()
Lors du remplacement, ajoutez public
(j'oublie souvent ...)
finalize()
Exécuté avant que l'objet ne soit détruit par le garbage collector.
Le moment d'exécution ne peut pas être spécifié et la machine virtuelle le fera de manière appropriée. --super finalize () doit être appelé explicitement.
--ʻEquals () et hashCode () --ʻEquals ()
compare s'ils sont le même objet
Pour la classe String, comparez s'il s'agit du même caractère
est vrai,
hashCode () renvoie la même valeur ʻEquals ()
retourne false sihashCode ()
a des valeurs différentes
Même si ʻequals () est faux, les deux
hashCode () `sont OK.ʻImporter le nom du package statique.Nom de la classe.Méthode statique;
ʻImporter le nom du package statique.Nom de la classe.Variable statique; `import static java.lang.System.out;
public class Sample {
public static void main(String arg[]) {
out.println("import static");
}
}
//résultat
[skanehira@MacBook java]$ java Sample
import static
-- Argument de longueur variable
string
ou [] string
.-- Arguments de longueur variable et surcharge
Les arguments de surcharge sont jugés dans l'ordre de priorité suivant.
Correspondance exacte → Conversion de type implicite → AutoBoxing → Variable de longueur variable
ceci et super
Si aucun constructeur n'est défini, un constructeur sans argument est défini au moment de la compilation.
Si un constructeur est défini, aucun constructeur sans argument n'est défini au moment de la compilation.
--Si le constructeur de la sous-classe n'a pas super ()
ou super (avec arguments)
,
Super ()
sans argument est défini au moment de la compilation.
"this" et "super" doivent être définis au début du constructeur.
Qu'est-ce qu'une classe abstraite
?
--Une classe avec résumé.--ʻClasse d'héritage de classe abstraite`
-- Définition de membre statique de la classe abstraite
</ summary>
nom de classe.static member
comme n'importe quelle autre.Qu'est-ce qu'une interface
?--Constants et méthodes
public static final
, elles doivent être initialisées au moment de la déclaration.public abstract
, vous devez donc ajouter public
lors de la substitution.-- Classe d'implémentation
--ʻHéritage --Héritage multiple (
subIF étend XIF, YIF {}) et implémentation multiple (
classe A implémente XIF, YIF {}`) sont possibles
Règle de conversion de type de type de données de base --Implicite -
byte→
char or short→
int→
long→
float→
double`--Jeter
Ordre inverse à la conversion de type implicite
Mise en garde
--Si la taille des données correspond au type, vous pouvez l'affecter au type byte, short, char
tel quel.
--Lors du calcul avec l'opérateur, si un A est double, float, long, int,
Si un B a un type de données plus petit, il est converti en l'autre type de données A.
--Règle de conversion du type de type de référence
--Implicite
--Gérer les instances de sous-classes comme des variables de superclasse.
--Jeter
Les instances de sous-classes peuvent être converties en types de superclasses. ―― L'inverse n'est pas possible. (Parce que les superclasses ne contiennent pas de sous-classes)
Mise en garde
La conversion de type n'est pas possible pour les classes qui ne sont pas héritées.
--Règle
--`Définition et compilation``
--ʻAccès aux classes imbriquées --ʻClasse externe. Nom de classe non statique Nom de la variable = new Classe externe (). Nouveau nom de classe non statique ();
--ʻOuter class.static class name Nom de la variable = new Outer class.static class name () --Lors de l'utilisation de classes imbriquées dans des méthodes
nouveau nom de classe non statique (). methodA ()
nom de classe statique.methodB ()ou
nouvelle classe statique (). methodB ()`
--ʻApplication de la classe imbriquée`
--Règle
;
est requis à la fin.--Règle
Cohésion
Fait référence à la pertinence de la division des rôles de classe.
Si le degré d'agrégation est élevé,
Il existe une forte relation entre les méthodes et les variables entre les classes,
La plage d'influence est large lorsqu'un changement de spécification se produit.--Degré de couplage
Fait référence au degré de dépendance entre les classes.
Un faible degré de dépendance est appelé couplage lâche.
Il est souhaitable que le degré soit faible.
Je ne sais pas si ça va, mais par exemple, une voiture ne se déplace pas sans pneus car elle a un haut degré de couplage.
Même sans pince à DVD, la voiture se déplacera avec un faible degré de couplage.
-** Composition ** Une relation d'agrégation particulièrement forte est appelée composition. (↑ Exemple de voiture) Le temps de survie de la classe entière et de la classe partielle est le même.
-** Modèle **
Ton unique
Un motif qui ne crée qu'un seul objet.
Créez un constructeur privé
et
Maintenez l'instance dans la variable private static final
Ceci peut être réalisé en préparant une méthode public
qui renvoie une instance.
DAO
Un modèle qui sépare l'objet de persistance et la logique d'application (connexion à la base de données (ouvre le fichier), CRUD).
--Usine
valueOf ()
de chaque classe wrapper.Java API
ne change pas la destination de référence, on a l'impression que str2 est ajouté à str1. --
Différence --
StringBuildern'est pas thread-safe,
StringBuffer` est thread-safe.
A part ça, c'est presque la même chose.--ʻEquals méthode`
est
String` et les classes wrapper (telles que Integer)--ʻAutres méthodes`
constructeur | La description |
---|---|
StringBuffer() | Construisez un StringBuffer d'une capacité de 16 caractères |
StringBuffer(int capacyty) | Construire un StringBuffer avec la capacité spécifiée |
StringBuffer(String str) | Construire un StringBuffer initialisé avec les caractères spécifiés |
Méthode | La description |
---|---|
StringBuffer append(String str) | Ajoutez la chaîne de caractères spécifiée à la fin |
StringBuffer insert(int offset, String str) | offset-Insérez la chaîne de caractères spécifiée à la position 1 |
StringBuffer reverse() | Inverser la corde(cba pour abc) |
void setCharAt(int index, char ch) | Remplacer le caractère d'index par le caractère spécifié |
StringBuffer replace(int start, int end, String str) | commencer à finir-Remplacez les caractères jusqu'à 1 par le caractère spécifié |
String subString(int start, int end) | commencer à finir-Renvoie une chaîne de caractères qui spécifie jusqu'à 1 caractère |
String subString(int start) | Renvoie la chaîne de caractères du début à la fin |
StringBuffer delete(int start, int end) | commencer à finir-Supprimer les chaînes jusqu'à 1 |
--Méthode
- ValueOf()
Méthode statique qui convertit le type de données de base en une classe wrapper
- `parseXXX`
Méthode statique qui convertit une chaîne en un type de données de base
- `ValueXXX`
Une méthode pour convertir une classe wrapper en un type de données de base
-** Faisceau de ressources **
--Utilisation de la classe ListResourceBundle
-- Implémentation du bundle de ressources et de sa classe d'utilisation ①
-- Implémentation du bundle de ressources et de sa classe d'utilisation ②
--Utilisation de la classe PropertyResourceBundle
--`Rechercher l'ensemble de ressources``
--ResourceBundle.Control class
NumberFormat
DecimalFormat
DateFormat
SimpleDateFormat
Caractère bêta
java.util.regex
-** Collection **
Types et fonctionnalités
List,Set,Queue,Map
--Implémentation de l'interface de liste
-- Implémentation de l'interface Set
--ʻIterator --
Implémentation de file d'attente --
Implémentation de l'interface de carte`Opérateur de diamant
--Définition de classe
--Définition de la méthode
--ʻDéclaration d'interface --
Génériques avec héritage --
Génériques avec des caractères génériques`` Interfaces de comparaison et de comparaison
- Comparable
- Comparator
Tri et recherche de tableaux et de listes
--ʻArrays class`checked
unchecked
--ʻClasse d'exception d'origine`Rôle de chaque bloc
Capture de blocs multiples
--Multi Catch
throw
throws
rethrows
--`Attention lors du remplacement Formatage de flux
--Analyse de flux
NIO.2
-** Paquet **
- java.nio.file
- java.nio.file.attribute
- java.nio.channels
--
Rechercher l'arborescence des fichiers --`Rechercher des fichiers
--`Changer et surveiller``JDBC
-** Paquet **
- java.sql
- javax.sql
- javax.sql.rowset
Interface de relevé
--ʻEnquête --ʻInsérer
--Supprimer
ResultSetMetaData interface
Résultats de la requête de défilement, spécification de position absolue / relative
--ʻInsérer / mettre à jour les données sur l'objet ResultSet``Contrôle
--Niveau de séparation des transactions
Interface de RowSet
--Type d'implémentationRowSet`` -
Connected RowSet -
Disconnected RowSet`-** Fil ** --Créer et démarrer