RUS | UKR | ENG | ДонНТУ> Портал магистров ДонНТУ
 
Войтенко Сергей Аркадьевич

Войтенко Сергей Аркадьевич

Факультет: Вычислительная техника и информатика (ФВТИ)

Специальность: Компьютерные системы и сети (ВТ)

Email: serg2020@rambler.ru

Тема выпускной работы:

Применение UML при проектировании управляющих автоматов

Руководитель: Зеленева Ирина Яковлевна

 

  Главная Реферат Библиотека Ссылки Отчет о поиске Тест по Java  

 

Тест по Java

Технология Java была представлена Sun Microsystems в 1995 году как мощный объектно-ориентированный язык программирования, компилятор с этого языка в коды виртуальной Java-машины и реализации виртуальной Java-машины для различных микропроцессоров и операционных систем. К настоящему време язык Java занимает твердо занимает лидирующие позиции во многих областях программного обеспечения таких как программирование кроссплатформенных графических интерфейсов, игр и приложений для мобильный телефонов, операционных систем для встраиваемых контроллеров. Однако в первую очередь следует выделить применение Java в разработке интернет-приложений.

Популярность Java объясняется также ее бесплатностью, хорошим документированием, мощностью стандартных библиотек классов, входящих в поставку, встроенной поддержкой новейших методов разработки программного обеспечения (таких как MDA - Model-Driven Architecture, TDD - Test-Driven Design), наличием встроенных средств тестирования (JUnit), отличными средами разработки приложений (Eclipse, NetBeans, IntelliJ IDEA, JBuilder и другие). Именно поэтому я остановился на этом языке для разработки программной части моей магистерской работы.

В ходе изучения языка программирования часто бывает возникает желание проконтролировать свои результаты, поэтому я составил небольшую группу вопросов по языку Java2 версии 1.4. В качестве базового источника информации использовалась книга Java 2™ Programmer Exam Cram™ 2, By Bill Brogden , Marcus Green.

Вопросы

Вопрос 1

Каков диапазон значений, которые могут быть сохранены в переменной типа char?

A. От 0 до 255
B. От 0 до 32767
C. От –32768 до 32767
D. От 0 до \uFFFF

Вопрос 2

Вы пишете код для класса, который будет в пакете по умолчанию, и будете использовать сервисные классы в пакете java.util.

Выберите самый разумный фрагмент кода, для начала файла исходного текста.

A. import java.util.* ;
B. package default ;
import java.util.* ;
C. import java.util.* ;
package default ;
D. import java.lang.* ;
import java.util.* ;

Вопрос 3

Что случится, когда Вы попробуете откомпилировать и выполнить класс, содержащий этот метод?

1. public void testX() {
2. Integer nA = new Integer( 4096 ) ;
3. Long nB = new Long( 4096 ) ;
4. if( nA.equals( nB )) System.out.println("equals") ;
5. if( nA.intValue() == nB.longValue() ){
6. System.out.println("EQ") ;
7. }
8. }

A. Компилятор выдаст ошибку в строке 4 потому что типы объекта nA и nB не соответствуют.

B. Программа откомпилируется и выполнится, выведя " EQ ".

C. Программа откомпилируется и выполнится, выведя " equalsEQ ".

D. Программа откомпилируется и выполнится, выведя " equals ".

Вопрос 4

Что случится, при попытке откомпилировать и выполнить следующее приложение?

1. public class Example {
2. public boolean flags[] = new boolean[4] ;
3. public static void main(String[] args){
4. Example E = new Example() ;
5. System.out.println( "Flag 1 is " + E.flags[1] ) ;
6. }
7. }

A. Текст " Flag 1 is true " будет выведен на стандартный поток вывода.

B. Текст " Flag 1 is false " будет выведен на стандартный поток вывода.

C. Текст " Flag 1 is null " будет выведен на стандартный поток вывода.

D. Компилятор выдаст ошибку в строке 2.

 

Вопрос 5

Следующая программа откомпилирована и затем выполнена с этой командной строкой: java Demo alpha beta gamma

