써치킴의 우당탕탕 개발 블로그

[Java][Ch1] 연산자 본문

더 자세하게 Java

[Java][Ch1] 연산자

써치킴 2022. 5. 13. 00:57

프로그래밍은 절차다

프로그램 : 연산과 제어를 통해 원하는 결과를 얻기위한 순서

자바의 데이터 타입

기본타입 (primitive)
 
Type
크기 (byte)
정수형
byte
1
 
short
2
 
int
4
 
long
8
 
char
2
실수형
float
4
 
double
8
논리형
boolean
1

Java

  • 패키지(탐색기의 폴더)명은 소문자만 써야함.
  • 클래스명은 무조건 영어여야 하며, 대문자로 시작되어야 함.
  • 클래스명은 대문자, 변수명은 소문자로 시작.
  • 변수명 변경 => 변수명 더블클릭 > 우클릭 > refactor > Rename  OR [Shift] + [Alt] + [r]
  • [ctrl] + [shift] + [?] => 지정주석
  • [ctrl] + [shift] + [\] => 지정주석 풀기
  • [ctrl] + [shift] + [c] => 한줄주석
  • [ctrl] + [a] > [ctrl] + [i] => 자동정렬

자동 형변환

작은 크기 => 큰 크기 타입으로 변환 (데이터 손실 발생 X)

byte(1) → short(2) → int(4) →  long(8) → float(4) → double(8)
                                                                  ↑      
                                                 저장방식의 차이로 
                                           long 표현범위 < float 표현범위
  • short(2)와 char(2)는 서로 자동변환되지 않는다.
  • long : 변수선언 시 숫자 뒤에 L을 붙혀야 long 변수로 인식함
  • float : 변수 선언 시 숫자 뒤에 f를 붙혀야 float 변수로 인식함

정수형 연산

Java에서 정수형은 기본적으로 int로 취급함.

 

  • byte + byte → int + int
  • byte + short → int + int
  • int + char → int + int
  • int + long → long + long

실수형 연산

Java에서 실수형은 기본적으로 double로 취급함.

 

  • float + double → double + double 
  • float + 2.5 → double + double
    • 2.5 => double로 취급
  • float + int → float + float
  • int + double → double + double
public class Ex08_정수형변환 {
    public static void main(String[] args) {
        byte bv1 = 1;
        byte bv2 = 2;
        byte bv3 = (byte)(bv1 + bv2); //강제형변환 
        int iv1 = bv1 + bv2; //정수형은 기본적으로 int 취급하기 때문에 byte + byte => int + int 
        System.out.println(bv3);
        System.out.println(iv1);
        short sv1 = 10;
        short sv2 = 30;
        short sv3 = (short)(sv1 + sv2); //강제형변환
        int iv2 = sv1 + sv2; // short + short = > int + int
        System.out.println(sv3);
        System.out.println(iv2);
        char cv1 = 'a'; //실제론 숫자를 저장해서 iv3 연산이 가능함
        int iv3 = cv1 + 2;
        System.out.println(iv3);
        long iv4 = iv3 + 100L;
        System.out.println(iv4);
        System.out.println(cv1);
    }
}
public class Ex09_실수형변환 {
    public static void main(String[] args) {
        float fv1 = 10.0f;
        float fv2 = 20.0f;
        float fv3 = fv1 + fv2;
        System.out.println(fv3);
        double dv1 = 30.0;
        double dv2 = fv3 + dv1; // float + double => double + double
        System.out.println(dv2);
        float fv4 = (float)(fv3+dv1); // 강제형변환
        System.out.println(fv4);
        double fv5 = fv1 + 40.0; // float + double => double + double
        System.out.println(fv5);
        int iv1 = 5;
        float iv2 = fv1 + iv1; // float + int => float + float
        double iv3 = iv1 + dv1; // int + double => double + double
        System.out.println(iv3);
    }
}

대입연산자 

X = Y → Y를 X에 대입함

비교연산자

X == Y → X와 Y가 같은가? (비교)
 
  • 'A' < 'B' -> 65 < 66 : true
  • 0.1 == 0.1f : false

피연산자에 1개라도 문자(열)이 있으면 문자열 연산

  • 숫자 + 문자열 -> 문자열 연산자가 됨 
public class Ex05_문자열연산 {
    public static void main(String[] args) {
        int a = 10 + 20;
        System.out.println(a);
        String b = 10 + "sky"; // 숫자 + 문자열 => 문자열 연산자가 됨
        // 숫자가 문자로 바뀜("10") => 스트링 연산자 사용해야함
        System.out.println(b);
        String s1 = "jdk" + 3 + 3.0; // 문자 + "3" + "3.0"
        String s2 = 3 + 3.0 + "jdk"; // int + double + 문자 => double + double + 문자 => "6.0" + "jdk"
        System.out.println(s1);
        System.out.println(s2);
    }
}

논리 연산자

  • && 논리곱 : and
  • || 논리합 : or
  • ^ 배타적 논리합
  • ! 논리 부정

'더 자세하게 Java' 카테고리의 다른 글

[Java][Ch2] 캡슐화  (0) 2022.05.13
[Java][Ch2] 객체지향_클래스  (0) 2022.05.13
[Java][Ch1] 참조타입  (0) 2022.05.13
[Java][Ch1] 제어문 - 반복문  (0) 2022.05.13
[Java][Ch1] 제어문 - 조건문  (0) 2022.05.13
Comments