본문 바로가기

object

(6)
면접족보 20/12/18_제네릭 개념 1. BigInteger 클래스와 BigDecimal 클래스 · Biglnteger 클래스는 immutable의 속성을 지니며, 매우 큰 정수를 표현 할 때 사용한다.(long 이상의 수를 받아들일 때) · BigDecimal 클래스는 실수를 표현 할 때 사용한다. 2. 아래의 결과 값은 false 출력이 된다. true가 되도록 INum을 작성하시오. · 참고 · 작성 : 참고에서 Arrays equals(ar1, ar2)는 객체를 비교하기 때문에 서로 다른 인스턴스를 참조하고 있어 false를 출력한다. 작성한 INum에서는 equals 함수 오버라이딩을 하여 단순히 내용을 비교하기 때문에 true를 출력하게 된다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19..
면접족보 20/12/17_Shallow, Deep copy 1. String 클래스에서 문자열 비교시 equals를 사용하는 이유? · String에서의 equals는 부모클래스에 있는 equals 메소드를 오버라이딩 하였기 때문에 문자열 비교가 가능하다. 반드시 자식클래스로 형변환을 실행해줘야 사용이 가능하다. ex: (INum)obj.num 2. Shallow copy와 Deep copy의 차이는? **중요** · class 내에 객체 형의 데이터 멤버가 존재할 때 (객체가 아닌 변수가 존재하는 경우는 크게 상관x) Shallow Copy의 경우, 해당 객체만 복사하여 사용되고, 세부적인 객체는 따로 복사되지 않기 때문에 값이 공유된다. Deep Copy의 경우, 세부적인 객체까지 복사되어 참조하는 인스턴스가 전혀 다르기 때문에 값이 공유되지 않는다. 3. ..
제네릭 1. 제네릭이란? · 최상위 클래스인 Object를 사용함으로써 모든 객체들을 받을 수 있기 때문에 컴파일 오류가 직접적(빨간줄)로 보이지 않고, 실시간 에러(출력에서)를 발생시킨다. · 가장 큰 문제는 실시간 오류가 발생하지않고, 전혀 다른 값을 출력하는 경우인데 이와 같은 문제점들을 보완하기 위해 제네릭를 사용한다. · 제네릭 타입을 이용함으로써 잘못된 타입이 사용되어 문제 발생 시 사전에 컴파일 과정에서 제거가 가능하고, 객체의 타입을 컴파일 시에 체크하여 객체 타입의 안정성이 증가하고 형변환도 감소한다. · 제네릭 타입은 으로 표현하고, 그 사이에는 타입 파라미터를 가진다. 2. 제네릭의 기본 문법 · Object ob는 어떠한 객체든 받아들이며, Object 부분을 타입으로 변경하여 정의..
Object 클래스_연습문제 1. String 객체 프로그램을 이용하여 equals 메소드와 연산자 ==의 차이를 비교 설명하시오. (필수) · s1과 s2는 서로 다른 인스턴스를 생성하고, s3은 s2의 인스턴스를 참조한다. 연산자 == 는 같은 인스턴스를 참조하는지 비교하며, equals 메소드는 부모클래스인 Object의 함수로써 단순히 문자열이 같은지 내용을 비교한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 class String { private String str; String(String str){ this.str = str; } @Override public boolean equals(Object obj) { if(this.str == ((String)obj).str) return true; ..
JVM 메모리모델과 Object 클래스 1. JVM 메모리 모델이란? · 자바 가상머신으로 JVM은 메소드, 스택, 힙 총 3개의 영역으로 메모리 공간을 차지하고 있다. · 아래와 같이 참조 변수에 null을 대입하는 경우, 인스턴스에 대한 참조 관계가 소멸되면서 힙 영역에서는 객체가 소멸되지 않은 상태로 메모리를 차지하고 있는데, 이 때 JVM의 Garbage Collection이 힙영역에 있는 인스턴스를 삭제 및 메모리 정리를 한다. (Garbage Collection은 세가지 영역의 메모리를 정리 및 관리) 2. Object class (equals 메소드) ※equals 메소드란? · Object 클래스의 메소드 종류 중 하나이며, 참조하는 인스턴스를 비교하는게 아닌 내용을 비교해주는 기능을 한다. · 아래 예시와 같이 == 연산자는 ..
예외처리 1. 에러와 예외의 차이는? ※에러란? · 시스템에 비정상적인 상황을 말하며, 원인이 로직에서 존재하지 않는다(코딩상의 문제X) · 코딩상의 문제가 아니며 메모리가 꽉 찼을 떄 등의 문제를 말한다. ※예외란? · Exception은 개발자가 구현한 로직에서, 실행 도중 발생하는 정상적이지 않은 상황을 말한다. · 자바의 예외처리 메커니즘은 문제가 발생하는 지점에 대한 정보 출력과 동시에 프로그램을 종료시킨다. 2. try-catch 하는 이유? · 예외가 발생할 수 있는 구문에 예외처리가 되어 있지 않다면 해당되는 시점부터 실행이 끝나버리지만, try~catch를 통해 예외처리가 되어있다면, jvm이 프로그램을 살리기 위해 해당객체로 넘겨서 해결한다. ♣예외 발생 이후의 실행 흐름♣ · 아래와 같이 실행..