Что касается Приращение символов переменной

Satyam Бансал:

Ниже кода не работает, компилятор говорит: «Возможно Lossy Преобразование из междунар в полукокс»

public class Main
{
    public static void main(String[] args) {
        char ch;
        ch = 65;
        ch=ch+1;
        System.out.println(ch);
    }
}

то почему же ниже код работает без каких-либо ошибок:

public class Main
{
    public static void main(String[] args) {
        char ch;
        ch = 65;
        ch+=1;
        System.out.println(ch);
    }
}

В то время как единственное различие в обоих кодов является лишь «СН = СН + 1» и «CH + = 1 »?

Мена:

В Java размер переменной полукокс: 2 байта, В то время как размер переменной ИНТ: 4 байта.

NB: байт состоит из 8 битов, который может содержать числовое значение до 256.

В первом фрагменте кода, когда вы делаете (ч +1) компилятор считает, что 1 является INT значение по умолчанию, таким образом, относительно конечного значения как межд тоже. Затем компилятор пытается поставить конечное значение в ч, который является символом ... опс .. это пытается соответствовать значению, представленному 4 байта в переменный, имеющем размер 2 байта!

Эта проблема может быть исправлена, если вы делаете так: Ch = (символы) (ч + 1)

Во втором фрагменте, вы непосредственно приращение переменной ч, независимо от его размера. Таким образом, вы не участвуете в задаче подстраиваться целочисленное значение в переменной полукокса.

рекомендация

отhttp://10.200.1.11:23101/article/api/json?id=432690&siteId=1
рекомендация