pour chaque
Impossible de supprimer les éléments ne peuvent être parcourus que vers l'avant, ne peuvent pas parcourir deux ensembles en même temps
enum (type d'énumération)
Il y a autant d'objets d'instance que de valeurs et vous ne pouvez pas directement énumérer les objets avec de nouveaux
Vous pouvez également ajouter des propriétés, des constructeurs et des méthodes.
Le constructeur peut être un appel interne privé par défaut
Paramètre non directionnel
Ajoutez 3 points après le type ... essentiellement un tableau
Une méthode ne peut avoir qu'un seul paramètre non dirigé, qui doit être à la fin de la liste de paramètres
Importer statique
Boxe et déballage automatique
Type de base boolean / byte / char / int / short / long / float / double
对象 boole / Byte / Character / Integer / Short / Long / Float / Double
==, le type de base est de savoir si le contenu est le même, lorsque l'objet doit juger si le pointeur est le même
Plusieurs exceptions en parallèle | Il ne peut y avoir aucune relation d'héritage entre les exceptions de symbole de tuyau
Affectation directe binaire de type entier
Les littéraux numériques peuvent utiliser des traits de soulignement entre les nombres
interface
La méthode par défaut de l'interface default est l'indicateur de la méthode par défaut sans autorisation et l'implémentation peut être héritée par les sous-classes
La méthode statique static de l'interface ne peut pas être passée aux objets de sous-classe et ne peut pas être appelée
La méthode privée private de l'interface ne peut pas être passée à la sous-classe
Aucune des interfaces ne peut être instanciée (nouveau)
essayer avec la ressource
Principe: L'objet ressource doit implémenter l'interface AutoCloseable, c'est-à-dire implémenter la méthode close (). Fermer automatiquement, peut utiliser directement le
type de var de ressource externe
L'inférence de variable locale (qui ressemble personnellement à python) est essentiellement un type fort, le compilateur déduit automatiquement le type et le type ne peut pas être modifié après l'inférence.
Ne peut pas être utilisé dans les paramètres de méthode (formels) et les types de retour
Commutateur de fusion de branche -> Conditions et actions de jugement de connexion directe
Générique <>
Les avantages peuvent être référencés par différents types d'objets
Type paramétré essentiel, éviter la conversion de type, le code peut être réutilisé
Les classes génériques utilisent <T> après le nom de la classe pour représenter le type introduit
Lorsqu'une interface générique implémente une interface, spécifiez le type. T dans <T> peut également être à nouveau générique
Méthode générique <T> après le modificateur, avant le type de retour
Le qualificatif de limite supérieure s'étend
Peut seulement obtenir, pas définir, car le compilateur ne sait pas dans quel type est mis, il ne peut que garantir quel type est sorti, il peut certainement être transformé en S (peut être reçu avec S)
Super qualificatif de limite inférieure
Vous pouvez seulement définir, pas obtenir. Le compilateur garantit que la classe s ou la super classe de s est insérée, mais il ne peut pas garantir de quel type il s'agit. Il ne peut être reçu que par objet
Il n'y a pas de relation entre les génériques pari <T> et pari <S> (héritage, etc.), quelle que soit la relation entre T et S
principe des pecs
<?> Caractère générique non qualifié, peut représenter n'importe quel type