1. public class Demo {
2. public static void main(String args[] ){
3. int n = 3 ;
4. System.out.println("The word is " + args[ n ] ) ;
5. }
6. }

Что случится?

A. "The word is beta" будет выведено на стандартный поток вывода.

B. "The word is gamma" будет выведено на стандартный поток вывода.

C. Система поддержки выполнения сообщит исключение ArrayIndexOutOfBoundsException в главном методе.

D. Система поддержки выполнения сообщит исключение NullPointerException в главном методе.

 

Вопрос 6

Что случится если программа вызовет метод result (30) объекта, являющегося представителем данного класса?

1. class Example extends Object{
2. public void Increment( Short sS ){
3. sS = new Short((short)(sS.intValue() + 1)) ;
4. }
5. public void result( int x ) {
6. Short sX = new Short((short) x ) ;
7. Increment( sX ) ;
8. System.out.println("New value is " + sX ) ;
9. }
10. }

A. Сообщение " New value is 31" будет на стандартный поток вывода.

B. Сообщение " New value is 30" будет на стандартный поток вывода.

C. Во время выполнения произойдет исключение из-за приведения типов в строке 6.

D. Программа не откомпилируется.

 

Вопрос 7

Что случится, когда Вы попытаетесь откомпилировать и выполнить код, содержащий следующие строки:

1. String s = "12345" ;
2. String t = new String( s ) ;
3. if( s == t ) System.out.println( t + "==" + s) ;
4. else System.out.println( t + "!=" + s ) ;

A. Компилятор выдаст ошибку в строке 3.

B. Программа компилируется и печатает "12345==12345".

C. Программа компилируется и печатает "12345 != 12345".

D. Во время выполнения произойдет исключение в строке 3.

 

Вопрос 8

Вы написали приложение, которое может принять заказы из нескольких источников, каждый из которых выполняется в отдельном потоке. Есть один объе кт в пр иложении, которому позволяют сделать запись заказов в файл. Этот объект использует метод recordOrder , который синхронизирован, чтобы предотвратить конфликт между потоками.

В то время как поток A выполняет recordOrder , потоки B, C, и D, в таком порядке, пытаются выполнить recordOrder метод.

Что случится когда поток A выйдет из синхронизированного метода?

A. Поток B , как первый ожидающий поток , выполнит метод.

B. Поток D , как поток пославший запрос после других , выполнит метод.

C. Один из ожидающий потоков вызовет метод, но вы не можете сказать точно какой именно, но точно не С.

D. Один из ожидающий потоков вызовет метод, но вы не можете сказать точно какой именно.

 

Вопрос 9

Что из следующего было бы неправильным идентификатором для переменной Java?

A. my_stuff

B. _yourStuff

C. $money

D. %path

 

Вопрос 10

Нужен метод, чтобы вычислить сумму всех элементов в массиве int . Следующий предложенный метод неполон. Выберите правильное утверждение на строку 3 из предоставленных вариантов.

1. public int total( int[] x ){
2. int i, t = 0 ;
3. -select statement to go here
4. { t += x[ i++ ] ;
5. }
6. return t ;
7. }

A. for( int i = 0 ; i < x.length ; )

B. for( i = 0 ; i < x.length ; )

C. for( i = 0 ; i < x.length ; i++ )

D. for( i = 1 ; i <= x.length ; i++ )

 

Вопрос 11

Предположите, что следующая структура кода работала в приложении, которое использует только единственный поток, чтобы вызывать changeRoll.

import java.util.HashMap ;

public class ClassRoll {

private HashMap stu = new HashMap( 10 ) ;

private void addStudent ( Student stu ){
stu.put( stu.getName(), stu ) ;
}

private void removeStudent( Student stu ){
stu.remove( stu.getName() ) ;
}

public boolean changeRoll( int code, Student stu ){
switch( code ){
case 1 : addStudent( stu );
return true ;
case 2 : removeStudent( stu );
return true ;
default : return false ;
}
}
}

class Student {
public Student(){} ;
// assume getName etc all work
}

Теперь Вы должны изменить это так, что бы это могло безопасно использоваться любым числом потоков при использовании ключевого слово synchronized . Из следующих вариантов, выберите минимум изменений, достигающих этой цели.

