소구분 : 조건문 / 반복문 / 연산자 ( 단답형 ) 난이도 : 하 [Q2] 다음반복테스트 (loop test) 클래스의실행결과를적으시오. public class ForLoop { int total = 0; for( int i=1; i<=5; i++ ) { for( i

Similar documents
int total = 0; for( int i=1; i<=5; i++ ) { for( int j=1; j<=i; i++ ) { total ++; System.out.println( total ); 대구분 : 객체와 Class 소구분 : 객체생성과사용 / Class 선언

Microsoft PowerPoint - 2강

JAVA PROGRAMMING 실습 08.다형성

JAVA PROGRAMMING 실습 09. 예외처리

JAVA PROGRAMMING 실습 05. 객체의 활용

gnu-lee-oop-kor-lec06-3-chap7

PowerPoint 프레젠테이션

Microsoft PowerPoint - CSharp-10-예외처리

슬라이드 1

PowerPoint Presentation

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2

Microsoft PowerPoint - java1-lab5-ImageProcessorTestOOP.pptx

제11장 프로세스와 쓰레드

Cluster management software

PowerPoint Presentation

PowerPoint Presentation

PowerPoint Presentation

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

예제 2) Test.java class A intvar= 10; void method() class B extends A intvar= 20; 1"); void method() 2"); void method1() public class Test 3"); args) A

(Microsoft PowerPoint - java1-lecture11.ppt [\310\243\310\257 \270\360\265\345])

PowerPoint Presentation

PowerPoint 프레젠테이션

JAVA PROGRAMMING 실습 05. 객체의 활용

PowerPoint Presentation

01-OOPConcepts(2).PDF

쉽게 풀어쓴 C 프로그래밍

PowerPoint 프레젠테이션

C++ Programming

쉽게 풀어쓴 C 프로그래밍

02 C h a p t e r Java

12-file.key

C++ Programming

10.0pt1height.7depth.3width±â10.0pt1height.7depth.3widthÃÊ10.0pt1height.7depth.3widthÅë10.0pt1height.7depth.3width°è10.0pt1height.7depth.3widthÇÁ10.0pt1height.7depth.3width·Î10.0pt1height.7depth.3width±×10.0pt1height.7depth.3width·¡10.0pt1height.7depth.3width¹Ö pt1height.7depth.3widthŬ10.0pt1height.7depth.3width·¡10.0pt1height.7depth.3width½º, 10.0pt1height.7depth.3width°´10.0pt1height.7depth.3widthü, 10.0pt1height.7depth.3widthº¯10.0pt1height.7depth.3width¼ö, 10.0pt1height.7depth.3width¸Þ10.0pt1height.7depth.3width¼Ò10.0pt1height.7depth.3widthµå

Network Programming

Design Issues

PowerPoint 프레젠테이션

Microsoft PowerPoint - Java7.pptx

Microsoft PowerPoint 자바-기본문법(Ch2).pptx

No Slide Title

PowerPoint Presentation

1

07 자바의 다양한 클래스.key

PowerPoint 프레젠테이션

Microsoft PowerPoint - 04-UDP Programming.ppt

슬라이드 1

PowerPoint 프레젠테이션

비긴쿡-자바 00앞부속

쉽게 풀어쓴 C 프로그래밍

PowerPoint Presentation

PowerPoint Template

쉽게

JUNIT 실습및발표

자바 프로그래밍

JVM 메모리구조

PowerPoint 프레젠테이션

JAVA PROGRAMMING 실습 07. 상속

PowerPoint 프레젠테이션

5장.key

PowerPoint Presentation

PowerPoint Presentation

(Microsoft PowerPoint - java2-lecture3.ppt [\310\243\310\257 \270\360\265\345])

4장.문장

PowerPoint Presentation

PowerPoint Presentation

PowerPoint Presentation

歯JavaExceptionHandling.PDF

Semantic Consistency in Information Exchange

Microsoft PowerPoint - Lect04.pptx

<4D F736F F F696E74202D20C1A63234C0E520C0D4C3E2B7C228B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

슬라이드 1

1. auto_ptr 다음프로그램의문제점은무엇인가? void func(void) int *p = new int; cout << " 양수입력 : "; cin >> *p; if (*p <= 0) cout << " 양수를입력해야합니다 " << endl; return; 동적할

목차 JEUS EJB Session Bean가이드 stateful session bean stateful sample 가이드 sample source 결과확인 http session에

슬라이드 1

슬라이드 1

1. 객체의생성과대입 int 형변수 : 선언과동시에초기화하는방법 (C++) int a = 3; int a(3); // 기본타입역시클래스와같이처리가능 객체의생성 ( 복습 ) class CPoint private : int x, y; public : CPoint(int a

목차 INDEX JSON? - JSON 개요 - JSONObject - JSONArray 서울시공공데이터 API 살펴보기 - 요청인자살펴보기 - Result Code - 출력값 HttpClient - HttpHelper 클래스작성 - JSONParser 클래스작성 공공

Microsoft PowerPoint - lec2.ppt

교육자료

PowerPoint 프레젠테이션

PowerPoint Presentation

rmi_박준용_final.PDF

No Slide Title

17장 클래스와 메소드

ilist.add(new Integer(1))과 같이 사용하지 않고 ilist.add(1)과 같이 사용한 것은 자바 5.0에 추가된 기본 자료형과 해당 객체 자료 형과의 오토박싱/언박싱 기능을 사용한 것으로 오토박싱이란 자바 컴파일러가 객체를 요구하는 곳에 기본 자료형

C# Programming Guide - Types

03-JAVA Syntax(2).PDF

JAVA PROGRAMMING 실습 02. 표준 입출력

JAVA PROGRAMMING 실습 02. 표준 입출력

슬라이드 1

Microsoft PowerPoint - additional08.ppt [호환 모드]

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

Microsoft PowerPoint - chap11

JMF2_심빈구.PDF

예외 예외정의예외발생예외처리예외전파 단정 단정의선언 단정조건검사옵션 2

PowerPoint 프레젠테이션

Microsoft Word - java19-1-midterm-answer.doc

Microsoft PowerPoint - Chapter 6.ppt

09-interface.key

Transcription:

과목명총문항수 O/X 문제형 4 지선다형 5 지선다형단답형서술형 JAVA( 필기테스트 ) 20 문항 0 문항 10 문항 0 문항 10 문항 0 문항 대구분 : Java API 소구분 : Object class/string class/stringbuffer/wrapper ( 단답형 ) [Q1] 다음프로그램은간단한회원정보를포함하고있는클래스를작성한것이다. 실행결과를적으시오. public class UserTest { new UserTest().compare(); private void compare() { User a = new User("J", "Lee"); User b = new User("J", "Lee"); User c = a; System.out.println(a == b); System.out.println(a == c); System.out.println(a.equals(b)); public class User { private String firstname; private String lastname; public User(String firstname, String lastname) { this.firstname = new String(firstName); this.lastname = new String(lastName); public boolean equals(user other) { return match(firstname, other.firstname) match(lastname, other.lastname); private boolean match(string part1, String part2) { return part1 == part2 && part1.equals(part2); 정답 : false, true, false 첫번째비교연산은서로다른인스턴스이므로다른객체로판단하며, 두번째비교연산은동일한인스턴스를참조한다. 세번째비교연산은 equals() 및 match() 연산자의비교연산자 (and, or) 를잘못사용한것이다. 개발자의논리연산자이해그리고 equals() 메소드홗용등력및디버깅능력을시험하기위한문제이다. 대구분 : 기초문법

소구분 : 조건문 / 반복문 / 연산자 ( 단답형 ) 난이도 : 하 [Q2] 다음반복테스트 (loop test) 클래스의실행결과를적으시오. public class ForLoop { int total = 0; for( int i=1; i<=5; i++ ) { for( int j=1; j<=i; i++ ) { total ++; System.out.println( total ); 정답 : 무한루프가발생한다. 간단한루프를작성할때, 오타로인한잘못된변수참조가발생하는경우가 의외로많다. ( 안쪽루프에서 i 변수를참조해야하나 j 변수참조 ) 타인이작성한코드를보면서꼼꼼하게 변수명칭등을확인하는지여부를테스트하는데목적이있다. 대구분 : 객체와 Class 소구분 : 객체생성과사용 / Class 선언 / 생성자 / 접근제한자 / 기타제한자 (Static, Final, Abstract) ( 객관식 ) 난이도 : 하 [Q3] 다음코드상의 위치에들어갈수없는키워드를고르시오. class ATestClass { 1 public 2 private 3 abstract 4 final 정답 : 2 private 및 static 키워드는클래스선언시사용할수없다. 대구분 : 예외처리 소구분 : Exception 카테고리 / 처리방법 try-catch 및 throws ( 단답형 ) 난이도 : 상 [Q4] 다음은프로그래밍도중자주사용되는 File 입출력 (Input / Output) 예제이다. 텍스트파일을읽어들여

내용을화면에출력하고있다. 아래코드중예외처리부분의리소스유출 (resource leak) 가능성을확인하 고올바른코드를적으시오. import java.io.file; import java.io.fileinputstream; import java.io.ioexception; import java.io.inputstream; public class PrintFile { try { new PrintFile().print("/tmp/log"); catch (Exception e) { e.printstacktrace(); public void print(string filepath) throws IOException { File inputfile = new File(filePath); InputStream inputstream = new FileInputStream(inputFile); try { while (inputstream.available() > 0) { System.out.print((char) inputstream.read()); catch (IOException e) { inputstream.close(); 정답 : 자바의가비지컬렉션 (garbage collection) 기능은메모리유출 (memory leak) 을최대한방지할수있으나, 파일이나데이터베이스연결등의외부자원을자동으로반홖하는기능은없다. 따라서, 파일핸들등은개발자가직접반홖하는코드를작성해야한다. 또한, 예외발생시에도적극적으로반홖할수있도록 finally 구문내에반홖코드를작성해야한다. finally { inputstream.close(); 대구분 : 예외처리 소구분 : Exception 카테고리 / 처리방법 try-catch 및 throws ( 객관식 ) [Q5] 다음은수치데이터 (numeric data) 를문자열로입력받은후, 정수형 (integer type) 으로반홖하는예제이 다. 잘못된데이터입력을방지하기위해예외처리기능을포함시켰다. 올바른실행결과를고르시오.

public class HandleException { String number; System.out.println( toint(number) ); number = "9,900"; System.out.println( toint(number) ); number = "10"; System.out.println( toint(number) ); public static int toint(string strvalue) { if( strvalue == null strvalue.length() == 0 ) { throw new IllegalArgumentException(); int intvalue = 0; try { intvalue = Integer.parseInt(strValue); catch(exception e) { intvalue = 0; return intvalue; 1 실행시오류 (runtime error) 가발생된다. 2 0 9900 10 3 9900 10 4 10 정답 : 1 toint() 메소드를처음실행하는시점에서 number 변수에인스턴스를할당하지않았기때문에, IllegalArguementException 예외가발생한다. 오류처리코드를작성한후실제실행시어떤현상이발 생하는지예측할수있는능력을확인하는문제이다. 대구분 : Data Type 소구분 : Java data / Primitive / Reference type / Call by value ( 단답형 ) [Q6] 아래프로그램의출력결과를적으시오. public class SetValues { String stringobj = "Hello"; int intvalue = 0;

Float floatobj = new Float(1.0); setvalues(stringobj, intvalue, floatobj); System.out.println( stringobj + ", " + intvalue + ", " + floatobj ); private static void setvalues(string strvalue, int intvalue, Float floatobj) { strvalue.replace("h", "h"); strvalue += " World"; intvalue = 99; floatobj.valueof((float) 2.0); [ 정답 ] Hello, 0, 1.0 call by value 개념을이해하고있는지여부를확인하는문제이다. 더불어, 문자열연산 및 Wrapper 클래스에서제공되는간단한 API 들의동작방식을제대로이해하고있는지를확인한다. 대구분 : 객체와클래스 소구분 : 소구분 : 객체생성과사용 / Class선언 / 생성자접근제한자 / 기타제한자 (Static, Final, Abstract) ( 단답형 ) 난이도 : 상 [Q7] 아래프로그램의예상되는출력결과를적으시오. public class CodeBlocks { private static String afield = ""; private String bfield = ""; static { afield += "A"; { afield += "B"; bfield += "B"; public CodeBlocks() { afield += "C"; bfield += "C"; public void append() { afield += "D"; bfield += "D"; System.out.println(aField);

CodeBlocks cb = new CodeBlocks(); cb.append(); System.out.println(aField); System.out.println(cb.bField); 정답 A, ABCD, BCD 자바에서멤버변수및정적변수를초기화시키는과정을정확히이해하고있는지확 인하는문제. 대구분 : Data Type 소구분 : Java data / Primitive / Reference type / Call by value ( 객관식 ) 난이도 : 하 [Q8] 자바데이터타입에대한설명중틀린것을고르시오. 1 String 타입은객체형이다. 2 char 타입변수는 2 byte의메모리공간을사용한다. 3 char 타입변수선언시기본값을지정하지않으면 \u00000 값이설정된다. 4 boolean 타입은 1 byte의메모리공간을사용한다. 5 int 타입변수는 4 byte의메모리공간을사용한다. 정답 4 boolean 타입이사용하는메모리크기는확정되어있지않다. 대구분 : 배열과컬렉션 소구분 : 배열의홗용 / 컬렉션의홗용 / generics / 배열과컬렉션 /Package ( 단답형 ) [Q9] 다음프로그램은자바의컬렉션 API 예제이다. 올바른출력결과를기술하시오. public class Collection { List alist = new ArrayList(); Set aset = new HashSet(); Collection collection = new Collection(); collection.test(); collection.print(); private void test() { int value = 1; addvalue(value); addvalue(value);

value++; addvalue(value); value++; addvalue(value); private void addvalue(int value) { alist.add(value); aset.add(value); private void print() { for(object obj : alist) { System.out.print(obj + " "); System.out.println(); for(object obj : aset) { System.out.print(obj + " "); 정답 1 1 2 3 1 2 3 List 는중복데이터를허용하나, Set 은중복데이터를허용하지않는다. 대구분 : 객체와 Class 소구분 : 객체생성과사용 / Class 선언 / 생성자 / 접근제한자 / 기타제한자 (Static, Final, Abstract) ( 객관식 ) [Q10] 아래예제프로그램은컴파일시오류가발생한다. 코드중에서문법오류가발생하는라인을고르시 오. public class AboutPerson { 1 2 3 4 static int argvcount = argv.length; Person a = new Person(); a.setage(10); a.setname("alice"); 5 Person b = new Person(); 6 b.age = 10; 7 a.name = "John";

print(a); print(b); private static void print(person p) { System.out.println( "name : " + p.name + ", age : " + p.age ); class Person { private String name; private int age; public Person() { public Person(int age) { this.age = age; public String getname() { return name; public String setname(string name) { return this.name; public int getage() { return age; public void setage(int age) { this.age = age; 정답 : 1 자바에서정적지역변수는선언할수없다. 대구분 : OOP 개념 소구분 : Encapsulation/Inheritance/Polymorphism/Overloading/Overriding/Type Casting ( 객관식 ) 난이도 : 하 [Q11] 다음자바언어에서의객체지향기법에대한설명중틀린것을모두고르시오. 1 클래스는복수의인터페이스를구현 (implements) 할수있다. 2 클래스는복수의부모클래스 (super class) 로부터상속 (inherit) 받을수없다. 3 인터페이스는또다른인터페이스로부터상속받을수있다. 4 모든클래스는상속을통한확장 (extend) 이가능하다. 5 인터페이스와상위클래스 (super class) 는코드재사용을위한기법이아니다. 정답 : 4 final 키워드를설정한클래스는상속될수없다.

대구분 : OOP 개념 소구분 : Encapsulation/Inheritance/Polymorphism/Overloading/Overriding/Type Casting ( 단답형 ) [Q12] 다음프로그램의실행결과를적으시오. public class OverloadTest { new OverloadTest().test(); private void test() { Fruits fruits = new Apple(); System.out.println(fruits.getName()); public class Fruits { private String name; public Fruits() { this.name = "unknown"; final public String getname() { return name; public class Apple extends Fruits { public String getname() { return "Apple"; 정답 : 컴파일오류가발생한다. Fruits 클래스의 getname() 메소드는 final 키워드를포함하고있으므로오 버로딩 (overload) 할수없다. 대구분 : 메모리관리 소구분 : Garbage collector 개념및동작원리 / Memory Leak 탐지및예방 ( 객관식 ) 난이도 : 상 [Q13] 다음은 Garbage Collection 에대한설명이다. 보기중잘못된설명을고르시오. 1 자바프로그램실행중객체가 garbage collect 되지않을수있다. 2 finalize() 메소드를오버라이딩하고필요한자원을반납했을경우, 모든자원은확실하게반납된다. 3 garbage collection 이객체의완전한소멸 (destruction) 을의미하는것은아니다. 4 System.gc() 메소드를호출하여강제로 garbage collection을실행해도 garbage collectio이보장되는것은

아니다. 정답 : 2 프로세스실행중가비지컬렉션이동작하지않는경우도발생하며, finalize() 메소드가호출되지 않을수도있다. 따라서자원반납기능은 finalize() 메소드이외의별도의코드로작성해야한다. 대구분 : 예외처리 소구분 : Exception 카테고리 / 처리방법 try-catch 및 throws ( 단답형 ) 난이도 : 상 [Q14] 다음은예외처리예제이다. 예상되는실행결과를적으시오. import java.io.ioexception; public class HandleException2 { new HandleException2().test(); private void test() { try { Person person = new Person("John", -10); catch (IOException e) { System.out.println("Exception catched"); finally { System.out.println("execute finally block"); public class Person { private String name; private int age; " + age); public Person(String name, int age) throws IOException { if (age < 0) throw new IllegalParamException("Invalid input age : public String getname() { return name; public int getage() { return age; public class IllegalParamException extends RuntimeException { public IllegalParamException(String msg) { super(msg);

정답 : RuntimeException 은명시적으로 catch 하지않을경우, catch 블록을통과하게된다. Catched exception 과 uncatched exception 을구분할수있는지여부를묻는문제이다. execute finally block Exception in thread "main" HandleException2$IllegalParamException: Invalid input age : -10 대구분 : Data Type 소구분 : Java data / Primitive / Reference type / Call by value ( 객관식 ) 난이도 : 하 [Q15] 다음코드및예측결과중틀린해석을고르시오. 1 int a = 3.5; // 컴파일오류가발생한다. 2 int a1 = 5; double a2 = (float)a1; // 정상동작한다. 3 int a = 9 / 0; // 컴파일오류가발생한다. 4 Integer a = new Integer(2); Integer b = new Integer(2); System.out.println( a == b ); // false를출력한다. 정답 : 3 런타임오류가발생한다. 대구분 : OOP 개념 소구분 : Encapsulation/Inheritance/Polymorphism/Overloading/Overriding/Type Casting( 객 ) [Q16] 다음설명중틀린것을고르시오. ( 객관식 ) 1 추상클래스 (abstract class) 는하나이상의추상메소드 (abstract method) 를포함하고있어야한다. 2 추상클래스는객체를생성할수없다. 3 protected 메소드는모든하위클래스에서호출할수있다. 4 인터페이스를구현한클래스는인터페이스에포함된모든메소드를구현하지않아도된다. 5 자바의모든클래스는 Object 클래스의자식클래스이다. 6 A 클래스의 b 메소드를하위클래스 C에서오버로딩한경우, 하위 C 클래스에서상위클래스의 b 메소드를호출할수있다. 정답 1 추상클래스는추상메소드를포함하지않아도된다. 대구분 : 기초문법 소구분 : 조건문 / 반복문 / 연산자 ( 단답형 ) 난이도 : 하 [Q17] 아래프로그램출력결과를적으시오.

public class OperatorTest { int a = 10; boolean b = false; if ((b == true) (a++ == 10)) { System.out.println("Equal " + a); else { System.out.println("Not equal! " + a); 정답 : Equal 11 대구분 : OOP 개념 소구분 : Encapsulation/Inheritance/Polymorphism/Overloading/Overriding/Type Casting ( 객관식 ) [Q18] 다음은메소드오버라이딩예제이다. 잘못된설명을고르시오. public class OverrideTest { public static void main() { new OverrideTest().test(); private void test() { SuperClass a = new SubClass(); a.doh(1); class SuperClass { public char doh(char c) { System.out.println("doh(char)"); return 'c'; public float doh(float f) { System.out.println("doh(float)"); return 1.0f; class OtherClass { class SubClass extends SuperClass { public void doh(otherclass o) { System.out.println("doh(OtherClass)");

1 SuperClass의 doh(char c) 와 doh(float f) 메소드는오버로딩 (overloading) 된메소드이다. 2 SubClass의 doh(otherclass o) 메소드는오버라이딩 (overriding) 된메소드가아니다. 3 test() 메소드내에서 a.doh(1) 라인에서컴파일오류가발생한다. 4 SuperClass의 doh(char c), doh(float f) 메소드를 SubClass에서사용할수있다. 정답 : 3 a.doh(1) 호출시 int 값은 float 형태로컴파일러에의해자동형변홖된다. 대구분 : OOP 개념 소구분 : Encapsulation/Inheritance/Polymorphism/Overloading/Overriding/Type Casting ( 단답형 ) [Q19] 다음프로그램의실행결과를적으시오. ( 만일실행할수없다면그이유를적으시오.) public class Poliymorphism { private void f() { System.out.println("base class"); Poliymorphism po = new Derived(); po.f(); class Derived extends Poliymorphism { public void f() { System.out.println("sub class"); 정답 : base class private 메소드는오버라이드할수없다. 그러나, 컴파일오류는발생되지않는다. 대구분 : Data Type 소구분 : Java data / Primitive / Reference type / Call by value ( 객관식 ) 난이도 : 하 [Q20] 다음프로그램의실행결과로올바른것은? public class AutoBoxing { int idx = 0; char[] chararray = new char[10]; chararray[idx++] = '0'; chararray[idx++] = 65;

chararray[idx++] = 'A' + 1; System.out.println( chararray ); 1 컴파일오류가발생한다. 2 실행시오류가발생한다. 3 0AB 4 065B 정답 : 3