Maison  >  Article  >  Java  >  Introduction détaillée aux types de données Java et au passage de paramètres

Introduction détaillée aux types de données Java et au passage de paramètres

零下一度
零下一度original
2017-07-23 17:42:191355parcourir

Les types de données fournis par Java sont principalement divisés en deux catégories : les types de données de base et les types de données de référence.

Java中的基本数据类型
名称 大小  取值范围
byte型 (字节) 8bit -128-127  (-2^7到2^7-1)

short型 (短整型)

16bit -2^15到2^15-1
int型 (整形) 32bit -2^31到2^31-1
long型 (长整型) 64bit -2^63到2^63-1
float型 (单精度浮点型) 32bit  
double型 (双精度浮点型) 64bit  
char型 (字符型) 16bit  
boolean型 (布尔型) true和false 只有两种结果,要么为“真”要么为“假”
Java Types de données de base dans
Nom Taille Plage de valeurs
type d'octet (octet) 8 bits -128-127 (-2^7 à 2^7-1)
Court type (type entier court) 16 bits -2^15 à 2^15-1
type int (entier) 32 bits -2 ^31 à 2^31-1
type long (entier long) 64 bits -2^63 à 2^63-1
type flottant (type à virgule flottante simple précision) 32 bits
double type ( type à virgule flottante double précision) 64 bits
type de caractère (type de caractère) 16 bits
type booléen (Type booléen) vrai et faux Il n'y a que deux résultats, Soit "vrai " ou " faux "

Types de données de référence en Java :

Java est un langage orienté objet, et toutes les classes de Java sont utilisées. Les définitions d'interface et de classe abstraite appartiennent toutes aux types de données de référence de Java.

Comment comprendre les types de données de base et les types de données de référence en Java :

1. Les types de données de base de Java sont fournis par le langage Java lui-même Le type de données n'a pas besoin d'être défini par l'utilisateur ;

2. Le type de données de référence en Java est défini par l'utilisateur, et la définition du type de données de référence nécessite le utilisation des types de données de base ;

3. En termes de relation mémoire :

La mémoire de Java est divisée en deux grands blocs : la mémoire de pile et mémoire de tas

La mémoire de pile est chargée de stocker les variables de type de données de base et les variables de référence d'objet dans la méthode

La mémoire tas est chargée de stocker les données générées via le nouveau mot-clé, c'est-à-dire les attributs et les méthodes de la classe après le nouveau mot-clé.

Les types de données de base en Java sont stockés dans la mémoire de pile, tandis que les noms de types de types de données de référence sont stockés dans la mémoire de pile, mais le contenu des types de données de référence est stocké dans tas de mémoire au milieu. Les deux sont connectés via des adresses pour réaliser un accès mutuel.

4. Lorsque les données sont converties d'une petite plage à une grande plage, la JVM nous aidera automatiquement à implémenter le type. conversion. Par exemple : int i=10; long l=i; Semblable à cette conversion de données, la machine virtuelle Java peut automatiquement nous aider à terminer ce travail. Cependant, lorsque les données sont converties d'une large plage à une petite plage, une conversion de type forcée doit être ajoutée manuellement. Si un débordement de données se produit pendant le processus de conversion, il sera modifié en fonction de la plage de valeurs d'une petite plage de types de données. Par exemple, si l'entier -129 est attribué à byte, alors la valeur de l'octet de sortie est 127 si l'entier 128 est attribué au type byte, alors la sortie devrait être -128.

Passage de paramètres en Java :

Types de données de base :

public void test1(){
        int i=10;
        long l;
        l=i;
        System.out.println(i);//输出值10
        System.out.println(l);//输出值10
        l=i+1;
        System.out.println(i);//输出值10
        System.out.println(l);//输出值11
    }

Puisque le type de données de base est que le nom de la variable est stocké dans la mémoire de la pile avec la valeur de la variable, i et l are Les deux variables sont indépendantes l'une de l'autre, et l'opération d'affectation à l n'affectera pas la valeur de i.

Type de données de référence :

public class Book {
    private String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}
public class Test {
    public static void main(String[] args) {
        Book book1=new Book();
        book1.setName("《百年孤独》");
        Book book2=new Book();
        book2.setName("《围城》");
        System.out.println("book1:"+book1.getName());//输出:book1:《百年孤独》
        System.out.println("book2:"+book2.getName());//输出:book2:《围城》
        book1=book2;
        book1.setName("《活着》");
        System.out.println("book1:"+book1.getName());//输出:book1:《活着》
        System.out.println("book2:"+book2.getName());//book2:《活着》

    }
}

Pour la première fois, deux nouveaux objets sont le livre1 et le livre2. Leurs titres de livre sont respectivement « Cent ans de solitude » et « Forteresse assiégée ». Ensuite, grâce à l'affectation, book1 pointe également vers la même zone mémoire que book2. À ce moment-là, que l'opération sur book1 ou book2 affecte la même zone mémoire. C'est pourquoi le résultat ultérieur est le même. De plus, puisque l'espace mémoire initialement ouvert par book1 n'est pas utilisé, le mécanisme de garbage collection de la JVM le traitera et libérera ces espaces mémoire inutilisés.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn