본문 바로가기

Java

[공부] 기본정리

JAVA

JAVA 특징

  • 객체지향
    • 추상화 : 현상에 존재하는 객체의 주요특징을 추출하는 과정
    • 캡슐화 : 하나의 클래스 안에 데이터와 기능을 담아 정의하고, 중요한 데이터나 복잡한 기능 등은 숨시고, 외부에서 필요한 기능만을 공개하는 것.
    • 상속 : 객체 정의 시 기존에 존재하는 객체의 속성과 기능을 상속받아 정의하는 것
    • 다형성 : 같은 타입 또는 같은 기능의 호출로 다양한 효과를 가져오는 것
  • 플랫폼 독립적
    • JVM 위에서 작동되어지기 때문에 Java의 컴파일 코드는 JVM이 해석 가능하도록 번역
  • 간단하다
    • 복잡성, 메모리관리의 어려움을 해결하여 쉽게 접근
  • 분산 프로그래밍 지원
    • 네트워크를 이용한 프로그래밍 지원, 원격 접속을 위한 다양한 기술셋을 가지고 있다.
  • 멀티 스레드
    • 운영체제에 종속적이지 않는 독립적인 설계, JVM에 의해 스케쥴링이 되도록 구현

JAVA 데이터 타입

  • Primitive Data Type
    • 기본적(일반적)인 값을 기억하는 변수의 type
    • byte, short, int ,float, double, char ,boolean
  • Reference Data Type
    • 객체의 참조(Reference)값을 기억하는 변수
    • class, interface, 배열 등

JVM의 메모리 관리

  • Class Loader : 하드 디스크에 있는 번역된 class 파일을 메모리로 읽어온다.
  • class area(Method Area) : 메모리로 읽어온 클래스의 정보를 기억하는 곳
  • heap : 클래스의 객체를 생성하여 기억하는 곳
  • stack : 메서드 수행 시마다 프레임이 할당되어 메서드 수행에 필요한 변수나, 중간 결과값을 임시기억
  • Garbage Collection
    • heap영역에 생성된 객체들의 메모리 관리를 담당하는 프로그램

접근제한자

Class pakage subClass(자식 클래스) universe
private
(default)
protected
public

Overriding vs Overloading

  • Overriding
    • 상속을 기반
    • super부터 상속받은 기능 중 특정 기능을 재정의
  • Overloading
    • 하나의 클래스나 상속받은 클래스의 내에 같거나 비슷한 기능의 method의 이름을 같게 정의함

Collection API

  • 정의 : 객체들을 저장, 검색, 삭제하는 기능 등을 제공하는 클래스들의 집합

  • Set : 객체 저장 시 순서 없이 저장하고, 같은 데이터는 부시한다.
  • List : 인덱스를 가지고 순서대로 저장, 중복된 데이터도 새로운 인덱스를 부여하여 저장
  • Map : key, value로 구분하여 관리

Exception, Error

  • exception
    • 예외가 발생할지 모르는 상황에 체크를 해준다.
    • 프로그램을 중단시키지 않고, 복구하여 지속적으로 실행할 수 있도록
  • Error
    • 치명적인 오류로 SW적으로 복구 불가능
  • Checked - RuntimeExcpetion을 제외한 모든 Exception
  • unChecked - SW적으로 복구 불가능하기 때문에 컴파일러가 체크하지 않는다. Error, RuntiemException