티스토리 뷰
반응형
✏️ 데이터 타입
- boolean : 논리 타입이며 1비트의 크기를 가짐
- char : 문자 타입이며 2바이트의 크기를 가짐
- byte : 정수 타입이며 1바이트의 크기(-128 ~ 127)를 가짐
- short : 정수 타입이며 2바이트의 크기(-32768 ~ 32767)를 가짐
- int : 정수 타입이며 4바이트의 크기(-2^31 ~ 2^31-1)를 가짐
- long : 정수 타입이며 8바이트의 크기(-2^63 ~ 2^63-1)를 가짐
- float : 실수 타입이며 4바이트의 크기(-3.4E38 ~ 3.4E38)를 가짐
- double : 실수 타입이며 8바이트의 크기(-1.7E308 ~ 1.7E308)를 가짐
✏️ 레퍼런스 타입
- 배열에 대한 레퍼런스
- 클래스에 대한 레퍼런스
- 인터페이스에 대한 레퍼런스
✏️ 문자열
자바의 문자열은 기본 타입에 속하지 않기 때문에, 자바 라이브러리에서 제공하는 String 클래스를 이용한다.
기본형 => String str = "pooreum"
✏️ 타입 변환
타입 변환이란 변수나 상수 혹은 리터럴의 타입을 다른 타입으로 바꾸는 것을 말한다. 타입 변환에는 자동 타입 변환과 강제 타입 변환의 2가지 종류가 있다. 아래 예시를 보면서 살펴보도록 하겠다.
// 자동 타입 변환
long m = 25; // 리터럴 25는 int형, m은 long형이므로 25가 long타입으로 자동 변환
double d = 3.14 * 10; // 실수 연산을 위해 10이 10.0으로 자동 변환
// 강제 타입 변환
int n = 300; // n에 300을 저장
byte b = n; // 컴파일 오류, int타입은 byte타입으로 자동 변환 불가능
byte b = (byte)n; //n을 byte타입으로 강제 변환, b=44
강제 타입 변환에서 조심해야 할 부분은 데이터 손실이다. 위에 코드에서 보면 n에 300을 저장한 후 바이트형으로 변환하면 b에 44가 저장된다. byte의 범위는(0~255)이므로 300은 byte의 범위를 넘어선다. 이런 경우에는 오버플로우가 발생한다고도 하는데 크기를 넘어서게 되면 300에서 256을 뺀 나머지 값 44가 저장된다. 이런 강제 타입 변환을 캐스팅(casting)이라고도 칭한다.
✏️ Scanner 클래스
자바는 사용자로부터 표준 입력을 받기 위해서는 Scanner 클래스를 사용하며 Scanner 클래스는 java.util 패키지에 있다. 따라서 Scanner 클래스를 사용하기 위해서는 프로그램 맨 앞줄에 import문이 필요하다. 사용 방법은 아래와 같다.
import java.util.Scanner;
Scanner scanner = new Scanner(System.in);
String name = scanner.next();
String city = scanner.next();
int age = scanner.nextInt();
double weight = scanner.nextDouble();
boolean isSingle = scanner.nextBoolean();
메소드 | 설명 |
String next | 다음 토큰을 문자열로 리턴 |
Byte nextByte() | 다음 토큰을 byte 타입으로 리턴 |
short nextShort() | 다음 토큰을 short 타입으로 리턴 |
int nextInt() | 다음 토큰을 int 타입으로 리턴 |
long nextLong() | 다음 토큰을 long 타입으로 리턴 |
float nextFloat() | 다음 토큰을 float 타입으로 리턴 |
double nextDouble() | 다음 토큰을 double 타입으로 리턴 |
boolean nextBoolean() | 다음 토큰을 boolean 타입으로 리턴 |
String nextLine() | ‘\n'을 포함하는 한 라인을 읽고, '\n'을 버린 나머지 문자열을 리턴 |
void close() | Scanner 종료 |
boolean hasNext() | 현재 입력된 토큰이 있으면 true, 아니면 입력 때까지 무한정 대기, 새로운 입력이 들어올 때 true 리턴, ctrl+z키가 입력되면 입력 끝이므로 false 리턴 |
✏️ 연산
- 산술 연산 : 더하기, 빼기, 곱하기, 나누기, 나머지 연산
- 증감 연산 : ++, --가 있고 피연산자의 앞에 붙으면 전위 연산자, 피연산자의 뒤에 붙으면 후위 연산자이다.
- 대입 연산 : a=b, a = b+1과 같이 왼쪽에 있는 변수에 오른쪽의 식의 결과를 대입
- 비교 연산 : 두 개의 피연산자를 비교하여 true와 false를 리턴
- 논리 연산 : 논리 값을 대상으로 AND, OR, NOT, XOR의 논리 연산을 한다.
- 조건 연산 : 3개의 피연산자로 구성되어 삼항 연산자라고 불린다. condition ? opr2 : opr3
- 비트 연산 : 비트끼리 AND, OR, XOR, NOT 연산을 한다.
- 비트 시프트 연산 : 비트를 오른쪽이나 왼쪽으로 이동시키는 연산
※ 시프트 연산자 알아보기
시프트 연산자 | 내용 |
a >>b | a의 각 비트를 오른쪽으로 b번 시프트한다. 최상위 비트의 빈자리는 시프트 전의 비트로 다시 채우며 산술적 오른쪽 시프트라고 한다. |
a >>> b | a의 각 비트를 오른쪽으로 b번 시프트한다. 최상위 비트의 빈자리는 항상 0으로 채우며 논리적 오른쪽 시프트라고 한다. |
a << b | a의 각 비트를 왼쪽으로 b번 시프트한다. 최하위 비트의 빈자리는 항상 0으로 채우며 산술적 왼쪽 시프트라고 한다. |
반응형
'PL > JAVA' 카테고리의 다른 글
[JAVA] 자바 - 상속 2 (0) | 2024.05.26 |
---|---|
[JAVA] 자바 - 상속 (0) | 2024.05.25 |
[JAVA] 자바 - 클래스와 객체 (0) | 2024.05.23 |
[JAVA] 자바 - 배열과 예외 처리 (0) | 2024.05.22 |
[JAVA] 자바 - 자바 시작 (0) | 2024.05.21 |
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- c++ string
- 백준
- DP
- 알고리즘 공부
- html
- 투 포인터
- 알고리즘
- 세그먼트 트리
- C++ Stack
- 에라토스테네스의 체
- 유클리드 호제법
- 반복문
- Do it!
- 자료구조
- 스프링 부트 crud 게시판 구현
- java
- HTML5
- 이분 매칭
- CSS
- 자바
- 자바스크립트
- 우선순위 큐
- js
- 카운팅 정렬
- 백준 풀이
- DFS
- BFS
- 스택
- C++
- 유니온 파인드
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함