일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- css #웹 #생활코딩
- 투포인터
- 자바 #java
- 프로그래머스 #파이썬 #알고리즘 #코딩테스트
- react #리액트 #동빈나
- java #자바
- java #자바 #동빈나
- java #자바 #나동빈
- 백준 #파이썬 #알고리즘 #코딩테스트
- 다이나믹프로그래밍
- PYTHON
- 백준 #알고리즘 #파이썬 #코딩테스트
- 파이썬
- 재귀
- BFS
- 코딩테스트
- 파이썬 #알고리즘 #코딩테스트 #프로그래머스
- 파이썬 #백준 #알고리즘 #코딩테스트
- DFS
- dp
- 알고리즘
- 다익스트라
- 백트랙킹
- Dijkstra
- react #리액트 #동빈나 #나동빈 #유튜브강의
- java #자바 #생활코딩
- css #생활코딩 #웹
- 프로그래머스 #파이썬 #코딩테스트 #알고리즘
- 프로그래머스
- 백준
Archives
- Today
- Total
커리까지
자료형(data type) 본문
728x90
SMALL
정수
- 기본 자료형
- 크기가 정해져있고 new로 사용하지 않음
- new로 선언한 자료형은 크기가 정해지지 않음
- n-1로 표현가능
- 바이트는 음악, 동영상, 실행 파일을 처리할 때
- 쇼트는 자바에서는 많이 쓰지 않음
- c/c++ 언어와 호환할 때
- int
- 4바이트 단위의 자료형
- 모든 숫자는 int로 저장됨
- num변수를 선언하면 메모리는 num이라는 공간을 만들고 이제 부터 num으로 선언된거는 여기로 들어가라
- 10을 선언하면 num안에 10이 들어감
- 10이 다른 곳에서 이미 잡혀있는데 그게 num으로 들어감
- 그래서 100을 쓰던 100000을 쓰던 4바이트로 잡힌다.
- long
- 8바이트의 자료형
- int가 표현할 것의 범위를 넘어가기 때문에 long로 선언
- 숫자 자체가 항상 4byte로 잡힘
- 123456789123456789로 하면 오류
- 123456789123456789L or 123456789123456789l
- 이런 식으로 long로 잡하라 하고 알려줌
- 대문자로 쓰는게 더 좋음
byte bnum = -128;
- byte는 이렇게 앞에 자료형을 명시
- +128을 하면 오류 발생
- 표현 할 수 있는 값을 넘어섬
int num = 12346678;
long lnum = 123456789L;
- long는 저런 식으로 위에도 L을 표시해줘야 함
long lnum2 = 123456;
- 작은 수가 큰 공간에 들어가는 건 상관없음
실수
- 1.2나 3.14 등으로 표현 된다.
- 부동소수점 방식으로 표현한다.
- 1.0 x 10-1 = 가수 x 지수부
- 정규화
- .2를 표현한다면 0.4 x 2-1
- 를 1.m x 2-n로 표현하도록 바꾼다.
double dnum = 3.14;
float fnum = 3.14;
- float는 오류가 발생함
- 3.14는 어디가에 저장이 되어있음.
- 모든 실수는 기본적으로 double에 저장되어 있음(8바이트)
- float는 4바이트인데 3.14로 넣으려니 너무 크다.
float fnum = 3.14f;
- 이렇게 f를 넣어줌
- 식별자를 써준다.
- 지수부분이 아무리 작은 n승을 표현한다해도 0을 표현할 수는 없음
- 그래서 약간의 오류가 발생함
문자
- 어떤 특정한 숫자로 표현하자 라고 약속함
- 그 약속 한 것들을 문자 세트라고 함
- 아스키는 8bit로 되어있음
- 각 나라마다 맞는 문자세트가 나옴
- 그러다보니 호환이 안 되는 문제 발생
- 그래서 나온게 우니코드
- utf-8, utf-16
- 자바에서는 utf-16 인코딩 사용
- 모든 문자를 2바이트로 표시
'A' | "A" |
---|---|
문자(2byte) | 문자열 |
char ch1 = 'A';
System.out.println(ch1);
System.out.println((int)ch1);
>
A
65
- char라고 명시했기에 문자열이 나오고 int로 형변환을 해줘서 해당 문자에 맞는 숫자가 출력됨
char ch2 = 66;
System.out.println(ch2);
System.out.println((char) ch2);
>
B
B
- char이라고 명시했기에 숫자를 입력하면 숫자에 해당되는 문자를 출력함
int ch3 = 67;
System.out.println(ch3);
System.out.println((char)ch3);
>
67
C
- 처음에는 int라고 명시했기에 숫자가 출력되지만 문자로 형변환을 실행해서 아스키에 해당되는 문자를 출력함
char ch = -66
char ch = 25412
- 음수나 너무 큰값을 표현 불가
char ch = '한';
char ch5 = '\uD55C';
- 한을 유니코드로 표현하면 저렇게 됨
논리형
- 참, 거짓을 말하니 1바이트를 사용
자료형 없이 선언(자바 10 이상부터)
지역변수에서는 자료형 선언 없이 사용 가능
어떤 자료형인지 파악 가능한 경우, 추론 가능한 경우
지역변수
- 블럭안에서 사용하는 변수
- 함수의 매개변수로 쓰이는 것
- 만약에 문자로 컴파일하고 뒤에서 숫자로 다시 덮어쓰려면 안 됨
var str = "test";
str = "hello";
- 이렇게는 가능
var str = "test";
str = 3;
- 이거는 자료형이 다르기 때문에 자바에서는 불가능
728x90
LIST
'자바' 카테고리의 다른 글
자바의 연산자들-1 (0) | 2021.06.11 |
---|---|
상수와 리터럴, 변수의 형 변환 (0) | 2021.06.09 |
변수에 대해서 (0) | 2021.06.05 |
컴퓨터에서 자료 표현하기 (0) | 2021.06.04 |
public, static, void, private 용어 (0) | 2021.05.29 |
Comments