반응형
기계어의 특징
- 0과 1의 2진수 형태로 표현됨
- 수행시간이 빠름
- CPU마다 기계어가 다름
어셈블리어
- 니모닉(Mnemonic)과 기계어의 일대일 매칭 코드표
- CPU마다 기계어가 다르기때문에 어셈블리어도 기계어에 따라 다름
- 어셈블리어를 기계어로 번역해 주는 소프트웨어를 ‘어셈블러’ 라고 함
C언어
- 수학적 기호 사용
- 기종이 몇개든 단 하나의 소스파일을 가짐
- 컴파일러로 소스를 번역하여 목적파일 생성함
컴포넌트
재사용 가능한 독립된 모듈
const == final
→ 따라서 자바에서는 const 키워드를 사용하지 않음
함수와 메소드의 차이
함수와 메소드는 크게 다른점이 없지만 굳이 차이점을 찾는다면, 함수는 클래스나 객체와 아무 관계없이 존재할 수 있지만 메소드는 반드시 클래스 정의 안에 존재해야 한다는 것이다.
변수의 종류에 따른 저장 영역
- 클래스 멤버 변수(static 멤버변수) → static 영역 (메소드영역)
- 지역변수(중괄호에 의해 만들어진 영역 안의 변수) → 스택영역
- 객체 멤버 변수(인스턴스 멤버변수) → 힙영역
call by value
메소드를 호출하면서 인자로 전달되는 것은 변수 자체가 아니라 변수가 저장한 값만을 복제해서 전달하는 방식
예시)
- 메소드를 호출하면 스택영역에 해당 메소드의 스택 프레임이 생성됨 → 그 안에 해당 메소드의 지역변수가 생성됨
- square() 메소드의 인자값으로 보낸 k의 값만 전달이 됨 → 값만 전달이 되기 때문에 square() 메소드 안에서 k변수의 값을 25로 지정하더라도 main() 메소드의 k변수의 값은 5로 그대로임
- 서로의 스택 프레임(main(), square()) 에 접근할 수 없음
public class Start4 {
public static void main(String[] args) {
int k=5;
int m;
m = square(k);
}
private static int square(int k) {
int result;
k=25;
result = k;
return result;
}
}
멀티 프로세스
- 다수의 데이터 저장 영역을 갖는것
- 멀티 프로세스는 각 프로세스마다 각자의 T메모리가 있고, 각자 고유의 공간이므로 서로 참조 할 수 없음
- 메모리리 사용량이 크다
멀티스레드
- 스택영역을 스레드 개수만큼 분할해서 사용하는 것
- 한개의 영역을 나눠서 사용하기 때문에 각자의 영역을 참조할 수 있음
- 멀티 프로세스 대비 메모리를 적게 사용할 수 있다
반응형
'Back-End > Spring Boot' 카테고리의 다른 글
예습) 스프링 입문을 위한 자바 객체 지향의 원리와 이해 (0) | 2023.04.16 |
---|---|
예습) 스프링 입문을 위한 자바 객체 지향의 원리와 이해 (0) | 2023.04.15 |
예습) 스프링 입문을 위한 자바 객체 지향의 원리와 이해 (0) | 2023.04.13 |
댓글