과목명총문항수 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); 대구분 : 기초문법 소구분 : 조건문 / 반복문 / 연산자 ( 단답형 ) [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 ); 대구분 : 객체와 Class 소구분 : 객체생성과사용 / Class 선언 / 생성자 / 접근제한자 / 기타제한자 (Static, Final, Abstract) ( 객관식 ) [Q3] 다음코드상의 위치에들어갈수없는키워드를고르시오. class ATestClass { 1 public 2 private 3 abstract 4 final 대구분 : 예외처리 소구분 : 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(); 대구분 : 예외처리 소구분 : 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 대구분 : 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); 대구분 : 객체와클래스 소구분 : 소구분 : 객체생성과사용 / 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); 대구분 : 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의메모리공간을사용한다. 대구분 : 배열과컬렉션 소구분 : 배열의홗용 / 컬렉션의홗용 / 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 + " "); 대구분 : 객체와 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; 대구분 : OOP 개념 소구분 : Encapsulation/Inheritance/Polymorphism/Overloading/Overriding/Type Casting ( 객관식 ) [Q11] 다음자바언어에서의객체지향기법에대한설명중틀린것을모두고르시오. 1 클래스는복수의인터페이스를구현 (implements) 할수있다. 2 클래스는복수의부모클래스 (super class) 로부터상속 (inherit) 받을수없다. 3 인터페이스는또다른인터페이스로부터상속받을수있다. 4 모든클래스는상속을통한확장 (extend) 이가능하다. 5 인터페이스와상위클래스 (super class) 는코드재사용을위한기법이아니다.
대구분 : 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"; 대구분 : 메모리관리 소구분 : Garbage collector 개념및동작원리 / Memory Leak 탐지및예방 ( 객관식 ) 난이도 : 상 [Q13] 다음은 Garbage Collection 에대한설명이다. 보기중잘못된설명을고르시오. 1 자바프로그램실행중객체가 garbage collect 되지않을수있다. 2 finalize() 메소드를오버라이딩하고필요한자원을반납했을경우, 모든자원은확실하게반납된다. 3 garbage collection 이객체의완전한소멸 (destruction) 을의미하는것은아니다. 4 System.gc() 메소드를호출하여강제로 garbage collection을실행해도 garbage collectio이보장되는것은아니다. 대구분 : 예외처리
소구분 : 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); 대구분 : 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를출력한다. 대구분 : 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 메소드를호출할수있다. 대구분 : 기초문법 소구분 : 조건문 / 반복문 / 연산자 ( 단답형 ) [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); 대구분 : 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에서사용할수있다. 대구분 : 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"); 대구분 : 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