티스토리 뷰

PL/JAVA

[JAVA] 자바 - 기본 프로그래밍

poopooreum 2024. 5. 22. 10:32
반응형

✏️ 데이터 타입

  • 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 리턴

 

 

✏️ 연산

  1. 산술 연산 : 더하기, 빼기, 곱하기, 나누기, 나머지 연산
  2. 증감 연산 : ++, --가 있고 피연산자의 앞에 붙으면 전위 연산자, 피연산자의 뒤에 붙으면 후위 연산자이다.
  3. 대입 연산 : a=b, a = b+1과 같이 왼쪽에 있는 변수에 오른쪽의 식의 결과를 대입
  4. 비교 연산 : 두 개의 피연산자를 비교하여 true와 false를 리턴
  5. 논리 연산 : 논리 값을 대상으로 AND, OR, NOT, XOR의 논리 연산을 한다.
  6. 조건 연산 : 3개의 피연산자로 구성되어 삼항 연산자라고 불린다. condition ? opr2 : opr3
  7. 비트 연산 : 비트끼리 AND, OR, XOR, NOT 연산을 한다.
  8. 비트 시프트 연산 : 비트를 오른쪽이나 왼쪽으로 이동시키는 연산

  ※ 시프트 연산자 알아보기

시프트 연산자 내용
a >> 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
링크
«   2024/07   »
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
글 보관함