전체 글
-
객체(object)에 대해서백엔드/자바 2020. 7. 27. 06:52
1. 객체(object)란? 객체는 클래스에서 정의한 내용을 토대로 메모리(실제 저장공간)에 할당된 것으로 프로그램에서 사용되는 데이터 또는 식별자에 의해 참조되는 공간을 의미. 2. 인스턴스란? 객체를 정의한 클래스로부터 객체를 만드는 과정을 인스턴스화(Instantiate). 그리고 이렇게 만들어진 객체를 인스턴스(Instantance)라고 부른다. 3. 객체의 쓰임새 클래스에 정의된 대로 객체를 만들면 이제 이 객체의 특성은 멤버변수를 통해 정해지고 객체는 메서드를 따라서 일정 동작을 수행하면서 프로그램을 돌아가게 만든다. 4. 객체 만들기 객체를 만들기 위해선 new 연산자를 사용해주는데 다음과 같이 만들면 된다. " 사용하려는 클래스 파일명 + 객체명 + = + new + 사용하려는 클래스파일 ..
-
자바의 기본(클래스, 메서드, 필드, 생성자, 인스턴스)백엔드/자바 2020. 7. 27. 06:08
1. 자바의 기본 자바 프로그램은 최소 한개의 클래스로 구성된다. 그리고 그 클래스는 한 개 이상의 필드(field) 또는 메서드(method)로 구성된다. 기본 구조는 다음과 같다. public class Test { // 클래스 선언 : 어떠한 객체의 변수, 메서드의 집합 int a = 1; // 필드 부분 : 객체 데이터가 저장되는 곳 public void method() { // 메서드 부분 : 객체의 동작을 수행하는 부분 System.out.println(a); } } 2. 클래스와 객체(Class&Object) 자바에서 클래스(Class)와 객체(Object)를 이해하는 것은 굉장히 중요하다. 클래스란 객체를 만들기 위한 기본적인 틀이고, 객체는 실제로 이 틀을 이용해 만들어낸 결과물을 말한다..
-
자바(Java) 메모리 구조 / Runtime Data Area백엔드/자바 2020. 7. 27. 03:24
자바의 메모리 구조 우리가 작성한 소스 코드는 컴파일해 자바 바이트 코드로 바꾸고 이를 JVM으로 실행하게 된다. 그리고 이 과정에서 코드들은 Runtime Data Area 영역에서 실행된다. 즉 OS가 JVM에 할당한 메모리 영역에 맞게 코드들이 분배되고 실행되는 것이라고 생각하면 된다. Runtime Data Area OS가 JVM에 할당해준 메모리 영역을 Runtime Data Area라고 부른다. 그리고 이러한 메모리 영역은 우선 크게 두 가지로 나뉜다. 쓰레드 별로 생성되는 메모리 영역과 모든 쓰레드가 공유하는 메모리 영역이다. 모든 쓰레드가 공유 Method Area Runtime Constant Pool Heap Area Eden Survivor 1 Survivor 2 Old Permane..
-
자바 가상 머신 (JVM)에 대해서백엔드/자바 2020. 7. 27. 00:34
자바 가상 머신(JVM)이란? JVM은 Java Virtual Machine의 약자로 자바 가상 머신으로 번역해서 부른다. JVM은 우리가 작성한 소스 코드를 바꾼 자바 바이트 코드를 컴퓨터에서 실행될 수 있게 도와준다. JVM을 통해 어느 OS에서든 자바 바이트 코드를 정상적으로 실행할 수 있다. JVM의 역할 JVM의 역할은 크게 4가지로 나뉜다. 1. Runtime Data Area JVM의 메모리 영역을 뜻하는 말로 JVM은 OS로부터 메모리를 할당 받아 사용한다. 우리가 작성한 코드를 실행할 때 그에 맞는 메모리를 할당하고 관리하는 역할을 한다. 2. Class Loader 소스 코드를 바꾼 자바 바이트 코드를 메모리에 할당할 수 있도록 도와주는 역할을 한다. 3. Execution Engine..
-
자바 개발 3요소 JDK / JRE / JVM백엔드/자바 2020. 7. 26. 05:20
자바 개발에 있어서 3요소 JDK, JRE, JVM은 매우 중요하다. 이 3가지의 대략적인 구조를 알아야 효율적인 프로그램을 짤 수 있다. JVM(Java Virtual Machine) - Java Virtual Machine의 약자로 자바 가상 머신이라 한다. - 자바 바이트 코드를 읽어서 검증하고 실행하는 능력을 가졌다. - JVM은 클래스 로더, 실행 엔진 등을 통해 소스 코드를 최종적으로 기계어로 바꾼다. - JVM 자체는 OS에 종속적이라 OS마다 차이가 있다. - 하지만 이미 컴파일 된 바이트 코드들은 어떤 JVM을 써도 실행이 가능하다. JRE(Java Runtime Enviroment) - Java Runtime Enviroment의 약자로 자바 실행 환경이라 한다. - JRE는 JVM이 ..
-
자바(java) 프로그램의 구동백엔드/자바 2020. 7. 26. 05:05
자바 프로그램의 구동 자바 프로그램을 구동하는 방법은 세부적으로 설명하면 복잡하지만 간단히 설명하면 다음과 같다 1. 소스 코드 작성 - 우리가 에디터를 통해서 코드를 작성하는 과정이다 - 그리고 이 과정을 통해 자바 확장자 ( .java )를 가진 파일이 생성된다. 2. 컴파일 - 자바 컴파일러(javac)가 우리가 작성한 소스코드를 컴퓨터가 이해하기 쉽게 바꾸는 과정을 말한다. - 보통이 과정에서 소스코드는 어셈블리어로 되지만 자바에선 이를 자바 바이트 코드라는 것으로 바꾼다. - 자바 바이트 코드(Java Byte Code)는 자바 가상머신(JVM)이 이해할 수 있게 만들어진 언어를 말한다. - 그리고 이 과정을 통해 자바 확장자를 가진 파일은 클래스 확장자 ( .class )를 가진 파일로 변환된..
-
자바(java)의 정의와 특징백엔드/자바 2020. 7. 26. 04:06
1. 자바(java)란? 대표적인 객체 지향 언어의 하나로서 썬마이크로시스템즈에서 처음 만들어졌다. 하지만 세월을 거쳐 현재는 오라클에 의해 인수되고 관리되고 있다. "Write once, Run anywhere"라는 모토로 만들어졌는다. 이것은 한번만 쓰면 어디서든 실행이란 뜻으로 이는 JVM을 통해 이뤄지고 있다. 2. 자바(java)의 특징 JVM이라는 자바 가상 머신을 사용한다. JVM덕에 자바는 OS에 종속되지 않고 여러 종류의 OS에서 실행이 가능하다. 하지만 이러한 JVM은 장점도 있지만, 대신 C언어에 비해서 속도면에서 손해를 본다는 단점도 있다.
-
참조 자료형 - 배열(array)백엔드/자바 2020. 7. 26. 03:10
1. 배열(array)이란? 동일한 자료형으로 선언된 데이터 공간을 메모리 상에 연속적으로 나열한 것. 즉 동일한 자료형끼리 모아준 것을 말한다. 2. 배열의 구성 배열의 선언은 '자료형 + [ ] + 배열 이름' / '자료형 + 배열 이름 + [ ]' 두 가지 방식이 있다. 두 가지 방식 모두 사용 상에는 차이가 없다. String[] weeks = new String[7]; weeks[0] = "월"; weeks[1] = "화"; weeks[2] = "수"; weeks[3] = "목"; weeks[4] = "금"; weeks[5] = "토"; weeks[6] = "일"; int numbers[] = new int[5]; numbers[0] =1; numbers[1] =2; numbers[2] =3; ..