Введение в тест Java
Java - объектно-ориентированный строготипизированный язык программирования, разработанный компанией Sun Microsystems в 1991 году. Изначально язык назывался Oak и предназначался для программирования бытовой электроники, однако позже был переименован в Java. Официальный выпуск Java в 1995 году оказался очень успешным и вскоре после этого язык Java занял сильные позиции в качестве инструмента разработки серверных приложений.
В наше время Java используют во всех сферах разработки программного обеспечения - серверные приложения, десктопные приложения, инструментальные средства, веб приложения - все это разрабатывается с помощью Java и родственных технологий.
Целевая аудитория теста по Java
Тест по Java содержит вопросы, ответы на которые знает большинство разработчиков с минимальным опытом программирования на Java. Тест будет полезен многим, в том числе людям, которые не имеют большого опыта работы с Java и хотят получить минимальное представление о базовых понятиях этого популярного языка программирования. Также этот тест может быть полезен студентам, изучающим Java, для закрепления знаний, полученных в ВУЗ-ах или же в результате самостоятельной работы.
Предварительные требования к тесту Java
Подразумевается, что перед прохождением теста по основам Java вы уже знаете основные понятие, такие как "переменная", "цикл", "метод" и знаете синтаксис основных языковых конструкций. В случае если это не так, рекомендуем вам предварительно ознакомиться с основами Java, путем прочтения вводного курса.
Рекомендуем к прочтению следующие статьи: Внутренние классы в Java и Перечисления в Java.
Структура теста по Java
Тест "Java - Основы" освещает следующие темы:
Подробнее о тематиках вопросов теста можно прочесть ниже:
- Объекты и классы: вопросы этой тематики покрывают такие понятия как класс, экземпляр класса (объект), конструкторы, методы и поля класса.
- Синтаксис: вопросы этого раздела проверят знание ключевых слов языка, оперторов, основных типов (примитивы, String), управляющих конструкций (if-else, while, for), а также понимание обработки исключительных ситуаций (Exception).
- Другое: этот раздел содержит вопросы касающиеся основных понятий, терминов и аббревиатур, конвенций именования классов, переменных и методов. Также в этом разделе рассматриваются вопросы по файлам (.java, .class, .jar) и пакетам, жизненному циклу объектов, сборке мусора (garbage collection).
Прохождение онлайн теста Java помогает вам проверить и закрепить знание основ Java, а также подводит вас к прохождению более сложных тестов из раздела тестов по Java.
Надеемся, что данный тест будет для вас полезным и занимательным.
Дальнейшее развитие теста по Java
Тест по Java постоянно пополняется новыми вопросами.
В ближайших планах команды Quizful - создание тестов экспертного уровня по Java. Возможно еще будет создан тест Java Puzzlers, но он к сожалению очень медленно наполняется вопросами.
Если у Вас есть замечания по поводу вопросов теста, обязательно пишите нам. Удачи.
И еще, Ваш браузер случайно не Firefox?
Да браузер действительно firefox.
[code]
public class A {
public static void main(String[] sr) {
int a = 010;
System.out.println(a);
}
}
[/code]
Переключение на другой вопрос тоже перекидывает на авторизацию.
Проверил также под браузером хромиум, ситуация повторяется.
:((
Заполнил туеву кучу пробелов. Конечно неприятно признать что ты не способен быстро посчитать двоичный код или трассануть цикл или не знал какой нибуть нюанс, но практика дает результат, так что всем желаю успехов. Пошел спать и точить ум на Java Middle.
Но вот что я скажу, я сейчас в активном поиске работы и почти все работодатели предлагают перед собеседованием подобный тест.
В реальной жизни конечно больше ломаешь голову над более высоким уровнем абстракции чем примитивные типы данных и т.д.
Но тем не менее, считаю что это знать полезно. От этого только + будет.
Еще раз спасибо за тест.
псевдозадачи утомляют. кто-нибудь использует инкремент в выражениях?
это не тесты эт ребусы какие-то. тоже интересно но не то
if (++i==i++){
i-=2;
}
else{
..
..
..
}
сам часто так пишу. но никому не показываю. стесняюсь штоле
Будем благодарны за любые замечания. Удачи.
ps: если бы не копирование, то на два вопроса я бы не ответил
На сайте есть некоторая защита, но слишком усиливать ее нет смысла. Если кто-то проходит тест ради галочки, а не ради проверки знаний, - это его право.
Кстати, недавно добавили подсветку синтакисиса - постепенно будем переводить на нее вопросы.
Было бы классно если бы код приводился всегда такой, который можно было бы копи-пастом вставить в класс и проверить.
Я имел ввиду что были разные варианты:
1) когда класс полноценный и его можно сразу опробовать.
public class Test {
static public void main(String[] args) {
...
}
}
2) и когда просто код, который сам по себе не работает.
String a = new String("hello");
String b = new String(a);
я захотел проверить его самостоятельно, т.к. никогда до конца не верю своему профессору, но мне пришлось дописывать имя класса, меин метод, systemout. И я подумал, а как оно было бы если бы этот тест был так же в стиле 1) варианта, то есть: "Что выведет этот код?"
public class Test {
static public void main(String[] args) {
String a = new String("hello");
String b = new String(a);
...
sysout(a == b);
sysout(a == с);
}
}
что скажете?
Иногда не хочется приводить код полностью, так как вопрос вроде простой, но вместе с классом, импортами, psvm и print'ами будет занимать в 4-5 раз больше места.
По возможности будем стараться приводить код, который сразу можно вставить в IDE
* equals
* toString
* hashCode
* clone
Вопрос немного некорректный, у Object есть метод clone(), но он protected, а не public
сейчас заглянул в исходники, есть таки один, хоть и статический
private static native void registerNatives();
но вообще да, признаю, в этой ситуации с clone() который protected, достаточно важно понимание почему он именно в Object, и почему не public
class MyClass {
{
// this no static block
}
}
мне ещё не разу не встречались, а теперь прям открылись новые горизонты.
Это называется блоком инициализации объекта, а не статическим блоком класса. Применения есть:
1. в случае, если неудобно применять цепочку вызова overloaded конструкторов, с помощью блока инициализации объектов удобно инициализировать переменные, когда:
1.1. при инициализации необходимо обработать исключение
1.2. инициализацию переменной невозможно выразить expression-ом, а добавление статического метода для ее вычисления добавляет "семантический мусор"
2. в случае, когда необходима инициализация переменных анонимного класса