Mémo d'apprentissage lors de l'apprentissage de Java pour la première fois (mémo d'apprentissage personnel)

Java était la première fois que je passais du développement iOS au développement Android, je vais donc laisser une note de ce que j'ai appris à l'époque.

1. 1. Présentation de Java

1.1 Qu'est-ce que Java?

Java est un langage de programmation orienté objet développé par Sun Microsystems en 1995. Lorsque nous disons simplement Java, cela peut signifier non seulement Java en tant que langage de programmation, mais également toute la plate-forme, y compris les bibliothèques Java et les environnements de développement. Ci-après, lorsqu'il est simplement décrit comme Java, cela signifie Java en tant que langage de programmation.

Java est un langage de programmation doté des fonctionnalités suivantes.

1.2 Mots clés pour chaque version de Java

version mot-clé
Java5 Génériques, autoboxing / unboxing, type enum, annotation, étendu pour instruction, utilitaires de concurrence
Java6 Accélérer AWT / Swing, JDBC4.0, amélioration des performances, amélioration des utilitaires de concurrence
Java7 NIO2、Fork/Rejoignez le framework, essayez-with-Ressources, notation diamant, multi-capture d'exceptions
Java8 Notation Lambda, référence de méthode, API Stream, méthode par défaut de l'interface, nouvelle API Time

1.3 À propos de JDK et JRE

JRE (Java Runtime Environment) est un environnement d'exécution Java, c'est-à-dire un ensemble d'environnements requis pour exécuter un programme écrit en Java. Le JRE se compose d'une machine virtuelle Java (JVM) et d'une API (Application Programming Interface), qui est un ensemble de bibliothèques de classes Java standard.

D'autre part, JDK (Java Development Kit) est un environnement de développement Java. Le JDK est un binaire pour les développeurs Java sur chaque système d'exploitation et est publié par Oracle. Le JDK comprend un JRE et fournit l'environnement nécessaire au développement de Java.

2. Les bases de Java

2.1 Variables et types Java

Les types Java sont grossièrement divisés en types primitifs et types de référence. Il existe les huit types suivants qui appartiennent au type primitif.

Nom du modèle Commentaire valeur Valeur par défaut
boolean Valeur booléenne true, false false
byte Entier 8 bits -128〜127 (byte)0
short Entier 16 bits -32768〜32767 (short)0
int Entier 32 bits -2147483648〜2147483647 0
 long                                           |Entier 64 bits| -9223372036854775808L〜9223372036854775807L    | 0L                                                
 char                                           | UTF-16 points de code| 'a'、'Ah'、'Mots'、'\u03b1'Tel| '\u0000' (caractère nul)                                 
 float                                          |Nombre à virgule flottante 32 bits| 1.54f etc.| 0.0f                                              
 double                                         |Nombre à virgule flottante 64 bits| 2.45d etc.| 0.0d                                              

Il existe quatre types de types de référence: type de classe, type d'interface, paramètre de type et type de tableau. Chacun est décrit séparément.

2.2 Littéral

Un littéral est une méthode de représentation pour décrire les valeurs de type primitif, les chaînes de caractères et les valeurs nulles dans le champ de code. Les littéraux de chaque type sont indiqués ci-dessous.

Types de littéraux Type de valeur générée Méthode de description Exemple
Entier (décimal) int Énumérer les nombres 128
Entier (hexagone) int Préfixez le nombre avec 0x ou 0X 0xab
Entier (nombre 8-aire) int Préfixez le nombre avec 0 012
Entier (binaire) int Préfixez le nombre avec 0b ou 0B 0b11
entier long Ajouter l ou L à la fin de la valeur entière 123L
Nombre à virgule flottante float Ajouter f ou F à la fin de la fraction 2.34f
Nombre à virgule flottante double Représentation fractionnaire ou exponentielle 3.45、345e-2
lettre char Mettre les caractères entre guillemets simples 'a'
Chaîne String Mettez la chaîne entre guillemets "abc"
Valeur booléenne boolean true, false true
valeur nulle type nul null null

2.3 Opérateur

Puisque les bases sont les mêmes opérateurs qu'en langage C, seuls certains des opérateurs de bits rarement utilisés sont décrits.

opérateur Exemple Commentaire
>> a>>1 Décalez un de 1 bit vers la droite. Remplissez le bord gauche avec la même valeur que le bit le plus significatif
>>> a>>>1 Décalez un de 1 bit vers la droite. Remplissez le bord gauche avec 0
~ ~a Inverser tous les bits d'un

2.4 Commentaire

Comme avec le langage C, les commentaires doivent être écrits comme // des commentaires d'une ligne ou / * des commentaires de bloc * /. Fondamentalement, les commentaires au format Javadoc sont souhaitables.

2.5 succursale

Puisque le branchement conditionnel est fondamentalement le même qu'en langage C, les détails sont omis, mais seules quelques notes sont décrites.

2.6 Traitement des exceptions

[À propos des exceptions]

Il existe trois types d'exceptions en Java, qui sont toutes représentées par des classes qui héritent de la classe Throwable.

[Comment lever une exception]

Lever une exception est souvent appelé lancer une exception. En Java, vous pouvez lever une exception avec "throw new exception class ()". Lors de la levée d'une exception vérifiée, il est conseillé d'utiliser @throws dans Javadoc pour décrire dans quelles circonstances l'exception est levée. Certaines des exceptions d'exécution les plus couramment utilisées sont:

exception Cas de jet
IllegalArgumentException Lorsque la valeur de l'argument au moment de l'appel n'est pas valide
IllegalStateException Lorsqu'une méthode est appelée lorsque l'état de l'objet n'est pas valide
NullPointerException Lorsque null est passé à un argument qui interdit null
IndexOutOfBoundsException Lorsqu'une valeur hors limites est spécifiée dans un argument qui spécifie un index

2.7 Ressources

Lorsque vous utilisez un traitement basé sur les ressources, comme l'ouverture de fichier, la connexion à la base de données et la connexion réseau, utilisez la syntaxe try-with-resources. Le processus de fermeture de la ressource est automatiquement exécuté lorsque le bloc est quitté, et le processus de fermeture de la ressource est exécuté même si une exception se produit dans le bloc. Si une exception se produit pendant le processus de fermeture de la ressource, vous pouvez écrire un gestionnaire pour l'exception en ajoutant la théorie des captures à la fin.

try  (Nom de la classe Nom de la variable=Obtenez des ressources)  {
Traitement à l'aide de ressources
}

2.8 modificateur

Les ** modificateurs ** suivants peuvent être spécifiés pour les classes, interfaces, méthodes, constructeurs et variables.

Qualificatif class interface method constructor block var Classification La description
public × Modificateur d'accès Accessible depuis toutes les classes
             [protected](http://www.tohoho-web.com/java/modifier.htm#access)|○|○|○|○|×|○|Modificateurd'accès|<spanstyle="color:rgb(0,0,0);">Protégez l'accès des autres fichiers et classes</span>    
              [private](http://www.tohoho-web.com/java/modifier.htm#access)       |   ○   |     ○     |   ○    |      ○      |   ×   |  ○  |Modificateur d'accès|Accès uniquement depuis sa propre classe
               [static](http://www.tohoho-web.com/java/modifier.htm#access)|○|○|○|×|×|○|modificateurstatique|<spanstyle="color:rgb(0,0,0);">Indique qu'il peut être référencé même s'il n'est pas instancié</span>  
                [final](http://www.tohoho-web.com/java/modifier.htm#final)        |   ○   |     ×     |   ○    |      ×      |   ×   |  ○  |modificateur final|Indique qu'il ne sera pas écrasé. Interdiction d'héritage, de surcharge et de modification
             [abstract](http://www.tohoho-web.com/java/modifier.htm#abstract)|○|○|○|×|×|×|Modificateurabstrait|<spanstyle="color:rgb(0,0,0);">Il est abstrait et indique que le contenu est défini et implémenté à la destination d'héritage.</span>  
               [native](http://www.tohoho-web.com/java/modifier.htm#native)|×|×|○|×|×|×|modificateurnatif|<spanstyle="color:rgb(34,24,21);">Indique qu'il est implémenté dans un langage autre que Java</span>   
         [synchronized](http://www.tohoho-web.com/java/modifier.htm#synchronized)|×|×|○|×|○|×|Modificateurdesynchronisation|<spanstyle="color:rgb(0,0,0);">Indique qu'un contrôle exclusif est effectué dans le cas du multithreading.</span>   
            [transient](http://www.tohoho-web.com/java/modifier.htm#transient)    |   ×   |     ×     |   ×    |      ×      |   ×   |  ○  |Modificateur temporaire|Indique qu'il n'est pas soumis à la sérialisation
             [volatile](http://www.tohoho-web.com/java/modifier.htm#volatile)|×|×|×|×|×|○|Modificateurvolatil|<spanstyle="color:rgb(34,24,21);">Supprimez le cache et montrez que les valeurs sont les mêmes dans les threads</span>
             [strictfp](http://www.tohoho-web.com/java/modifier.htm#strictfp)|○|○|○|×|×|×|Modificateurdefractionflottantestrict|<spanstyle="color:rgb(0,0,0);">L'arithmétique à virgule flottante est indépendante de la plate-forme et fonctionne strictement</span> |

2.9 Annotation

[À propos des annotations]

Annotation signifie «annotation» et est une fonction permettant de saisir des informations supplémentaires pour une classe, une méthode ou un package. Ajouté dans Java SE 5 et utilisé au format "@ + nom d'annotation".

Les annotations suivantes existent dans les annotations.

Les annotations fournies en standard sont expliquées ci-dessous avec des exemples.

[Comment créer une annotation]

import java.lang.annotation.*;
  
//Spécifiez la quantité d'informations de l'annotation définie qui sont enregistrées (conserver les informations même au moment de l'exécution avec RUNTIME)
@Retention(RetentionPolicy.RUNTIME)
//Spécifiez où attacher l'annotation définie dans le champ de code. Il sera possible de décrire en classe, interface et enum avec TYPE.
@Target(ElementType.TYPE)
//Les informations de l'annotation définie seront également décrites dans Javadoc.
@Documented
public @interface Beta {
    String from();    //Il peut prendre un argument de type chaîne nommé from.@Beta(from = "1.0");Etc. Si le nom de l'argument est valeur, la description de valeur peut être omise.
}

2.10 Interface fonctionnelle et expression lambda

[Interface fonctionnelle]

Une méthode qui déclare uniquement le nom de la méthode, la signature et le type de retour est appelée une méthode abstraite et est décrite dans le format suivant.

abstract [Type de retour] <Nom de la méthode>(Signature);

Ceux qui peuvent avoir cette méthode abstraite, des constantes, une méthode par défaut et une méthode statique en tant que membres sont appelés interfaces et sont décrits dans le format suivant.

[Qualificatif] interface <Nom de l'interface> {
Nom de la variable de type de données=valeur;
Modificateur Type de données de la valeur de retour Nom de la méthode(Déclaration de type d'argument);
}

Une interface fonctionnelle est une interface qui n'a qu'une seule méthode abstraite définie. Même si la méthode par défaut et la méthode statique sont incluses, s'il n'y a qu'une seule méthode abstraite, elle est incluse dans l'interface fonctionnelle.

[Type Lambda]

Les expressions Lambda sont une syntaxe introduite dans Java SE 8 qui vous permet de décrire brièvement l'implémentation d'une interface fonctionnelle. Dans un appel de méthode qui prend une interface de type de fonction comme argument, une expression lambda peut être utilisée dans la partie argument de l'interface de type de fonction correspondante et est décrite comme suit.

(Arguments d'expression Lambda) -> {En traitement}

URL de référence: http://www.ne.jp/asahi/hishidama/home/tech/java/lambda.html

2.11 Se référer à la méthode

Référence de la méthode est une syntaxe introduite dans Java SE 8, et la méthode elle-même est ajoutée à la variable de l'interface fonctionnelle. C'est une syntaxe qui peut être attribuée. La référence de la méthode est spécifiée comme suit.

//Pour les méthodes statiques (et dans certains cas les méthodes d'instance)
nom de la classe::Nom de la méthode
  
//Par exemple les méthodes
Nom de la variable d'instance::Nom de la méthode

2.12 Classe facultative

Facultatif est une classe introduite dans Java SE 8 et n'englobe qu'une seule valeur. y a-t-il. Facultatif contient simplement la valeur, mais chaque méthode de Optional change son comportement selon que la valeur conservée est nulle ou non. (Fondamentalement, le traitement est effectué uniquement lorsqu'il n'est pas nul)

Une instance facultative devient un objet appelé vide si la valeur contenue est nulle, et s'il y a une valeur, elle devient une instance qui contient normalement la valeur. Le côté qui reçoit l'Optionnel détermine si l'Optionnel est vide et effectue le traitement. Utilisez la méthode isPresent pour déterminer si Optional contient null. Outre isPresent, il existe orElse qui renvoie la valeur spécifiée lorsque la valeur n'est pas stockée, ouElseThrow qui lève une exception lorsque la valeur n'est pas stockée.

Recommended Posts

Mémo d'apprentissage lors de l'apprentissage de Java pour la première fois (mémo d'apprentissage personnel)
Apprendre pour la première fois java [Introduction]
Introduction à Java pour la première fois # 2
Apprentissage pour la première fois des expressions et opérateurs Java # 3
Spring Boot pour la première fois
Spring AOP pour la première fois
[Android studio / Java] Ce que vous ne comprenez pas lorsque vous le touchez pour la première fois
Réfléchissez lorsque Rails (turbolinks) ne charge pas la page pour la première fois
Résumé des points que les programmeurs Java trouvent glissants lorsqu'ils lisent la source Kotlin pour la première fois
Pour l'apprentissage JAVA (2018-03-16-01)
Premiers pas pour l'apprentissage profond en Java
[DL4J] Premier apprentissage en profondeur Java (reconnaissance de caractères manuscrits à l'aide d'un réseau neuronal entièrement connecté)
[First Java] Créez quelque chose qui fonctionne avec Intellij pour le moment
[Communication Socket (Java)] Impressions de la mise en œuvre de la communication Socket dans la pratique pour la première fois
Première programmation de ma vie Java 1st Hello World
L'histoire de l'apprentissage de Java dans la première programmation
Murs touchés par le premier Rspec
Développement d'Android Studio pour la première fois (pour les débutants)
Utilisez une bibliothèque Java externe pour le moment
Exécutez Dataflow, Java, Streaming pour le moment
Mémo d'apprentissage Java (méthode)
[WSL] Solution pour le phénomène que 404 est affiché lors de la tentative d'insertion de Java avec apt (mémo personnel)
Mémo d'apprentissage Java (basique)
(Mémo) Java pour instruction
Mémo d'apprentissage Java (interface)
Mémo d'apprentissage Java (héritage)
Impressions et doutes sur l'utilisation de Java pour la première fois dans Android Studio
[Deep Learning from scratch] en Java 1. Pour le moment, différenciation et différenciation partielle
Comment étudier le kotlin pour la première fois ~ Partie 2 ~
Comment étudier le kotlin pour la première fois ~ Partie 1 ~
Mémo à faire pour le moment lors de la construction de la série CentOS 6 avec VirtualBox
Mémo d'apprentissage Java (type de données)
Livres utilisés pour apprendre Java
Mémo d'apprentissage Java (opérateur logique)
Java HashMap, entrySet [Mémo personnel]
[Rails] J'ai essayé d'utiliser la méthode button_to pour la première fois
[Mémo personnel] Grammaire Java fréquemment utilisée mise à jour de temps en temps
Modéliser Digimon avec DDD pour la première fois Partie 1
Java14 est sorti, alors j'ai essayé d'enregistrer pour le moment
Mémo d'apprentissage Java (création d'un tableau)
Mémo personnel: métaprogrammation avec réflexion Java
Mémo d'apprentissage Java (instruction while, instruction do-while)
Mémo après le premier projet Spring-MVC-
Mémo après le premier projet Spring-Database-
[Java] Mémo de méthode de mesure du temps de traitement
[Ruby on Rails] Lors de la première connexion ・ Comment diviser l'écran en deux à l'aide de jQuery
Un mémo lorsque vous souhaitez effacer la partie horaire de l'agenda
L'histoire de la sortie de l'application Android sur le Play Store pour la première fois.
Créer une application et la déployer pour la première fois avec heroku
(Mémo d'apprentissage) Mesures Java Niveau 2: Plage de questions
Mémo après le premier projet Spring-What is Spring-
[Note personnelle] Le type de données Java est ennuyeux
Mémo: [Java] Vérifiez le contenu du répertoire
Toucher Kotlin pour la première fois-Enum Classes
À propos de la procédure pour que Java fonctionne
Organisation des notes dans la tête (Java-Arrangement)
Remarques sur la communication HTTP avec Java (OkHttp)