A. Сделать класс синхронизированным .

B. Сделать переменную stu синхронизированной.

C. Сделать метод addStudent синхронизированным.

D. Сделать метод changeRoll синхронизированным.

 

Вопрос 12

Вот - иерархия исключений, связанных, чтобы выстроить индексные ошибки.

Exception +-- RuntimeException +-- IndexOutOfBoundsException +-- ArrayIndexOutOfBoundsException +-- StringIndexOutOfBoundsException

Suppose you had a method X that could throw both array index and string index exceptions. Assuming that X does not have any try - catch blocks, which of the following statements are correct? Предположим, что Вы имели метод X который мог выбрасывать исключения индекса массива и индекса строки . В предположении что этот X не имеет try - catch блоков, какое из следующих утверждений является правильным?

A. Объявление для X должен включить "throws ArrayIndexOutOfBoundsException, StringIndexOutOfBoundsException" .

B. Если запрос метода X отлавливает IndexOutOfBoundsException , оба массива и исключения индекса строки будут захвачены.

C. Если объявление для X включает " throws IndexOutOfBoundsException " , любой метод запроса должен использовать try - catch блок.

D. Объявление для X не должен упомянуть исключения.

 

Вопрос 13

Метод спроектирован, чтобы преобразовать входную строку в число с плавающей запятой, обнаруживая плохой формат. Переменная фактор является переменной с плавающей точкой объявленной в другом месте в классе.

1. public boolean strCvt( String s ){
2. try { // note factor is a float primitive instance variable
3. factor = Float.valueOf( s ).floatValue() ;
4. return true ;
5. }catch(NumberFormatException e){
6. System.out.print("Bad number " + s ) ;
7. factor = Float.NaN ;
8. }finally { System.out.println("Finally") ; }
9. return false ;
10. }

Любой String ввод, в который нельзя преобразовать в float вызовет выброс исключения NumberFormatException .

Какие из следующих описаний результатов различных вводов к методу являются правильными?

A. Input = "1.2" —Result: factor = 1.2, true is returned, nothing is printed.

B. Input = "" —Result: factor unchanged, "Finally" is printed, false is returned.

C. Input = "" —Result: factor = NaN , "Bad number Finally " is printed, false is returned.

D . Код не будет откомпилирован, потому что выражение в строке 3 возвращает объект с плавающей точкой , не примитив.

 

Вопрос 14

Класс java.util.Vector обеспечивает память для справочной информации объекта в заказе добавления и автоматически расширяется как необходимо. Какой из следующих классов является самым близким по функциональности к Vector класс?

A. java.util.ArrayList

B. java.util.Hashtable

C. java.util.LinkedList

D. java.util.List

 

Вопрос 15

В следующем методе, который можно назвать с любым видом объекта, Вы хотите к "короткому замыканию" логический тест в строке 2, если объект не Long . Какой логический оператор должен заменить X в строке 2, чтобы достигнуть этого?

1. long Test( Object ob ){
2. if( ob instanceof Long X ((Long)ob).longValue() > 999){
3. return((Long)ob).longValue() ;
4. }
5. return -1L ;
6. }

A. Заменить X на && .

B. Заменить X на || .

C. Заменить X на & .

D. Заменить X на | .

 

Вопрос 16

Учитывая следующее начало switch утверждения, где n является int переменная:

