일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- til
- SW
- 삼성청년SW아카데미
- 객체지향
- 알고리즘
- 데이터베이스 모델링
- 상속
- 기초프로그래밍
- CS 기초
- edwith
- 이진법
- 면접을 위한 CS 전공지식 노트
- SSAFY 9기
- 모두를 위한 컴퓨터 과학
- Compute Science
- 모두를 위한 컴퓨터 과학(CS50)
- Java Programming
- CS기초지식
- 예외처리
- Computer Science
- WebProgramming
- ssafy
- CS 기초지식
- 관계형 데이터베이스
- 부스트코스
- exception
- java
- ERD
- CS50
- w3schools
- Today
- Total
Joslynn의 하루
개발공부 4일차 생활코딩 - 문자열, 변수의 효용, 주석과 세미콜론, 데이터 타입, 형 변환 본문
문자열
- 문자열을 변수에 담을 때는 변수의 이름 앞에 String을 붙여준다.
- 여러개의 변수(a,b)를 동시에 선언 할 수도 있다.
변수의 효용
- 중복의 제거
1) 가독성이 오름, 2) 유지보수 용이함
주석
-주석: 로직에 대한 설명이나 코드를 비활성화 할 때, 코드의 사용방법을 문서화 할 때
- 주석은 프로그래밍적으로 해석되지 않음
1. 한줄 주석: //
2. 여러 줄 주석: /*~*/
3. JavaDoc 주석
- /**로 시작하는 주석은 JavaDoc 주석이라고 해서 자바의 문서를 만들 때 사용
세미콜론
- 세미콜론: 문장이 끝났음을 의미
- 자바에서는 문장끝에 세미콜론을 사용하지 않으면, 컴파일 에러 발생
- 세미콜론을 이용하면, 여러 개의 문장을 한 줄에 작성 가능
데이터 타입
1. 데이터의 크기
- 가장 작은 단위: Bit (0과 1로 이루어짐)
- 8개의 bit가 모이면, 1 byte가 됨, 이후 단위부터는 1024배씩 증가
2. 데이터 타입 비교
정수형
데이터 타입 | 메모리의 크기 | 표현 가능 범위 |
byte | 1 byte | -128 ~ 127 |
short | 2 byte | -32,768 ~ 32,767 |
int | 4 byte | -2,147,483,648~2,147,483,647 |
long | 8 byte | -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 |
- 보통 Int를 가장 많이 사용: int 형을 처리 할 때 CPU의 처리속도가 빠르고, int는 충분히 큰 수를 표현할 수 있는 데이터 타입이기 때문
- 각각의 데이터 타입마다 표현 가능한 범위가 다름
- 데이터 타입마다 소모하는 메모리의 크기가 다름 → 작은 데이터 타입 사용 시 메모리를 절약 가능
- 어떤 숫자를 저장하느냐에 따라서 사용하는 메모리의 크기가 달라지는 것이 아니고, 어떤 데이터 타입으로 변수를 선언했느냐에 따라서 사용하는 메모리의 크기가 달라짐
Ex) 아래의 변수 a와 변수 b는 똑같은 수를 저장하고 있지만, 변수 b가 2배의 메모리를 사용 → 데이터 타입이 다르기 때문
실수형
- float와 double이 있음
- float를 사용해야 하는 이유가 분명하지 않은 경우 보통 double을 사용함
- 돈과 같이 정확한 계산이 필요한 경우는 실수형을 사용하면 안 됨
문자
- char: 모든 유니코드 문자 (2 byte)
- 문자열은 문자의 집합: 6글자를 담고 있는 String 타입의 변수는 12바이트의 공간을 차지
상수의 데이터 타입
- 변수: 변하는 값 VS 상수: 변하지 않는 값
- 상수: 고유한 값을 가지고 있으며, 고유한 값을 변경할 수 없는 데이터 타입
Ex) 실수형 데이터 타입
- float: 실수형 데이터 타입, 2.2: 실수 // 그러나 에러 발생
- 상수 뒤에 F를 붙여 이 변수가 float 데이터 타입이라는 것을 명시
Ex) 정수형 데이터 타입
- 아래 코드는 int의 최댓값인 2147483647 보다 1 많기 때문에 오류 발생
- 변수를 long 타입으로 변경해도 오류 발생 → 상수의 데이터 타입이 정수의 기본 데이터 타입인 int 타입이기 때문
- 아래와 같이 상수를 long 타입으로 변경 → 상수 뒤에 L를 붙임
* Exception: byte와 short
- 아래 코드는 상수 뒤에 byte와 short 타입형을 명시하고 있지 않아도 오류가 발생하지 않음
- int보다 작은 데이터 타입인 byte와 short는 편의를 위해 int형 데이터 타입을 허용하기 때문
형변환
- 형 변환(Type Conversion): 데이터의 타입을 변경하는 것 / ex) int 데이터 타입을 double이나 float으로 변경 등
1. 200이라는 정수
2. 200.0이라는 실수
- 위의 정수 200과 실수 200.0은 전혀 다른 bit 값을 가짐
- 이렇게 형식이 다른 데이터들을 더하려면 한 쪽의 데이터 타입을 다른 쪽의 데이터 타입으로 전환해야 함
- 데이터 타입을 전환하는 것을 형 변환이라고 함
- 자바에서는 이러한 형 변환을 자동으로 처리 → 이러한 전환 작업을 자동(암시적) 형 변환이라 부름
자동 형 변환
예제 1)
- 아래 코드는 double 타입의 변수 a에 float 타입의 값을 대입 → 에러 발생하지 않음
- 이유: 3.0F의 값은 자동으로 double 타입으로 형 변환이 일어나기 때문
- 자동 형 변환이 가능한 이유: double 타입이 float 타입보다 더 많은 수를 표현할 수 있기 때문
- 즉, 타입을 변경해도 정보의 손실이 일어나지 않는 경우는 자동 형 변환이 일어남.
예제 2)
- 아래 코드는 오류가 발생
- 이유: 상수 3.0은 double 형, 이 값을 표현 범위가 double보다 좁은 float에 넣으려고 했기 때문
"자동 형 변환의 원칙은 표현범위가 좁은 데이터 타입에서 넓은 데이터 타입으로의 변환만 허용된다는 것"
- 실수가 정수보다 더 큰 범위를 표현할 수 있음, long은 float가 될 수 있으나, float는 long이 되지 못 함
- char도 내부적으로는 결국 숫자로 이루어짐(문자의 유니코드 값으로 변환), char 데이터 값은 int로 변환 가능
예제3)
- 아래 연산은 2번의 형 변환 발생
- a와 b를 더하기 위해 정수 a와 실수 b 중 하나가 형 변환 → int와 float가 붙으면 int가 float가 되기 때문에 변수 a에 담긴 값3은 float 타입으로 변환[정수 → 실수] → 연산 결과는 float 타입
- 연산 결과가 담길 변수 C의 타입은 double → float가 double 타입의 변수에 담기기 위해서 double 타입으로 형 변환
명시적 형 변환
- 명시적: 자동 형 변환이 적용되지 않는 경우에는 수동으로 형 변환을 해야 함
예제 1)
- 아래 예제는 모든 행의 코드에서 오류 발생 → 자동 형 변환이 이루어지지 않기 때문
예제 2)
- 위의 예제를 아래와 같이 수정하면 오류가 발생하지 않음
- 아래와 같이 괄호 안에 데이터 타입을 지정해서 값 앞에 위치시키는 것을 명시적인 형 변환이라고 부름
예제 3)
- 출력 값: 201
- 변수C의 데이터 타입 int는 정수이므로, 0.9999999 값을 소실하게 됨