1. 아래의 결과 값은 false 출력이 된다. true 가 되도록 INum을짜시오. INum[] ar1 = new INum[3]; INum[] ar2 = new INum[3]; ar1[0] = new INum(1); ar2[0] = new INum(1); ar1[1] = new INum(2); ar2[1] = new INum(2); ar1[2] = new INum(3); ar2[2] = new INum(3); System.out.println(Arrays.equals(ar1, ar2)); 상단 결과 값이 false라고 뜨는 이유는 ar1과 ar2의 형태가 동일해도 new를 사용하여 메모리에 올라가면 주소값이 달라지기 때문이다. 따라서 두 객체가 동일하다는 true 를 출력받기 위해서는 equals 함수..
1.Wrapper class란? 레퍼 클래스란 기본 데이터 타입 8 종류를 감싸고 있는 클래스를 의미한다. 보통 println( )에 객체를 println(3); 이런식으로 직접 입력하면 두 가지 중 하나로 출력이 된다. (1)오버라이딩이 되어 있지 않으면 주소값이 나오고, (2)오버라이딩이 되었을 시 toString을 호출하여 3이라는 값이 출력되는 것이다. 즉 println()함수에 값을 바로 집어 넣어서 해당 값을 온전히 받고 싶다면 상속을 해야 얻을 수 잇다. 그런데 프로그래밍을 하다보면 기본 데이터 타입(primitive type)을 객체로 표현해야 하는 경우가 있는데 이럴 때 사용하는 것이 Wrapping class다. 그런데 Wrapping이 된다면 포장이 된 것이라 기본 타입 값을 외부에서..
1. Object클래스의 11개 함수를 나열해 보시오. Object 클래스란? 모든 클래스의 최상위 클래스이자 부모 클래스이다. 함수명 메소드 용도 equals( ) ★ public boolean equals(Object obj) { } 객체동등비교 (주소값비교) hashCode( ) ★ public int hashCode( ) 객체 해시코드 값 리턴 toString( ) ★ public String to String( ) { } 객체 문자열 정보 clone( ) Shallow Deep 객체복사 (얕은복사, 깊은복사) finalize( ) protected void finalize( ) throws Throwable { } 객체 소멸, jvm이 호출 getClass( ) Class getClass( ) ..
1. 에러(Error)와 예외(Exception)의 차이는? 에러는 시스템 문제라 예측하기 어렵고 그렇기에 대응하기도 힘들다. 메모리 부족, 벌츄얼 머신 에러와 같은 문제가 발생하면 프로그램은...사망 ~ 아무리 대단한 프로그래머가 만든 훌륭한 어플리케이션이라도 OS 입장에서는 단순 어플리케이션일 뿐이라 에러사항이 뜨면 jvm이 즉사시켜버린다. ㅋㅋ 그래도 jvm이 그냥 죽이지는 않고 예외객체를 보여주고 장렬히 전사시킴. ??: 에휴 바보 개발자를 위해 내가 대신 만들어줘야지 .. 예외는 프로그래머가 해결할 수 있는 문제의 발생이다. 프로그래머의 실수로 발생하기도 하고 컴퓨터 프로그램(?)의상태에 따라 발생하기도 한다. 미리 문제가 발생하지 않도록 대비가 가능하다. 2. unchecked 와 checke..
1. Maker 인터페이스에 대하여 설명하시오. 개발자들이 붙인 이름이나 공식적인 명칭은 아니다. interface Upper{ } //마커 인터페이스 interface Lower{ } //마커 인터페이스 이렇게 중괄호 안에 텅 비어도 문법적으로 허용 됨 2. 추상 클래스(abstract class)에 대하여 설명하시오. class 앞에 abstract가 붙는 것이며 body 부분이 텅 비어 온전치 못한 함수로 구성된다. public abstrat class House { public void methodOne( ){ System.out.println("method one"); } } 인터페이스가 아닌 일반 클래스라도 abstract가 붙으면 구현 부분이 생략된다. 즉, 구현을 하고 싶지 않을 때 abs..
1. Object 클래스란? 모든 클래스들이 굳이 적지 않아도 상속하는 클래스. 즉, 모든 클래스는 Object 클래스를 상속한다. 그래서 내가 굳이 extends Object를 적지 않아도 컴파일러가 생성해주나 생략되는 것. 1 2 3 class A extends Object { } cs cf) 컴파일러가 자동으로 해주는 것. 1. 자동 형변환 2. 디폴트 생성자 3. 상속시 디폴트 super생성자 4. extends Object 2. 아래의 소스코드에 대하여 아래와 같이 출력되는 이유는? 출력 A@28a418fc ============== class A{ } public class Test { public static void main(String[] args) { A a = new A(); Syst..
1. is a 관계와 has a 관계란? 2.다형성(polymorphism)이란 무엇인가? 3. 아래가 되지 않는 이유에 대하여 메모리 그림으로 설명하시오. //MobilePhone(부모) SmartPhone(자식) SmartPhone ph2 = new MobilePhone(); 4.메소드 오버라이딩(Overriding) 이란? 5.자바의 정석: 연습 문제 56page - 3개의 함수를 완성 하시오. 6. 갬블링 게임을 만들어 보자. (문제 5번 과 6번은 상속은 안써도됨) 두 사람이 게임을 진행한다. 이들의 이름을 키보드로 입력 받으며 각 사람은 Person 클래스로 작성하라. 그러므로 프로그램에는 2개의 Person 객체가 생성되어야 한다. 두 사람은 번갈아 가면서 게임을 진행하는데 각 사람이 자기 ..
1. String 에서 concat 메소드에 대해서 설명하시오. 단순히 붙이는 것으로 앞 뒤 문자열을 연결해주는 것이다. +연산을 사용하고 f3을 돌리면 +연산이 concat으로 풀어져 내부적 계산이 되는 것을 확인 할 수 있다. String str 뒤에 str2를 붙이는 것. 예) str.concat(str2) 2. String 에서 substring 메서드 사용법은? subString(0)은 잘라 내어 메모리에 다시 생성하는 것이다. chaAt(0)는 메로리에 다시 생성시키지 않고 코드값만 받아 오는 것이다. String의 인덱스에 해당하는 char를 제거 하는 것. 예) abcd 에 위치별로 삭제되고 그런거 예시 3. String compareTo 사용법은? 문자열이 같으면 정수 0을 리턴. 음수 ..
1. 스택틱 변수의 다른 용어 3가지는? 공유변수, 클래스 변수, 정적 변수 2.스태닉 변수의 접근 방법은? static함수를 만든다 3.스태틱 변수의 활용의 예를 드시오. 4.스태틱 함수에 인스턴스 라면이 올 수 없는 이유는? static 객체가 생성 되기 전에, 인스턴스 변수 및 함수는 메모리에 객체가 생성 될 때 올라간다. 즉 인스턴스 라면은 static 객체가 생성 되기 전에 메모리에 올라가는 것이다. static과 인스턴스 메모리 생성에 시간 차가 있는 것이다. 5. 아래의 프로그램에서 기존에 값을 다이렉트로 넣었던 부분을 Scanner 로 입력 받아 처리 하시오. int math, science, english; math = 90; science = 80; english = 80; Grade ..