switch( n ){
case XXX :

Какой из следующих объектов может занять место XXX в case утверждении?

A. –1

B. 1024L

C. 1.0

D. Справочная информация на статическ ую (класс) переменная.

 

Вопрос 17

Ваша проблема программирования состоит в том, чтобы создать список уникальных значений чисел ID части в большой коллекции данных, представляющих заказы. Кроме того, было бы хорошо , если бы список был в сортированном заказе.

Вы решили использовать один из классов пакета в java.util , чтобы создать этот список. Какой из следующих интерфейсов должен осуществить идеальный класс?

A. Map

B. SortedMap

C. Set

D. SortedSet

 

Вопрос 18

Какое из следующих слов не зарезервировано в Java?

A. transient

B. include

C. goto

D. static

 

Вопрос 19

Что случится, когда Вы пытаетесь откомпилировать и выполнить следующий код?

public class Cjgreen{

public static void main(String argv[]){
Cjgreen c = new Cjgreen() ;
c.jgreen() ;
}

public void jgreen(){
int iNum =1 ;
while(iNum >0){
toffer:
for(int i = 0; i < 3; i ++){
continue toffer ;
System.out.print(i) ;
}
}
iNum -- ;
}
}

A. Ошибка во время компиляции

B. Компиляция, но никакой вывод во время выполнения

C. Повторяющийся вывод символов "012"

D. Единственный вывод "012"

 

Вопрос 20

Какие из следующих фрагментов кода являются правильным кодом Java?

A. String A = "abcdefg" ; · A -= "cde" ;

B. String A = "abcdefg" ; · A += "cde" ;

C. Integer J = new Integer ( 27 ); · J -= 7 ;

D. Integer J = new Integer ( 27 ); · J-- ; ;

 

Вопрос 21

Что случится, когда Вы попробуете откомпилировать и выполнить код, содержащий следующие строки:

1. Integer A, B, C ;
2. A = new Integer( 3 ) ;
3. B = new Integer( 4 ) ;
4. C = A + B ;
5. System.out.println("Final value " + C );

A. Код компилируется и печатает " Final value is 7" когда выполнен.

B. Код компилируется, но генерирует во время выполнения исключение в линии 4.

C. Компилятор показывает ошибку в строке 4.

D. Код компилируется и печатает " Final value is null " когда выполнен.

 

Вопрос 22

Что случится, когда Вы попробуете откомпилировать и выполнить код?

1. public class Logic {
2. static int minusOne = -1 ;
3. static public void main( String args[] ){
4. int N = minusOne >> 31 ;
5. System.out.println("N = " + N );
6. }
7. }

A. Программа компилируется и печатает "N = -1".

B. Программа компилируется и печатает "N = 1".

C. Исключение времени выполнения ArithmeticException будет брошено.

D. Программа компилируется и печатает "N = 0".

 

Вопрос 23

Согласно приведенных определений класса :

class BaseWidget extends Object{

String name = "BaseWidget";

void speak(){
System.out.println("I am a " + name );
}

}

class TypeAWidget extends BaseWidget{
TypeAWidget() { name = "TypeA" ; }
}

Что случится при попытке откомпилировать и запустить следующий метод?

1. public void WhoAreYou(){
2. Object A = new BaseWidget();
3. ((BaseWidget)A).speak();
4. }

A. Метод откомпилируется и выведет " I am a BaseWidget " .

B. Компилятор найдет ошибку в строке 3.

C. Исключение приведения типов в строке 2.

D. Исключение приведения типов в строке 3.

 

Вопрос 24

Что случится при попытке откомпилировать и запустить данный код?

1. public class EqualsTest{
2. public static void main(String args[] ){
3. long LL = 7 ;
4. if( LL == 7.0 ) System.out.println("Equal");
5. else System.out.println("Not Equal");
6. }
7. }

A. Компилятор найдет ошибку в строке 4.

B. Программа откомпилируется, но выбросит исключение.

C. Программа откомпилируется и выведет "Not Equal ".

D. Программа откомпилируется и выведет "Equal ".

 

Вопрос 25

Что случится при попытке откомпилировать и запустить данный код?

1. public class EqualsTest{
2. public static void main(String args[]){
3. byte A = (byte)4096 ;
4. if( A == 4096 ) System.out.println("Equal") ;
5. else System.out.println("Not Equal") ;
6. }
7. }

A. Компилятор возразит из-за потери точности в приведении в строке 3.

B. Программа откомпилируется и выведет "Not Equal" .

C. Программа откомпилируется и выведет "Equal" .

D. Компилятор найдет ошибку в строке 4.

 

Ответы на вопросы лежат здесь.

 

 

  Главная Реферат Библиотека Ссылки Отчет о поиске Тест по Java  

© ДонНТУ, Войтенко С. 2006