JAVA 웹개발 과정 국비 2일차 정리
2일차
※ 배우는 과정이므로 정확하지 않을 수 있습니다.
잘못된 점은 알려주시면 수정하도록 하겠습니다!
1. 출력과 코딩 스타일
1) 출력
System.out.println();
: 줄바꿈 + 출력System.out.print();
: 출력- sysout + (Ctrl+Space) : eclipse에서의 Code Assistant ->
System.out.println()
을 의미한다. - ; (세미콜론) : 문법 구분자
- ” “ (큰따옴표) : 문자열 출력
- ’ ‘ (작은따옴표) : 문자 출력
- 따옴표 없음 : 숫자 출력
- // : 주석 (Comment) -> 컴파일 타이밍에 모두 떨어져나가므로 상관 X
2) 코딩 스타일
- BSD Style : 중괄호가 아래로 내려가는 코딩 스타일
- GNU Style : 중괄호가 아래로 + 한칸 안으로 들어가는 코딩 스타일
- K&R Style : 중괄호가 아래로 내려가지 않고 옆으로 위치하는 코딩 스타일
이는 모두 Convention(관습)이므로 어떤 것을 써도 괜찮다!
2. CPU, RAM, HDD(SDD)
- CPU : 중앙처리장치(Central Processing Unit)
- RAM : 주기억장치
- 전기의 힘을 이용하여 기억한다.
- 휘발성 기억장치 (전기를 끄면 날라감)
- HDD (SDD) : 보조기억장치
- 전기를 쓰지 않음, 자석을 이용한다.
- RAM과 HDD(SDD)를 나누는 기준은?
- CPU 때문! CPU는 RAM에 기억된 것만 처리가 가능하다(직접적으로)
HDD의 내용을 처리하려면 RAM에 복사해서 처리해야한다.
HDD —> RAM 복사하는 과정을 Loading 이라고 한다.
- CPU 때문! CPU는 RAM에 기억된 것만 처리가 가능하다(직접적으로)
- 문제 해결 방식 : 입력 -> 기억 -> 처리
3. 변수
데이터 또는 자료를 저장하기 위한 메모리 공간
위에서 문제 해결 방식과 CPU, RAM, HDD를 공부한 이유는 결국은 변수가 왜 필요한지를 이해하는 과정에서 필요하기 때문이다.
우리가 37 X 42 를 계산할 때, 우리는 37이란 수와 42라는 수를 눈으로 보고 입력을 받아 기억하고 곱해서 처리한다.
이와 같이 컴퓨터에서도 입력 -> 기억 -> 처리 단계를 거쳐야 한다.
예를 들어 컴퓨터에 37 X 42 를 곱한 결과를 화면에 출력시키게 한다면,
1. 컴퓨터 변수를 하나 만들어
2. 거기에 37을 저장해
3. 컴퓨터 변수를 하나 더 만들어
4. 거기에 42를 저장해
5. 컴퓨터 두 변수에 저장된 값을 곱해
6. 그 곱해서 나온 결과를 화면에 출력해줘
위와 같은 과정을 모두 거쳐야 한다.
따라서 컴퓨터에 변수를 선언(변수를 만드는 것)하는 것은 굉장히 중요한 일이다.
1) 변수선언
DataType 변수명 ;
2) 자료형(DataType)
- 기본형 변수 (Primitive Type)
- 논리형 : boolean(1)
- 정수형 : byte(1) / short(2) / char(2) / int(4) / long(8)
- 실수형 : float(4) / double(8)
- 참조형 변수 (Reference Type)
- 기본형을 제외한 나머지 자료형
- 객체의 주소를 저장한다.
- String 등 참조형 변수는 모두 4byte
3) 참조형 변수, 주소를 저장한다는 의미는?
위의 의미를 이해하려면, 우선 O/S가 하는 일이 무엇인지를 이해해야 한다.
O/S가 하는 일 중 가장 핵심은 Resource Manager, 즉, 자원관리이다.
그 중 RAM은 Virtual Memory System을 이용하여 영역을 구분하는데, 자세한 것은 뒤에서 배우니 그 중 Stack과 Heap만 알아보자.
기본자료형은 값이 고정되어있기 때문에 Stack 메모리에 쌓인다. 그러나 참조자료형은 값이 가변적이기 때문에 Heap 메모리에 쌓이게 된다.(Stack도 이용하긴 함)
만약 아래와 같은 코드가 있다고 한다면,
public class Exam_01 {
public static void main(String[] args){
int a = 1047;
String i = "ABC";
}
}
변수 a는 Stack 메모리에 1047의 값을 가지고 저장된다.
변수 i도 동일하게 Stack 메모리에 저장되지만 ABC라는 값은 Heap 메모리에 저장된다.
그리고 이 ABC의 주소값이 1000이라고 한다면, Stack에는 변수 i의 주소값인 1000이 저장된다.
따라서, 변수 i의 값은 결국 주소값인 1000이 저장되는 것이다.
4. Data type Promotion & Data type Casting
- Data type Promotion (자동형변환)
- 좁은 범위의 자료형이 넓은 범위의 자료형에 대입 될 때
- 실수형 > 정수형
- Data type Casting (강제형변환)
- 넓은 범위의 자료형이 좁은 범위의 자료형에 대입 될 때
- Cast 연산자를 이용한다.
- boolean 과 String 은 형변환이 되지 않는다
좁은 범위와 넓은 범위가 어떤 건지 잘 기억하고 있다면 에러를 줄일 수 있다.
실습 문제를 풀 때, 애매했던 문제들이 있었다.
long l = 40L;
-> L을 빼도 에러가 나지 않는다(int < long)
float f = 3.14f;
-> f를 빼면 에러가 난다(double > float)
아직 맞고 틀린 것을 구분하는 데는 오래 걸리지만, 익숙해질 때까지 자주 봐야겠다.
자바의 정석 실습문제도 풀어봐야겠다.
댓글남기기