Notice
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 코딩수업
- 코딩부트캠프
- 2024우먼테크위크
- 서울시여성가족재단
- 콜백함수
- Cos Pro
- transaction
- 드론
- 초등학생 코딩수업
- 초등학생 겨울방학 놀이
- js
- 스마트리움
- 자율주행자동차
- 도서관 수업
- jsp
- 초등학교 코딩수업
- 뚜루뚜루
- Spring Security
- spring
- 2024겨울방학 코딩부트캠프
- 핑퐁로봇
- CSS
- html
- spring boot
- 자바
- 2023 ICT R&D 주간
- 은평구립도서관
- Java
- 이것이 자바다
- 알티노
Archives
- Today
- Total
블로그
[JAVA] 타입 본문
자바에는 크게 두가지 타입이 있다.
// *기호가 붙은 것은 자주 쓰는 타입
1.원시타입(primitive type, 기본타입)
1.1 정수
byte,short,*int,*long
1.2 실수
float,*double
1.3 논리
*boolean
1.4 문자
*char
2.참조타입(reference type)
원시타입 빼고 다
정수
- 정수형 : byte(1), short(2), int(4), long(8)
- 실수형 : float(4), double(8)
- (괄호)안은 각 정수형을 표현하기 위한 메모리 크기도 단위는 바이트이다.
- 음수를 표현하기 위하여 메모리 사용 크기를 반으로 나누어 저장한다.
- 앞자리가 1인경우 음수
실수
- +m*10^n (부동 소수점 방식으로 메모리에 저장)
- +,-:부호 m:가수 n:지수
- float : 부호(1bit) + 지수(8bit) + 가수(23bit) = 32bit = 4byte
- double : 부호(1bit) + 지수(11bit) + 가수(52bit) = 64bit = 8byte
- 근사값으로 저장한다.
- float 는 리터럴 뒤에 f나 F를 붙여 컴파일러가 float 타입임을 알 수 있도록 해야한다.
논리(Boolean)
- 값 : true false
- 크기 : 1byte
문자
- 작은따옴표(' ')안에 적는다.
- 하나의 문자만 쓸 수 있다.
- 음수값 없음. 모두 양수. 그러므로 2^8=65535가지 수가 나온다
- 유니코드의 16진수는 0x로 시작.
- 다음은 16진수가 넘어가는 유니코드 작성법이다
int p = 0x1f3a4;
char[] emoji2 = Character.toChars(p);
String emojit = new String(emoji2);
System.out.println("emojit = " + emojit);
참고) 이모티콘을 찾고 싶을 때는 윈도우키 + v 를 누르면 된다😜
귀엽고 예쁜 이모지들이 많이 있다💕
문자열 String
- 큰따옴표(" ")안에 적는다.
- \n 줄바꿈. 텍스트블록 문법인 """ (큰따옴표 3개)를 쓰면 이스케이프 필요없이 타자를 친대로 저장된다.
- 이스케이프 : 문자열 내부에 역슬래쉬(\)가 붙은 문자
- java21부터 가능한 String templete이 있다.
- \{name} \{country} 등으로 문자열안에 사용 가능하다.
- scanner 기능
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("이름을 입력하세요.");
String name = scanner.nextLine();
String desc = STR."저는 \{name}입니다.";
System.out.println("소개 = " + desc);
scanner.close();}
자동변환
- 크기가 작은 타입에서 큰 타입으로 변환 가능. 반대는 안됨
- 정수형 : byte(1), short(2), int(4), long(8)
- 실수형 : float(4), double(8)
- byte < short,char < int < long < float < double 순으로 허용범위가 크다
- char타입을 int 타입으로 변환하는 것은 흔하다고 한다.
자동 타입 변환 하는 법
- 바꾸고 싶은 변수 앞에 변환하고자 하는 타입을 적는다.
char charValue = 'A';
int intValue = charValue;
//A의 유니코드값인 65가 int타입인 변수, intValue에 저장된다
참고1)
- 그러나 short와 char는 똑같은 2바이트(2^16가지)여도 변환 하지 못함.
- 이유는 short는 음수와 양수가 같이 있고 (-32768~32767),
- char 는 양수만 있음(0~65535)
참고2)
- long은 8바이트, float는 4바이트지만 long에서 float로 변환하지 못함.
- long보다 float가 훨씬 더 큰 수이기 때문.
- long : 2^64 대략 1800경. -900경~+900경의 수를 가짐 9.22372*10^18
- float : 1.4*10^-45~3.4*10^38 음수값도 가짐.
var : 변수의 타입을 할당되는 값으로부터 추론한다.
따라서 변수의 선언과 할당을 동시에 해야한다. 가령 var value; value=2; 불가능
literal (리터럴)
- 프로그래머가 직접 입력한 값
- 정수형 literal : int, 실수형 literal : double 이다.
변수는 선언된 블럭{} 안에서만 사용 가능하다.
if (true) {
int var1 = 2;}
{System.out.print("var1 = " + var1);}
위의 코드는 불가능하다. 변수 var1이 선언된 블록 밖에서 var1을 쓰려고 했기 때문이다.
'개발자 준비과정 > JAVA' 카테고리의 다른 글
[JAVA] 변수 선언과 할당, 그리고 스택(Stack)과 힙(Heap) (0) | 2024.02.29 |
---|---|
[JAVA] Arrays (4) | 2024.02.28 |
[JAVA] 문자열 <-> 기본타입간 변환, Scanner (2) | 2024.02.27 |
[JAVA] 강제 타입 변환, 연산식에서 자동 타입 변환 (0) | 2024.02.26 |
JAVA 개발 환경 만들기, Github 사용하기 (0) | 2024.02.19 |