ПредишенСледващото

Отговорите на въпросите за интервюто Level29

1 Какво е autoboxing?
Avtoupakovka механизъм имплицитно инициализиране на обекта класове-обвивки (Byte, Кратко, характер, Integer, Long, Float, Двойни) стойности, съответстващи оригинални примитиви (респ. Byte, кратко, знак, вътр, дълги, поплавък, двойно), без изричното използвате конструктора.
Avtoupakovka се осъществява чрез директно определяне на примитивна - клас обвивка (при използване на "=") или в предавателните параметри в метода на примитивна ( "обвивка клас" тип). Avtoupakovke в "опаковки" може да се подложи като примитив променливи видове, и събират време константи (литерали и крайните-примитиви). По този начин трябва да са литерали синтактично правилни за инициализиране на променлива източник примитивен тип.

Avtoupakovka променливи на примитивни видове изисква точно съвпадение на оригиналния примитивен тип - ". Клас-обвивка" от типа на
Например, един опит avtoupakovat тип байт променлива С една дума, без изрично преобразуване байт> кратко компилация ще предизвика грешка.

Avtoupakovka константи на примитивни видове позволяват по-големи граници за съответствие. В този случай, компилаторът ще може да упражни предварително примитиви неявни разширяване / свиване тип. Реализациите ще се проведе на два етапа:
1) имплицитно разширение (свиване) на първоначалния вид на примитивна към примитивен тип съответните опаковки (за превръщане int-> Байт, първият компилатор имплицитно Int стеснява в байт)
2) в подходящ avtoupakovku примитивен "обвивка клас" (компилатор avtoupakovyvaet байт> байт). обаче, има две допълнителни ограничения в този случай:
а) възлагане на примитивен - "Wrap" може да се направи само от оператора "=" (не може да мине такова предприятие в параметрите на метода, без изрично тип отливка)
б) вида на левия операнд не трябва да е по-стар от характер, не е правилният тип dozhen по-стар от инт (допустимо разширяване / свиване на байт <-> С една дума, байт <-> Чар, късо <-> овъглявам
и единственото ограничение байт <— int, short <— int, char <— int, все остальные варианты требуют явного приведения типов)

Свързани статии

Подкрепете проекта - споделете линка, благодаря!