JAVA 정리 -2022.07.11

sofia·2022년 7월 11일
0

JAVA

목록 보기
2/27
post-thumbnail

📗리터널(Literal)

:변수의 값(데이터)

  1. 정수 리터럴
  • 2진수 : 0b 또는 0B로 시작하고 0,1로 구성됨
  • 8진수: 0으로 시작하고 0~7숫자로 구성
  • 10진수 : 소수점없는 0~9숫자로 구성
  • 16진수 : 0X또는 0x로 시작하고 0~9숫자와 A,B,C,D,E,F또는 a,b,c,d,e,f로 구성(a부터 f 까지는 10~15숫자임.)

[TYPE]

타입메모리 사용크기저장되는 값의 허용 범위접미사
byte1byte-2^7 ~ 2^7 -1
short2byte-2^15 ~ 2^15 -1
char2byte0 ~ 2^16-1
int4byte-2^31 ~ 2^31 -1
long8byte-2^63~ 2^63 -1l또는 L 을 붙여 표시

(보통 정수 리터럴은 int 형으로 컴파일하는 편)

  1. 문자 리터럴
  • 글자가 2자 이상 : 문자열 ⇒ “” 사용
  • 글자가 1자 : 문자 ⇒ ‘’사용
  • 특수 문자
char var1 ='a'; // 유니코드 :65
char var2 ='가'; // 유니코드 :44032
char var3 =00041; // 16진수
char var4 =65; // 유니코드 :10진수

char var3, var4의 값도 유니코드로 변환가능해서 ' ' 를 사용하지 않고 그냥 넣어도 인식한다.
  1. 논리 리터럴
boolean a = true;
boolean b = 10 > 0;

boolean c = 1;  (오류)
// 자바에서 boolean을 logical하게 인식하게(즉, 참/거짓) 되어있음. 여기서 0,1을 integer으로 인식하기 때문에 오류가 발생함.
  1. 실수 리터럴
타입메모리 사용크기저장되는 값의 허용 범위접미사
float4byte(1.410^-45) ~ (3.410^38)f 또는 F를 붙여 표시
double8byte(4.91.^-32.4) ~ (1.810^308)D 또는 d를 붙여 표시
float var = 3.14f;
double var = 3.14;
  1. 그 외의 리터럴
  • 문자열 리터럴
    String str - "Good";
  • null 리터럴
    int n = null; // 오류 발생 , 숫자가 아닌 문자로 표기됨
    String str = null; //null 이라는 값이 無에 해당되기 때문에
    ""를 붙이지 않고도 사용가능
  1. JDK7부터 숫자에 허용(컴파일러는 리터럴에서 를 빼고 처리 )
    int price = 20_100   //20100
    long cardNumber = 1234_5678_1357_9998L;
    // 1234567813579998
    int age = 2___5   //25
  2. 허용되지 않는 경우
    int x =15_;  // 마지막 끝에 붙이는 경우
    double pi = 3_.14; // 소수점 앞에 위치하는 경우
    long idNum = 981231_1234567_L; // l,d,f 등 앞에
    int y = 0_x15; //n진수 사용시 앞의 구분 부분에서 사용하는 경우

📗숫자 연산의 결과 타입

  • 정수와 정수의 연산 결과 ⇒ 정수
  • 정수와 실수의 연산 결과 ⇒ 실수
int a = 5/2; // 2(O), 2.5(X)
double b = 5/2.0   //2.5

📗타입 불일치

  • 대입할 값과 변수의 타입이 서로 다른 경우 컴파일 되지 않음. 이를 해결 하기 위해서는 대입값의 타입을 일치해야함
int score ="100"; //타입 불일치, 컴파일 에러 발생
int score = 100; //int 타입으로 일치

📗타입 변환과 캐스팅

  • 자동변환 : 암묵적으로 타입이 바뀜
  • 작은 타입의 데이터는 같은 범주의 큰 데이터 타입으로 자동 변환
double p = 2; // 정수 2가 대입을 통해, 2.0으로 자동 변환

📗강제 타입 변환

  • 자동 타입 변환이 안되는 경우
int n =300;
byte b = n;
  • 강제 타입 변환
