전공공부/자바 (JAVA) 7

[JAVA] POJO

POJO란? Pojo란 Plain Old Java Object의 약자이며, 위키백과의 정의를 빌려오자면 오래된 방식의 간단한 자바 오브젝트라는 뜻입니다. 오래된 방식의 자바 오브젝트...라고 하면 무슨 말인지 잘 감이 안옵니다. 그래서 풀어서 설명하자면, 특정 환경이나 기술에 종속되지 않는 순수한 자바 객체라고 할 수 있습니다. POJO의 등장 배경 POJO는 각종 프레임워크들을 사용하게 되면서 객체가 점점 무거워지기 시작하자 이에 반발하여 나온 개념입니다. 자바 객체들이 특정 환경과 특정 기술에 종속되어 의존성이 커지게 되자 객체지향 언어 고유의 장점인 가독성, 유지 보수 등에 오히려 어려움을 겪게 되었기 때문입니다. 자바 객체를 왜 사용하는지를 다시 처음으로 돌아가서 잘 생각해보자라는 뜻이 있을 수 ..

[JAVA] Overloading과 Overriding의 차이

자바에서 자주 나오는 개념으로 Overloading과 Overriding이 있습니다. 이름이 비슷해서 혼동하기 쉽지만 전혀 다른 뜻을 가지고 있기 때문에 한 번 정리를 하고 넘어가고자 합니다. Overloading Overloading은 한 클래스 내에서 둘 이상의 메서드가 같은 이름을 가지면서 인자의 수나 자료형이 다른 경우를 말합니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 public int add(int a, int b) { return a + b; } // 1번 public int add(int a, int b, int c) { return a + b + c; } // 2번 public int add(char a, char b) { return a + b; } // 3번..

[JAVA] Scanner vs BufferedReader & System.out vs BufferedWriter

Java에는 입출력을 실행하는 여러 방법이 있습니다. 입력의 경우, 가장 유명한 두 방법은 다음과 같습니다. 1 2 3 4 5 6 7 // 1. Scanner Scanner sc = new Scanner(System.in); sc.next(); // 2. BufferedReader BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); br.readLine(); Colored by Color Scripter cs 출력의 경우에는 다음과 같습니다. 1 2 3 4 5 6 7 // 1. System.out System.out.println("hi"); // 2. BufferedWriter BufferedWriter bw = new B..

[JAVA] Static? 그거 왜 붙이는건데?

Static. 자바를 이용하여 개발을 하다 보면 참 많이 마주치는 키워드입니다. 당장 main 함수를 선언할 때만 보더라도 public static void main(String[] args){ ... } 요렇게 static이 떡하니 붙어있죠. 그렇다면 static이 왜 붙어있는지, 도대체 무엇인지, 어떻게 쓰이는 것인지 알아보도록 하겠습니다. Static이란? Static은 '정적인, 고정된'이라는 뜻을 가지고 있습니다. 이러한 이름을 가지는 이유는 바로 static이 앞에 붙는 변수나 메서드는 어떤 객체에 소속되는 것이 아닌, 클래스에 고정되어 있는 변수나 메서드이기 때문입니다. Static의 특징을 먼저 살펴보겠습니다. 1. 메모리에 고정적으로 할당된다. 2. 객체 생성 없이 사용할 수 있다. 3...

[JAVA] JVM, JRE, JDK의 차이점이 뭘까?

JAVA를 사용해 개발을 진행하다 보면 JDK, JRE, JVM과 같은 단어들을 쉽게 접할 수 있습니다. 이 셋은 자바 프로그램의 개발과 실행을 위해 필요한 컴포넌트로, 오늘은 이 용어들의 정의에 대해 알아보도록 하겠습니다. 1. JVM (Java Virtual Machine) 이름 그대로 자바 코드를 실행하기 위한 가상 머신이라고 생각하면 편합니다. 기능을 간단하게 언급하자면, JVM은 아래의 역할들을 수행합니다. 1. 자바 코드로부터 컴파일되어 생성된 자바 바이트 코드를 실행합니다. JVM 덕분에 어떤 운영체제를 사용하든지 상관없이 자바 코드를 실행시킬 수 있습니다. 2. Garbage Collection을 통한 메모리 관리를 수행합니다. JVM에 대해서는 아래의 글에 더 자세히 작성되어 있습니다. ..

[JAVA] 자바 가상 머신, JVM에 대해 알아보자!

JVM은 Java Virtual Machine의 약자로 자바 프로그램을 OS 환경과 상관없이 구동될 수 있도록 해주는 가상 머신입니다. 1. JVM의 역할 1. OS에 구애받지 않는 실행 사용자가 작성한 자바 코드는 자바 컴파일러에 의해 자바 바이트 코드로 컴파일되고, JVM은 이 자바 바이트 코드를 사용자의 컴퓨터가 어떤 OS를 사용하든 상관없이 돌아가게끔 만들어줍니다. 즉, 원래 프로그램은 Windows에서 개발되었다면 Mac이나 Linux에서는 구동할 수 없습니다. 하지만 자바는 JVM만 실행 환경에 맞추어 준비해 놓는다면 어떤 OS를 사용하든지 상관없이 구동할 수 있다는 뜻입니다. Windows에서 개발되었더라도 Mac에 맞추어 JVM을 준비만 해 둔다면, 충분히 Mac에서도 실행이 가능합니다. ..

[JAVA] JAVA는 컴파일 언어일까, 인터프리터 언어일까?

앞의 글에서 우리가 코딩 시에 사용하는 언어들은 컴파일 언어와 인터프리터 언어로 구분할 수 있다는 사실을 알게 되었다. 다시 기술하자면, C, C++, Go 등의 언어는 컴파일 언어이고, Python, R, JavaScript와 같은 언어들은 인터프리터 언어이다. 앞의 글은 아래의 링크에서 확인할 수 있다. https://jooona.tistory.com/156 [프로그래밍 언어] 컴파일 언어 vs 인터프리터 언어 우리는 고급 언어를 이용해 프로그램을 짜곤 한다. 여기서 고급 언어란 우리가 사용하는 Java, C, Python 등의 언어를 뜻한다. 이 고급 언어는 크게 컴파일 언어와 인터프리터 언어로 구분할 수 있다 jooona.tistory.com 그렇다면, Java는 왜 예시에 포함되지 않는 것일까?..