객체 지향의 특징

폴리모피즘 : 하나의 메서드가 다양하게 작동하는 것ex) 오버라이딩, 오버로딩상 속 : 코드 중복의 최소화를 실현해줌캡 슐 화 : 접근 지정자를 통해 구현

ex) default 같은 패키지 내

protected 같은 패키지 + 상속클래스

public 전체 접근가능 private 클래스 내

오버라이딩과 오버로딩

오버라이딩 : 동일한 메서드 이름 하나에 매개변수를 다르게 하여 메서드를 확장하는것

오버로딩 : 함수 재정의. 리턴타입, 이름, 매개변수, 모두 동일한 메서드를 정의하는것

추상클래스와 인터페이스

추상클래스 : 클래스 내 추상 메서드가 하나 이상 포함되거나 abstract로 정의 된 경우

인터페이스 : 클래스 내 모든 메서드가 추상 메서드로 여러개를 implements 가능하다. (구현을 강제하는 기능)제네릭클래스에서 사용할 타입을 외부에서 정하는것으로 기본형을 사용하기 위해서는 wrapper를 사용한다.

배열과 링크드리스트

배열 : 인덱스를 가져 접근이 빠르지만, 인덱스의 정리가 있어 삽입, 삭제가 느리다.

링크드리스트 : 링크를 따라가 접근이 느리지만 링크를 끊고 연결하는 작업으로 삽입, 삭제가 빠르다.

벡터와 어레이리스트

벡터 : 동기식. 한 스레드가 작업 중이면 다른 스레드가 작업이 불가하다.

어레이리스트 : 비동기식. 한 어레이리스트를 여러 스레드가 동시에 작업이 가능하다.

String 과 String buffer의 차이

String : 문자를 수정하려면 메모리에 할당 된 것을 지우고 새로 생성하는 방식이다. new 시키는것과 같으므로 문자열 연산이 많으면 속도가 지연된다.

String buffer : 한번 만들고 크기 변경하여 사용이 가능하다. 추가하는 append() 함수등을 이용한다.

Java의 메모리 영역

메서드 : 바이트코드와 전역변수, static 변수

스택 : 매개변수, 지역변수, 컴파일시 메모리가 할당되며 호출 후에도 메모리에서 지워진다.  

힙  : new로 생성된 객체, 프로그램 실행시 동적으로 할당되며 호출 후에도 메모리에 남는다.

* 메서드를 static화 하면 빨라진다. 대신에 인스턴스 변수 사용이 불가능해진다.

Java 씨리얼라이제이션(직렬화)

객체상태 혹은 데이터구조를 기록할 수 있는 포멧으로 변환한것.

Google GSON 자바객체를 JSON으로 변환 또는 반대 작업을 수행하는 구글의 자바 라이브러리

hash

내부적으로 배열을 사용해서 데이터를 저장하는 방식으로 검산이 빠른 특징을 가진다. 고유의 인덱스를 사용가능하다.

반응형

+ Recent posts