본문 바로가기
JAVA

[JAVA] - 자바 기본 용어 2

by nam_ji 2023. 9. 27.

자바 기본 용어 정리

기본 용어

용어
컴파일 컴퓨터가 이해할 수 있도록 0과 1로 이루어진 기계어로 변환하는 과정
객체 지향 프로그래밍
(OPP : 
Object
Oriented
Programming)
프로그램을 개발하는 기법으로, 부품에 해당하는 객체들을 먼저 만들고 이것들을 하나씩 조립 및 연결해서 전체 프로그램을 완성하는 기법
자바 가상 기계
(JVM : 
Java
Vitrtual
Machine)
자바 프로그램은 완전한 기계어가 아닌 중간 단계의 바이트 코드이기 때문에, 이것을 해석하고 실행할 수 있게 해주는 가상의 운영체제

JVM의 메모리 영역
- 메소드 영역 : 클래스(~class)들을 클래스 로더로 읽어 클래서별로 런타임 상수 풀, 필드 데이터, 메소드 데이터, 메소드 코드, 생성자 코드 등을 분류해서 저장
- 힙 영역 : 객체와 배열이 생성되는 영역. JVM 스택 영역에서 생성된 변수나 다른 객체의 필드에서 이 곳에 있는 객체와 배열을 참조
- JVM 스택 영역 : 스레드마다 하나씩 존재. 스레드가 시작할 때마다 JVM 스택 영역이 할당
자바 개발 도구
(JDK :
Java
Development
Kit)
프로그램에 필요한 자바 가상 기계(JVM), 라이브러리 API, 컴파일러 등의 개발 도구가 포함된 소프트웨어 패키지
자바 실행 환경
(JRE :
Java
Runtime
Environment)
자바 프로그램 실행에 필요한 자바 가상 기계(JVM), 라이브러리 API가 포함된 소프트웨어 패키지

실행문 변수 선언, 값 저장, 메소드 호출에 해당하는 코드
클래스(Class) 객체를 생성하기 위한 필드와 메소드가 정의된 것. 객체의 설계도에 해당한다.
메소드(Method) 어떤 일을 처리하는 실행문들을 모아 놓은 블록. 메소드를 코드 내에서 사용하는 것을 메소드 호출이라 한다.
주석(comment) 프로그램 실행과는 상관없이 코드에 설명을 붙인 것

// : // 부터 라인 끝까지 주석으로 처리
/* ~ */ : /* 와 */ 사이에 있는 모든 범위를 주석으로 처리
통합 개발 환경
(IDE : 
Integrated
Development
Environment)
프로젝트 생성, 자동 코드 완성, 디버깅 기능을 제공하는 환경
(예: Eclipse(자바), Visual Studio (C/C++))
디버깅(debugging) 모의 실행을 해서 코드의 오류를 찾는 행위
변수(variable) 하나의 값을 저장할 수 있는 메모리의 공간. 프로그램에 의해서 수시로 값이 변동될 수 있다. 하나의 변수에는 오로지 하나의 값만 저장할 수 있고, 자바에서는 선언된 변수에 한 가지 종류의 값만 저장할 수 있다.

- 로컬 변수(지역 변수) : 메소드 블록 내에서 선언된 변수. 로컬 변수는 메소드 실행이 끝나면 메모리에서 자동으로 없어짐
- 변수 선언 : 어떤 식별자를 갖고, 어떤 데이터를 가지고 시작하는 변수라는 것을 알리는 것
- 할당 : 변수에 값을 넣거나 저장하는 것을 '할당한다'고 함 // 메모리에 변수의 밗이 들어갈 공간을 할당해야 하기 때문
- 참조 : 변수에 접근하는 것을 '참조한다'라고 함
예약어(reserved word) 이미 해당 프로그래밍 언어에서 사용하기 위해 의미가 정해져 있는 것

