면접 준비 - 자바

자바

JAVA의 좋은점

  • 객체지향형 프로그래밍 언어
  • 플랫폼에 독립적
  • 라이브러리 지향적
  • 보안성 등

객체지향 언어의 장점

  • 코드의 재사용성
  • 코드의 유지보수성
  • 보안성 등

객체 지향 3요소

  • 캡슐화
    프로그램 내에서 같은 기능을 목적으로 작성된 코드를 모아서 다른 곳(클래스)에서 안보이게 숨기는 것

    클래스에 정의된 속성(Attribute)는 숨기고(Private), 객체가 수행할 기능(Function)은 공개(Public)하는 것을 의미

  • 다형성

    • Overriding
    • Overloading
  • 상속

JAVA의 데이터 타입

기본형

  • boolean
  • byte
  • char
  • short
  • long
  • int
  • double
  • float

참조형

  • 클래스
  • 인터페이스
  • 배열

JAVA 컬렉션의 대표적인 인터페이스

List

  • 순서가 있다
  • 데이터의 중복을 허용한다

  • 구현클래스

    • ArrayList
      • 데이터 배열의 형식
      • 자료의 최대 개수에 영향을 받는다
      • 무작위 접근 가능
      • 자동 동기화 삭제
    • LinkedList
      • 주소 배열의 형식
      • 개수 영향 없음
      • 순차적 접근 가능
    • Stack
    • Vector
      • 가변 길이 배열
      • 무조건 동기화(단일 쓰레드 처리에서 성능 떨어짐)

Set

  • 순서가 없다
  • 데이터의 중복을 허용하지 않는다
  • 구현 클래스
    • HashSet
    • TreeSet
      : 오름차순으로 데이터 정렬

Map

  • HashMap
  • TreeMap : 키에 대한 정렬

개념

  • 배열과 컬렉션의 차이
    배열은 하나의 자료형만을, 컬렉션은 복수의 자료형 저장
    지정한 자료형 타입 한 가지만 저장하기 위해 나온 것이 제네릭
  • 멀티쓰레드
    • 두 가지의 작업을 동시에 실행하는 것
    • Thread 클래스 상속
    • Runnable 인터페이스 상속
  • Wrapper 클래스
    기본 자료형을 객체로 만들 경우 그러한 기능을 제공하는 클래스
  • 인터페이스 사용 이유
    클래스 간의 결합도를 낮추고 응집도를 올리기 위해
  • 가비지 콜렉터
    할당된 메모리 영역 가운데 더 이상 사용할 수 없게 된 영역을 탐지하여 자동으로 해제하는 기법
  • 동기화
    하나의 자원을 여러 테스크가 사용하려 할 때 하나만이 사용할 수 있도록 하는 것
  • 프로세스
    현재 실행 중인 프로그램
  • 쓰레드
    프로세스 내 실제 작업을 수행하는 단위