이사를 하느냐고 7일부터 약 일주일 동안 배운 내용을 정리하지 못했다.
핑계다.
아니 솔직히 진짜 바쁘긴 했다.
그리하여 2월 7일부터 2월 14일까지의 내용을 2월 15일이 되어서야 정리해 올린다.
다행히도 미리 예습을 하고 갔던 프로그래밍 기본 문법에 대한 내용이었기 때문에
5일치를 뒤늦게 정리하더라도 그리 큰 문제가 되지 않을 것 같다.
오늘부터 배우기 시작한 객체지향에 대한 내용은..
예습을 했지만서도 약간 어려운 감이 있다.
이 부분만큼은 그날 그날 바로 정리하도록 해야겠다.
변수
- 메모리(RAM)에 값을 기록하기 위한 공간
- 변수의 장점
1) 가독성이 좋아진다.
2) 재사용성 증가로 인한 코드량이 감소한다.
3) 유지보수가 용이하다.
데이터 저장 단위
- 비트(bit):
컴퓨터가 나타내는 데이터의 최소 저장 단위로서 2진수 값 하나를 저장할 수 있는 메모리 공간- 바이트(byte):
데이터 처리 또는 문자의 최소 단위로서 8개의 비트가 모여 하나의 바이트 구성
변수의 초기화
- 선언 후 초기화
int age; age = 100;
- 선언과 동시에 초기화
int age = 100;
메모리 구조
- Static:
static 예약어로 선정된 필드, 메소드가 저장되는 정적인 공간
클래스 변수 등을 저장- Heap:
동적으로 할당하고 저장되는 공간
객체, 배열 등을 저장- Stack:
메소드를 호출하면 자동으로 생성, 메소드가 끝나면 자동으로 소멸
지역변수, 매개변수 등을 저장
기본 자료형
- 1) 논리형: boolean
2) 숫자형(정수): byte / short / int(정수 기본형) / long
3) 숫자형(실수): float / double(실수 기본형)
4) 문자형: char- 총 8개의 기본 자료형을 제공한다.
- 자료형 사이의 형변환은 크기가 아닌 범위를 기준으로 크고 작음을 판단한다.
- char 자료형은 엄밀히 말하면 정수를 저장하는 정수형이다.
다만 정수를 저장하고 있다가 화면 출력 시 문자표에 대응되는 문자가 출력되는 것(인코딩)
문자열(String)
- "기차", "출력하세요" 등과 같이 한 단어 이상의 단어나 문장
- 기본 자료형이 아니라 참조형임에 유의한다.
- 문자열 리터럴 표기법: " "(쌍따옴표)
String word ="기차"; String sentence = "출력하세요";
상수
- 수학에서는 변하지 않는 값
- 프로그래밍에서는 한번만 저장할 수 있는 메모리를 의미
- 예약어로 final을 사용한다.
final double PI = 3.141592;
- 변수와 마찬가지로 선언 후 초기화 / 선언과 동시에 초기화 방법으로 나눌 수 있다.
final int NUM; // 선언 후 초기화 NUM = 100;
final int NUM = 100; // 선언과 동시에 초기화
리터럴
- 직접 작성한 값 또는 변수에 대입되는 값
- 자료형별로 알맞은 리터럴 표기법이 별도로 존재한다.
1) int: 10, 50, 0
2) long: 2147583648L, 0L, -10L
3) double: 3.14, -123.482, 0.0
4) float: 3.14F, -123.482F, 0.0F
5) boolean: True, False만 가능
6) char: '가', 'Z', 0~65535 사이의 정수- 리터럴은 =를 통해 좌항에 생성된 변수에 대입된다.
short s = 50000; int i = 100; char c = 'A'; String str = "ABC"; // 각 우항이 모두 리터럴
형변환
- 데이터의 자료형을 바꾸는 것(boolean 제외)
- 컴퓨터의 값 처리 원칙 상 같은 자료형 사이의 대입과 연산만이 가능
이런 경우를 위해 자료형 사이의 형변환이 필요함
자동 형변환(묵시적 형변환)
- 특정한 자료형으로 컴파일러가 자동 형변환
- 컴파일러가 자동으로 값의 범위가 작은 자료형을 값의 범위가 큰 자료형으로 변환
int a = 12; double d = 3.3; double result = a+d; // a가 d로 자동 형변환 되어 result에 15.3이 출력된다.
강제 형변환(명시적 형변환)
- 특정한 자료형으로 강제 형변환
- 값의 범위가 큰 자료형을 값의 범위가 작은 자료형으로 변환할 때 주로 사용한다.
- 강제 형변환 시 데이터 손실이 발생할 수 있음
이로 인해 데이터 오버플로우가 발생하기도 한다.double temp; int name (int)temp;