Простой способ, используя commons-lang-2.3.jar, что библиотека java для клонирования списка
link download commons-lang-2.3.jar
Как использовать
oldList.........
List newList = new ArrayList();
foreach(YourObject obj : oldList){
newList.add((YourObject)SerializationUtils.clone(obj));
}
Надеюсь, это поможет.
: D
0FFFFFFFFh
Microsoft (R) Macro Assembler Version 6.14.8444
Авторское право (C) Microsoft Corp 1981-1997. Все права защищены.
Это зависит от вкуса вашего ассемблера.
movl $0xFFFFFFBB, %ecx
mov ecx, 0FFFFFFBBh
Синтаксис FYI, AT & amp; T используется ассемблерами, такими как GNU Assembler , тогда как NASM и большинство других используют Intel.
0xffffffbb
для шестнадцатеричных констант. (GNU as требует .intel_syntax noprefix
директивы для использования синтаксиса Intel или -masm=intel
, переданного в GCC).
– Ruslan
4 April 2016 в 04:11
Это зависит от вашего ассемблера, но общая нотация для шестнадцатеричных литералов - 0FFFFFFBBh
.
Hex-номера обычно всегда представлены с ведущим 0x
, поэтому вы используете 0xFFFFFFBB
.
См. wiki wiki x86 для ссылок на ассемблерные руководства и множество других материалов.
Различные ассемблеры x86 поддерживают один или оба этих синтаксиса для шестнадцатеричных констант :
0xDEADBEEF
: NASM (и совместимо), GNU as
, FASM , MSVC inline asm (но not MASM) 0DEADBEEFh
: NASM (и совместимый), FASM, MASM , TASM. Ассемблеры DOS / Windows-only часто поддерживают синтаксис ...h
. Портативные ассемблеры обычно поддерживают синтаксис 0x...
или оба.
Обратите внимание на ведущий 0
: числовые константы всегда должны начинаться с цифры, чтобы отличать их от имен символов.
Также обратите внимание, что ассемблеры, такие как компиляторы C, могут оценивать выражения во время сборки, поэтому вы можете написать foo & 0xF
(если foo
является константой ассемблера, определенной с помощью foo equ 0xABC
или чего-то еще). Вы можете даже добавить / вычесть из меток (которые являются константами времени ссылки, а не время сборки), поэтому такие вещи, как mov eax, OFFSET label - 20
, все еще собираются в mov r32, imm32
.
Из Раздел руководства NASM по константам :
Некоторые примеры (все производят точно такой же код):
blockquote>mov ax,200 ; decimal mov ax,0200 ; still decimal mov ax,0200d ; explicitly decimal mov ax,0d200 ; also decimal mov ax,0c8h ; hex mov ax,$0c8 ; hex again: the 0 is required mov ax,0xc8 ; hex yet again mov ax,0hc8 ; still hex mov ax,310q ; octal mov ax,310o ; octal again mov ax,0o310 ; octal yet again mov ax,0q310 ; octal yet again mov ax,11001000b ; binary mov ax,1100_1000b ; same binary constant mov ax,1100_1000y ; same binary constant once more mov ax,0b1100_1000 ; same binary constant yet again mov ax,0y1100_1000 ; same binary constant yet again
Most ассемблеры также допускают символьные литералы, такие как
'0'
для ASCII ноль. Или даже'0123'
для четырех цифр ASCII, упакованных в 32-битное целое число. Некоторые поддерживающие escape-последовательности (\n'
), некоторые (например, YASM) этого не делают. NASM поддерживает только escape-последовательности внутри backquotes, а не двойные кавычки.
Другие платформы:
ARM-ассемблер :
0xDEADBEEF
работает.Я думаю, 0x ... типичен. 0 ... h - это в основном вещь DOS.
__asm
. Я не знаю авторитетного источника, но это был мой опыт работы с MASM i> / Visual C / C ++ в течение нескольких лет.
– Michael Petch
11 May 2016 в 15:53
0x
в качестве префикса с встроенной сборкой. Я взял последний файл MASM i> VS 2015, и он не смог собрать файл сборки с префиксом 0x
и прервать с помощью error A2206: missing operator in expression
– Michael Petch
11 May 2016 в 16:09
0...h
, хотя мне лично это не нравится.
– Peter Cordes
11 May 2016 в 20:44