À propos de la classification et du concept de Immutable / Mutable / Const / Variable de Java et Kotlin.

Contexte

https://blog.jetbrains.com/kotlin/2017/04/kotlin-1-1-2-is-out/ Quand j'ai vu la nouvelle, je me suis souvenu de l'histoire selon laquelle le val de Kotlin, qui a été enseigné par un ingénieur principal dans le domaine qui avait déjà participé, est un objet immuable en Java. À ce moment-là, on m'a parlé de chaque classification de Java et de Kotlin «Immuable / Mutable / Const / Variable», mais j'ai oublié jusqu'à ce que je voie les nouvelles w ~~

Donc, ce dont je me suis souvenu n'est pas un souvenir mais un disque pendant qu'il fait chaud, et je l'oublierai complètement pendant la Golden Week, donc les classifications de Java et Kotlin ʻImmutable / Mutable / Const / Variable` Je vais l'écrire.

C'est il y a longtemps, il peut donc y avoir des erreurs, alors je vous serais reconnaissant de bien vouloir le signaler.

Classification Immuable / Mutable / Const / Variable de Kotlin

- Const ........... companiaon object { const val }
- Variable
  - Immutable ..... val
  - Mutable ....... var

Ce sera.

Cependant, en tant que spécification de langage de Kotlin,

- Variable
  - Immutable ..... val
    - Const ....... companiaon object { const val }
  - Mutable ....... var

Cependant, ce sera correct.

Au fait, la méthode d'expression constante de Kotlin

companion object {
    const val HOGE = "hoge"
}

Je l'écris comme ça.

Classification Java Immuable / Mutable / Const / Variable

Classification comme utilisation de la langue

- Variable
  - Immutable ..... final
    - Const ....... static final
  - Mutable .......Variables ordinaires

Ce sera.

Cependant, l'idée est la même que Kotlin,

- Const
- Variable
  - Immutable
  - Mutable

Puisque la classification de est correcte, je pense qu'il vaut mieux être conscient de cela.

Si cette classification est faite en japonais

-constant...........La même valeur est toujours entrée (≈ comme nommer un littéral)
-variable
  -Immuable.........Cela ne change pas par rapport au premier. Ce qui vient en premier changera.
  -variable.........Cela change du premier. Quand et combien de fois il change dépend de l'implémentation.

Ce sera. Personnellement, je trouve cette classification assez facile à comprendre et à retenir.

en conclusion

Pour être honnête, jusqu'à ce que j'apprenne cela, j'ai entendu le terme «immuable», mais je ne l'utilise pas. Avec ce sentiment, je n'étais conscient que des deux types de Const / Variable. Ce type de classification n'est pas inclus dans les livres de référence (je suis désolé si je l'ai fait), donc c'était très utile. Le fait que j'ai appris à utiliser la langue correcte mais que j'aie oublié que c'est la preuve que je ne l'ai pas encore apprise. Soyez prudent ^^

Recommended Posts

À propos de la classification et du concept de Immutable / Mutable / Const / Variable de Java et Kotlin.
Langage Java du point de vue de Kotlin et C #
J'ai essayé de résumer les bases de kotlin et java
[Java] J'ai réfléchi aux mérites et aux utilisations de "interface"
À propos de Biocontainers fastqc et Java
À propos du fonctionnement de next () et nextLine ()
Pensez à la combinaison de Servlet et Ajax
À propos de l'idée des classes anonymes en Java
[Java] La partie déroutante de String et StringBuilder
J'ai comparé les caractéristiques de Java et .NET
[Java] Mémo de classification d'erreur de compilation et d'erreur d'exécution
À propos de next () et nextLine () de la classe Scanner
[Java / Kotlin] Redimensionner en tenant compte de l'orientation de l'image
[Java] Différence entre "variable finale" et "objet immuable"
CI l'architecture des applications Java / Kotlin avec ArchUnit
La comparaison d'énumération est ==, et equals est bonne [Java]
Organiser l'état actuel de Java et envisager l'avenir
[Java] À propos de Objects.equals () et examen de la comparaison de chaînes (== et égal à)
J'ai résumé les types et les bases des exceptions Java
[Note technique] À propos des avantages et des inconvénients de Ruby
[Java] [Kotlin] Appeler valueOf et les valeurs de Enum de manière générique
objets mutables et immuables
[Note] Sortie Java de la somme des éléments pairs et impairs
Je n'ai pas vraiment compris le comportement de Java Scanner et .nextLine ()
[Java] Définit la structure de la classe de collection (à propos de HashSet et TreeSet)
Commande pour vérifier le nombre et l'état des threads Java
Les débutants en Java ont brièvement résumé le comportement de Array et ArrayList
À propos du fonctionnement de la session de lecture Java organisée chaque mois par BOF depuis 1998
Le piège que l'implémentation par défaut de l'interface Java 8 apporte
[Java] Différence entre l’affectation d’une variable de type de base et l’affectation d’une variable de type de référence
Pensez aux différences entre les fonctions et les méthodes (en Java)
À propos de la gestion de Null
À propos des instances Java
À propos de la description de Docker-compose.yml
À propos des instructions de déclaration de variable Java
[Java] À propos de String et StringBuilder
À peu près la même et la même valeur
Avantages et inconvénients de Java
À propos du package Java et de l'importation
Parlons de l'expérience passagère de Java SE 8 Programmer II
[Java] Divers résumés joints aux chefs de classe et aux membres
À propos des impressions diverses de "Test des microservices Java" et du contrat axé sur le consommateur
[Java] Obtenez les dates des derniers lundi et dimanche dans l'ordre
Je veux revenir à l'écran précédent avec kotlin et java!
Le concept de conception de l'API de date et d'heure de Java est intéressant
Une histoire sur l'utilisation de l'API League Of Legends avec JAVA
À propos de la relation entre l'opérateur d'égalité de chaîne Java (==) et l'initialisation. Débutants
Lire les 4 premiers octets du fichier de classe Java et générer CAFEBABE
De Java naissant (3 ans) à Node.js (4 ans). Et l'impression de retourner à Java
J'ai essayé de résumer les méthodes de Java String et StringBuilder