1. В Java нет заявления о Goto. Поскольку большое количество использования операторов GOTO снизит читаемость и обслуживание программы, язык Java отменяет использование GOTO. В то же время, чтобы избежать путаницы, вызванной программистами, использующими GOTO самостоятельно, язык Java все еще определяет GOTO как ключевое слово, но не определяет никакого синтаксиса, поэтому он называется «зарезервированными словами».
2 Несмотря на то, что верно, ложно и нулевые отображаются в разных цветах в IDE, они не являются ключевыми словами, а «буквальными постоянными», как ABC типа строки.
3 Старайтесь избегать использования $ при определении имени, потому что, когда компилятор компиляция компиляции. См. Следующий пример:
При компиляции (Javac test3.java) Этот код компилятор сообщит о следующей ошибке: test.java:12: ошибка: класс дубликация: com.javastack.test.outer.inner class inner { ^
4 символы Unicode Escape обрабатываются очень рано, перед анализом программы. Например:
Эти две строки ошибок компиляции кода происходят в программе. Эти два кода Unicode представляют «Line Prap» и «Возврат перевозки» соответственно, поэтому, когда компилятор компиляции, код выглядит следующим образом:
5 Код Unicode кодируется с использованием 16-битного символа и представлен типом Char в Java. Unicode теперь расширился до миллиона символов, и те, которые превышают 16-битный лимит, становятся дополнительными символами. Все дополнительные символы не могут быть представлены константами персонажа.
6 Когда короткий, байт, Чар участвует в операции, результатом является тип int, а не такой же, как более высокий тип. Если переменная имеет тип байта, короткого и байта, когда ей присваивается константа из времени компиляции, а константа не превышает диапазон значений переменной, компилятор может выполнять неявное сокращение преобразования. Это неявное преобразование сокращения безопасно, потому что преобразование сокращения применяется только к назначению переменных, а не к методу вызова операторов, то есть не к параметрам, проходящим во время вызова метода. (См. Маленькую проблему с преобразованием типа по умолчанию в Java для получения подробной информации)
7 Обратите внимание на тип Char, который является беззнатным типом. Следовательно, преобразование между char и short или char и байтом должно отображаться с использованием преобразования типа. Преобразование из байта в ЧАР в расширенное преобразование сокращения является совершенно особенным, то есть конверсия расширяется до байта в сначала, а затем сжимается до символа.
8 В расширенном преобразовании между целочисленными данными, если операнд имеет тип ЧАР (тип без знака), выполняется бессмысленное расширение, причем бит расширения составляет 0. Если операнд имеет байт, короткий или int (подписанный тип), выполняется подписанное расширение, причем бит расширения является битовым знаком переменной.
9 Сокращающееся преобразование между целочисленными данными состоит в том, чтобы просто усечь и отбросить высокие биты, не выполняя никакой другой обработки.
10 0,1+0,2 не равняется 0,3.system.out.println ((двойной) 0,1+ (двойной) 0,2); Результатом вывода этого оператора является 0,30000000000000000000004. Поскольку компьютеры используют двоичный файл для хранения данных, а многие десятичные десятичные знаки не могут быть точно представлены в двоичном языке (на самом деле, большинство десятичных децималов приблизительны), точно так же, как использование десятичных десятичных декораций не может точно представлять 1/3. Большинство типов с плавающими темпами хранят только свои значения в компьютерах, а не точно в виде целочисленных типов. Другим примером является мертвая петля: для (float f = 10.1f; f! = 11; f+= 0.1f) {}
11 Тип плавания может сохранить от 7 до 8 значительных чисел, в то время как двойной тип может сохранить от 15 до 16 значительных чисел. Следовательно, когда значение типа INT или длинного типа больше, чем допустимое количество двойного или плавающего, некоторые из самых низких значимых битов значения будут потеряны, что приведет к потере точности. В настоящее время недавний режим округления IEEE754 будет использован для извлечения значения с плавающей запятой, ближайшей к целочисленному значению. Хотя преобразование из целого числа в тип плавающей запятой является расширенным преобразованием, когда значение является большим или малым (абсолютное значение велико), произойдет определенная потери точности.
12 Как рассчитать i ++ j? (Этот вопрос не очень значимый для обсуждения в C/C ++), потому что C/C ++ зависит от реализации аппаратной структуры, и результаты будут различаться в разных средах. Однако в Java этот результат фиксируется и не влияет на аппаратную среду и платформу, на которой она работает). Ответ: Согласно правилам жадности, фронт + + + лучше, чем назад + +, и результат (i ++) + j
13 I ++ и ++ Я на самом деле +1 сначала, а затем назначен. ++ i, нечего сказать; i ++, взяв j = i ++; В качестве примера, реализация на базовом уровне: temp = i; i = i + 1; J = TEMP; Итак, i = 15; i = i ++; Результат этого выражения составляет 15. (Потому что после добавления одно выполняется другое назначение, изменяющееся с 16 на 15)
14 +0 и -0 В хранилище переменной с плавающей точкой, биты знака разные. Когда -0 и +0 участвуют в связанных операциях типов плавающей запятой (например, операции деления и остатков), могут быть даны различные результаты.
15 Расчет фазового деления и баланса плавающей запятой отличаются от фазового деления и расчета баланса целых чисел. Когда делитель равен 0, операция с плавающей запятой не будет генерировать исключение по арифметикексации.
16 Класс строки является не обдуманным классом, и как только его объекты будут созданы, они не могут быть уничтожены. Методы, которые, кажется, изменяют последовательность символов в классе строки, фактически возвращают недавно созданный объект строки вместо изменения своего собственного объекта.
17 Поскольку строковые объекты неизменны, они безопасны для потока и могут быть свободно реализованы для обмена.
18 Внутри класса строки массив символов (char []) используется для поддержания последовательности символов. Максимальная длина струны - максимальная длина массива символов. Теоретически, максимальная длина является максимальным значением типа int, то есть 2147483647. На практике максимальное значение, которое можно получить, как правило, меньше теоретического максимального значения.
19 Основной () метод в основном такой же, как и другие методы с точки зрения поведения производительности. Он может быть перегружен, называется, унаследован, скрыт другими методами или брошенными исключениями с параметрами типа. Мы также можем вызвать основной метод (или другой метод) посредством отражения в программе.
20 Когда имена двух или более методов одинаковы, а список параметров отличается, эти методы представляют собой перегрузку. Перегруженный метод можно различить на основе типа, соответствующего списку параметров и количества параметров. Однако имя параметра, тип возврата метода, список исключений и параметр типа метода не может использоваться в качестве условий для различения перегруженного метода.
21 Какой метод выбрать позвонить, заказ заключается в следующем:
22 Основная разница между переписыванием и скрытым состоит в том, что переписывание динамически связано, а члены соответствующего класса определяются на основе фактического типа объекта, на который указывается ссылка во время выполнения. Укрытие статически связано, а соответствующие члены вызова определяются на основе статического типа, на который ссылается время компиляции. Другими словами, если подкласс переопределяет метод родительского класса, когда ссылка родительского класса указывает на объект класса дочернего класса, метод подкласса вызывается через ссылку на родительский класс. Если класс ребенка скрывает метод родительского класса (переменная члена), метод родительского класса (переменная -член) все еще вызывается посредством ссылки на родительский класс.
23 Конструктор называется рекурсивно. Конструктор подкласса будет называть конструктор родительского класса до тех пор, пока не будет вызван конструктор класса объекта.
24 Конструктор не создает объект. Конструктор вызывается системой при создании объекта с использованием нового и используется для инициализации членов экземпляра класса. Для того, чтобы сначала создан объект, а затем вызывается конструктор. (Конструктор не генерирует новые объекты)
25 Конструктор по умолчанию не пуст. Этот конструктор будет называть конструктор без параметра -класса родительского класса и может выполнять инициализацию переменных членов экземпляра. Следовательно, конструктор по умолчанию вызывает, по крайней мере, конструктор родительского класса, и он может выполнять больше работы, включая инициализацию инициализации переменных переменных экземпляров и блоки инициализации экземпляра, оба выполненные в конструкторе.
26 Когда типы двух операндов == или!
27 В Java массивы также являются классами, а эталонные переменные, объявленные массивами, указывают на объекты типа массива. Все массивы наследуют класс объектов и реализуют java.lang.clonable и java.io.serializable интерфейсы. Члены массива включают переменную длину (неявно существует) и участники, унаследованные от класса объекта. Клонируемые и сериализуемые являются двумя отмеченными интерфейсами, и в этих интерфейсах явно не объявлено ни один член.
28 Интерфейс является совершенно абстрактным дизайном и не может быть создан. Тип оправдания, созданный в новом способе, на самом деле заключается в создании анонимного класса, который реализует тип интерфейса.
29 Если два интерфейса объявляют одну и ту же переменную x, ошибка компиляции возникнет, когда интерфейс наследует два интерфейса одновременно, или определенный класс реализует два интерфейса одновременно.
30 Если метод m одного и того же имени объявлен в обоих интерфейсах, и эти два метода не представляют собой перегрузку, когда график может унаследовать два интерфейса одновременно, или определенный класс может наследовать два интерфейса одновременно, должна быть сигнатура метода, так что подпись подписана типа, что тип, тип, тип, тип, тип, тип, в том, что тип, как тип, тип, тип, тип, тип, тип, тип, тип, тип, тип, тип, тип, тип, тип, тип, типированный тип. Тип типа возврата двух М метода.