목록Java (2)
코드와이
Java & 객체지향 장점 JVM에서 동작 특정 운영체제에 종속되지 않는다. 객체지향 언어 캡슐화, 상속, 추상화, 다형성 등 비교적 이해하고 배우기 쉽다. 유지보수가 쉽다. GC를 통한 자동 메모리 관리 OpenJDK가 오픈소스 자바는 스레드 생성 및 제어와 관련된 라이브러리 API를 제공하고 있기 때문에 실행되는 운영체제에 상관없이 멀티 스레드를 쉽게 구현 가능 단점 JVM에 의해 기계어로 번역되고 실행하는 과정을 거치기 때문에 C나 C++의 컴파일 단계에서 만들어지는 완전한 기계어보다는 속도가 느리다 불편한 예외처리 접근 제어자 public(+) : 어떤 클래스의 객체에서든 접근 가능 private(-) : 이 클래스에서 생성된 객체들만 접근 가능 protected(#) : 이 클래스와 동일 패키지..
Garbage Collector 가비지(Garbage)란? 정리되지 않은 메모리 유효하지 않은 메모리 주소 int[] arr = new int[1]; arr[0] = 3; arr = new int[] {1}; 위 코드에서 처음에 할당한 3을 가비지라고 부른다. 앞으로 사용하지 않고 메모리를 가지고 있는 객체 또한 가비지라고 부른다. 메모리가 부족할 때 이런 가비지들을 메모리에서 해제시켜 다른 용도로 사용할 수 있게끔 해주는 프로그램 C++과의 차이점 C++ : 사용하지 않을 객체의 메모리를 직접 해제 Java : GC가 자동으로 잡아줌 Stop The World GC 실행을 위해 JVM이 애플리케이션 실행을 멈추는 것 GC가 실행될 땐 GC를 실행하기 위한 쓰레드를 제외한 모든 쓰레드가 멈추고, GC 작..