* 예약어를 식별자(변수명 / 메소드명 / 함수명)로 사용하면 안되는 걸까?
- 프로그래밍 언어 내에서 이미 문법적인 용도로 사용되고 있기 때문에 사용하면 안된다.
자바에서 예약어를 식별자로 사용할 경우 컴파일러에서 에러 처리하여 실행되지 않는다.
초기값(initial value) 변수를 선언하고 처음 저장하는 값
초기화(initialize) 변수에 초기값을 주는 행위
리터럴(literal) 소스코드 내에서 직접 입력된 값
사실 리터럴은 상수와 같은 의미지만, 프로그램에서는 상수를 "값을 한 번 저장하면 변경할 수 없는 변수"로 정의하기 때문에 이와 구분하기 위해  "리터럴"이라는 용어를 사용한다.
이스케이프 문자
(escape character)
역슬래시(\) 기호가 붙은 특수한 문자 리터럴

유니코드(unicode) 세계 각국의 문자들을 코드값으로 매핑한 국제 표준 규약이다. 유니코드는 하나의 문자에 대해 하나의 코드값을 부여하기 때문에 영문 'A' 및 한글 '가'도 하나의 코드 값을 가진다. 자바는 모든 문자를 유니코드로 처리한다.

아스키(ASCII) 코드와 유니코드는 어떤 차이가 있을까?
유니코드는 영문자 외에 전 세계의 문자를 표현할 수 있도록 설계된 반면
아스키(ASCII : American Standard Code for Infomation Interchange, 미국 정보 교환 표준 부호)코드는 7비트로 표현되는 영문자 기반 인코딩이다. 유니코드의 앞부분은 아스키 문자로 할당되어 있다.
자료형(data type) 자료의 형태. 자료형에 따라 컴퓨터가 어떻게 처리하는지 달라진다. 자바에서는 기본 타입과 참조 타입으로 구분됨
기본 타입
(primitive type)
원시 타입이라고도 한다. 정수, 실수, 문자, 논리 리터럴을 저장하는 자료형
참조 타입
(reference type)
객체의 번지를 참조하는 타입. 배열, 열거, 클래스, 인터페이스 타입이 있다.

* 값에 의한 호출(call by value)과 참조에 의한 호출(call by refernece)
값에 의한 호출을 할 땐 메소드가 전달인자를 복사하여 사용하고, 메소드 실행이 종료되면 반환하는 방식이기 때문에 전달인자를 직접 수정하는 것이 의미가 없다. 참조란 대상의 주소값을 통해 접근하는 것이고, 참조에 의한 호출은 메소드가 전달인자로 주소값을 넘겨받아 해당 위치에 있는 값에 접근하여 다른 곳에서 쓰일 수 있도록 수정할 수 있다. 자바에서는 무조건 call by value인 것이 아닌가 싶지만, 전달인자로 받은 데이터의 타입에 따라 그  값value이 주소값이 되기도 하고, 객체가 가리키는 값이 되기도 한다.
연산자(operator) 연산에 사용되는 표시나 기호
 피연산자(operated) 연산식에서 연산되는 데이터
부동 소수점
(floating point)
소수점이 있는 실수 데이터를 저장하는 방식. '부동'은 '떠다니다'의 의미, 소수점이 떠다닌다는 의미에서 부동 소수점이다. 이 방식에서는 최상위 비트(MSB: Most Significant Bit)를 부호로 결정한다. 최상위 비트가 0이면 양수, 1이면 음수를 뜻한다.
제어문
(control statement)
실행 흐름을 개발자가 원하는 방향으로 바꿀 수 있도록 해주는 것

- 조건문 : if문, switch문
- 반복문 : for문, while문, do-while문
조건문
(conditional statement)
특정 조건을 만족할 때 코드를 실행하는 문법
https://hongong.hanbit.co.kr/%EC%9E%90%EB%B0%94java-%EC%9A%A9%EC%96%B4-%EC%A0%95%EB%A6%AC-1%ED%83%84-%EB%B3%80%EC%88%98%EC%99%80-%ED%83%80%EC%9E%85-%EC%97%B0%EC%82%B0%EC%9E%90-%EC%A1%B0%EA%B1%B4%EB%AC%B8%EA%B3%BC-%EB%B0%98-2/