java - Byte自增问题
PHPz
PHPz 2017-04-18 10:56:08
0
5
467
Byte a = 123;
        a++;
        System.out.println(a);// 124
        /*
         * 上面的结论是: a++的时候首先是 创建一个Byte对象124,然后将a引用指向这个Byte 124对象,这个解释有问题吗?
         */

        Byte b = 126;
        b = b++;
        System.out.println(b);// 126
        /*
         * 根据第一段代码的执行结果;
         * b=b++,的执行操作是首相将b引用赋值给b引用,所以没有改变,然后将b引用所指向的对象自增(这个实现的过程是创建一个对象值为127,
         * 然后让b引用指向这个127),如果这样理解,结果不应该是127吗
         */

求解,谢谢

PHPz
PHPz

学习是最好的投资!

répondre à tous(5)
大家讲道理

b = b++ : Si vous connaissez le C++, vous pouvez vous référer à l'implémentation de l'auto-incrémentation de ++, et vous devriez pouvoir comprendre pourquoi il s'agit de 126

Byte operator++(Byte) {
    Byte temp = *this;
    this->value = this->value + 1;
    return temp;
}

On peut comprendre que b est égal à temp avant que l'opération ne soit incrémentée

Ty80

++, -- doit être écrit séparément, sinon vous vous causerez des ennuis.
Pour des questions comme i=i+++++i, je ne peux que mépriser...

小葫芦

Résolu
http://blog.csdn.net/brooksyc...
Publier des commentaires

迷茫

La différence entre ++b et b++ est en fait inutile

巴扎黑

Le cadre de pile Java contient une table de variables locales et une pile d'opérandes. L'opération d'incrémentation ++ est une opération directe sur les valeurs de la table de variables locales Lorsque i=i++, ajoutez d'abord. i dans la table des variables locales. Poussez-le dans la pile d'opérandes, puis ajoutez 1 à i dans la table des variables locales pour devenir 127, puis écrivez i (126) dans la pile d'opérandes dans i dans la table des variables locales, couvrant le 127 données et les changer en 126. L'ordre de ++i est différent. Il incrémente d'abord i dans la table des variables locales, puis l'ajoute à la pile d'opérandes.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!