byte b = (byte)n;
쉽게 말하자면 강제로 타입 변환시, 데이터 손실이 발생할 수 있음

📗캐스팅 종류

1) 업 캐스팅(up-casting) : 좁은 범위에서 넓은 범위로 해석
2) 다운 캐스팅(down-casting) : 넓은 범위에서 좁은 범위로 해석

int r = (int) 10.4; //r=10. 다운캐스팅
double s = (double)7;  //s=7.0 업캐스팅

📗문자열과 숫자 간의 타입 변환

  • 문자열을 숫자로 변환하지 않을 경우 덧셈 연산은 문자열 연결
int x = Integer.parseInt("3"); // 문자열을 정수로 변환하는 메소드
double z = Double.parseDouble("-9.81"); //문자열을 실수로 변환하는 메소드
String c = Integer.toString(123); // 문자열 123 생성
String d = Double.toString(1.23);  // 문자열 1.23 생성
String a = "" + 1234; //문자열 1234 생성. 빈 문자열에 정수를 덧셈. 
String b = "" + 3.14; //문자열 3.14 생성. 빈 문자열에 정수를 덧셈. 

📗Scanner

  • Scanner 클래스(java.util.Sacnner)
  • 읽은 byte를 문자, 정수, 실수, 불리언 등 다양한 타입으로 변환하여 리턴하는 클래스
  • 토큰 단위로 읽음.
    토큰(Token): 공백 문자(Tab, Spacebar등)으로 구분되는 요소

[기본 사용법]

import java.util.Scanner; //기본적으로 import 문을 사용하여 클래스 경로 호출

Scanner a(참조변수) = new Scanner(System.in); //Scanner 객체 생성

System.in는 사용자로부터 입력을 받기위한 입력 스트림으로 매개변수.
(쉽게 생각하면 여기서 객체가 생성될 때 (System.in)바이트 표준 입력 스트림인 매개변수를 사용했다. 정도로 이해)

(예시) - 원화를 입력받아 달러로 바꾸기.

package chapter02;
import java.util.Scanner;
public class Won2Dollar {

	public static void main(String[] args) {
		Scanner scanner =new Scanner(System.in);//객체 생성
		
		System.out.println("원화를 입력하세요.(단위 원)");
		int won = scanner.nextInt();
		double dollar =(double)won/1100;
		System.out.println(won+"원은 "+"$"+dollar+"입니다.");

	}

}

(예시 2) - 두개의 실수를 입력하여 계산

package chapter02;
import java.util.Scanner;//무조건 넣어야함.
public class ExCalculation {

	public static void main(String[] args) {
		Scanner scanner =new Scanner(System.in);//객체 생성
		
		System.out.println("2개의 실수를 입력하시오");
		double first_num = scanner.nextInt();
		double second_num = scanner.nextInt();
		
		double sum = first_num + second_num;
		double subtraction = first_num - second_num;
		double multiply = first_num * second_num;
		double divide = first_num / second_num;

		System.out.println("두 수의 덧셈은"+sum);
		System.out.println("두 수의 뺄셈은"+subtraction);
		System.out.println("두 수의 곱셈은"+multiply);
		System.out.println("두 수의 나눗셈은"+divide);
		scanner.close();
	}

}

📗연산자

연산의 종류연산자
증감++ --
산술+ - * / %
비교> < >= <= == !=
조건? :
대입= *= /= += -=

📗증감 연산

:변숫값을 1만큼 증가 또는 감소
전위 연산은 변숫값 먼저 증감
후위 연산은 한 문장의 수행이 끝난 뒤 변숫값 증감

대입내용
a = bb의 값을 a에 대입
a += ba = a + b
a -= ba = a - b
a *= ba = a * b
a /= ba = a / b
a %= ba = a % b

📗비교 연산자

:두 값을 비교

대입내용
==x == y
!=x != y
>=x >= y
>x > y
<=x <= y
<x < y

📗논리 연산자

  1. &&(AND)
  2. OR(||)
  3. XOR(^)
  4. NOT(!)

XOR 연산자
두 논리값이 다르면 참, 같은 경우 거짓

0개의 댓글