자바

자바의 특징과 구조

Hyun-danpung2 2022. 2. 25. 18:07
728x90
반응형

1. 자바의 특징

  • 운영체제에 독립적: 자바로 작성된 코드는 JVM(Java Virtual Machine) 위에서 실행되기 때문에 운영체제에 구애받지 않고 코드를 작성하고 실행할 수 있다. 눈에 너무도 익숙한 그 문장 Write once, run anywhere
  • 객체지향언어: c++은 엄밀하게 말해서 객체지향언어가 아닌 객체지향지원언어라고 할 수 있다. 왜냐하면 객체를 이용하지 않고도 코드를 작성할 수 있기 때문이다. 그러나, 자바는 모든 것이 객체에서 시작해서 객체에서 끝나는, 말 그대로 '객체지향언어'이다.
  • 비교적 배우기 쉽다: 자바의 정석에서는 이를 자바의 특징으로 내세우고 있는데, 사실 이건 사람 바이 사람이기 때문에 특징으로 볼 수 있는지 의문이 든다. 객체 지향의 사실과 오해를 보면 자바 개발자들조차도 적지 않게 객체 지향에 대해 오해하고 있음을 알 수 있다.
  • 자동 메모리 관리: 자바의 정석은 가비지 컬렉터가 자동으로 메모리를 관리해주기 때문에 코드 작성자가 따로 관리 하지 않아도 된다고 한다. 하지만 메모리 누수는 당연히 발생할 수 있으며, 가비지 컬렉션 활동과 메모리 사용량이 늘어나면서 성능이 저하되고 심할 경우 디스크 페이징*이나 OutOfMemoryError로 프로그램이 예기치 않게 종료될 수도 있다. 물론 C/C++과 같은 코드 작성자가 직접 메모리를 관리해야하는 언어보다는 낫지만, 그렇다고 메모리 누수가 없는 것은 아니라는 의미다.

 

2. 자바 코드가 실행되는 과정


java 파일 작성 -> javac.exe(자바 컴파일러) -> class 파일 생성 -> java.exe(자바 인터프리터) -> 코드 실행

main메서드는 java.exe에 의해 호출 될 수 있도록 미리 약속된 형태로 작성해야한다.

class 클래스명{
    // main메서드
    public static void main(String[] args){

    }
}



*페이징: RAM을 보충하기 위해 하드 디스크 등을 가상 메모리로서 활용하는 것. 하드디스크를 사용하는 경우 RAM만을 사용할 때보다 작업속도가 확연하게 느려지고 SSD를 사용하는 경우 SSD의 수명을 단축시킨다.




자바의 정석은 자바를 처음 접하는 사람들이 많이 찾아보는 책일 정도로 훌륭한 책이다. 이 글에서 얘기하고자 하는 내용은 자바의 기본 문법을 알고 있는 사람이 자바 관련 서적들을 통해 알게된 내용을 정리하는 것이지, 절대 해당 책을 폄하하는 의도는 없다. 자바의 정석 좋아요





Reference: 자바의 정석(3rd Edition), 이펙티브 자바(3/E), 스프링 입문을 위한 자바 객체 지향의 원리와 이해

728x90
반응형