Служба Thorntail с CXF выполняется по-другому при использовании цели Maven

JavaScript имеет две основные категории типов: примитивы и объекты.

var s = 'test';
var ss = new String('test');

Шаблоны с одиночной кавычкой / двойной цитатой идентичны по функциональности. В стороне, поведение, которое вы пытаетесь назвать, называется авто-бокс. Итак, что на самом деле происходит, так это то, что примитив преобразуется в его тип-оболочку при вызове метода типа-оболочки. Положите simple:

var s = 'test';

Является примитивным типом данных. У него нет методов, это не что иное, как указатель на ссылку на необработанную память данных, которая объясняет гораздо более быструю скорость произвольного доступа.

Итак, что происходит, когда вы делаете s.charAt(i) например?

Поскольку s не является экземпляром String, JavaScript будет автоматически помещать s, который имеет typeof string к его типу обертки, String, с typeof object или точнее s.valueOf(s).prototype.toString.call = [object String] ,

Поведение автоматического бокса приводит к тому, что s возвращается туда и обратно в свой тип оболочки, но стандартные операции невероятно быстры, так как вы имеете дело с более простым типом данных. Однако авто-бокс и Object.prototype.valueOf имеют разные эффекты.

Если вы хотите принудительно включить автоматический бокс или придать примитиву своему типу-оболочке, вы можете использовать Object.prototype.valueOf, но поведение отличается , На основе широкого спектра тестовых сценариев автоматическое боксирование применяет только «необходимые» методы, не изменяя примитивный характер переменной. Вот почему вы получаете лучшую скорость.

0
задан Sean 4 March 2019 в 12:27
поделиться