Language

    예외처리(Exception Handling)

    예외처리(Exception Handling)

    프로그램이 어떤 원인에 의해 오작동하거나 비정상적으로 종료되는 경우가 있다. 이 결과를 초래하는 원인을 프로그램 에러 또는 오류라고 한다. 이를 발생 시점에 따라 '컴파일 에러'와 '런타임 에러'로 나눌 수 있다. 컴파일 에러 : 컴파일할 때 발생하는 에러. 런타임 에러 : 실행 시에 발생하는 에러. 컴파일러가 .java에 대해 오류가 없다면 .class파일을 생성하고 생성된 .class파일을 실행할 수 있게 되는 것이다. 하지만 컴파일을 마쳤다고 해서 실행 시에도 에러가 발생하지 않는 것은 아니다. 컴파일러는 실행 시 발생할 수 있는 잠재적인 오류까지 검사할 수 없다. 그래서 이런 런타임 에러를 방지하기 위해 모든 경우의 수를 고려하에 대비하는 것이 필요하다. 자바에서 실행 시 발생할 수 있는 오류를 ..

    객체 지향 프로그래밍에 대해 묻는다면 ?

    이전 포스팅에서 Java의 동작 순서에 포스팅을 하면서 Java의 대표적인 특징인 객체 지향 언어라는 점을 생각해보게 되었다. 과연 나는 누군가가 '객체 지향 언어가 뭐죠?'라는 묻는 질문에 어떻게 대답을 해야 할지 고민해봤다. 명확하게 이런 것이라고 말은 못 해도 대충 두리뭉실하게 설명은 할 수 있을 것 같다. 하지만 면접장에서는 다르다. 면접관의 질문에 명확하게 대답을 해야 한다라고 생각하는 바 포스팅하게 되었다. 서론이 너무 길었으니 바로 본론으로 들어가자! 객체 지향 프로그래밍(OOP : Object Oriented Programming) 객체 지향 프로그래밍이라는 숲을 보기 전에 객체라는 나무를 먼저 보도록 하자. 객체는 클래스(class)가 실제로 구현된 인스턴스(instance)를 말한다. ..

    Java는 어떻게 동작하지?( + 메모리 영역)

    Java는 어떻게 동작하지?( + 메모리 영역)

    Java란? Java는 프로그램을 만드는 프로그래밍 언어 중 하나이자 대표적인 객체지향 언어이다. 운영체제와 상관없이 JVM(Java Virtual Machine)만 있으면 코드를 실행할 수 있다. 가비지 컬렉션이 존재하기 때문에 사용자가 일일이 메모리를 관리해주지 않아도 자동으로 사용하지 않는 메모리를 해체해준다. JVM(Java Virtual Machine)이란? JVM은 자바의 Byte 코드를 OS에 맞게 실행해주는 역할을 수행한다.( 그래서 CPU나 OS에 상관없이 실행할 수 있게 해 준다.) 우리가 Java로 코드를 작성하면 이건 인간끼리만 알아볼 수 있지 컴퓨터는 하나도 읽을 수 없다. 그래서 Java 코드를 컴퓨터가 읽을 수 있게 기계어로 변환하는 작업을 '컴파일'이라고 한다. Java 동작..