[멋쟁이사자처럼 부트캠프 TIL 회고] 백엔드 Java 부트캠프 2일차

2024. 12. 3. 16:33·🏕 멋사 Java 백엔드 13기/TIL

 

 

변수와 리터럴

변수 : 값을 가질 수 있는 공간(메모리 영역)
타입(int) 변수(i) = 값=리터럴(1)

 

💡  변수 작명 규칙

  • 하나 이상의 글자일 것
  • 첫 번째 글자는 문자나 $, _이어야 하고, 두 번째 이후부터 숫자도 포함된다.
  • 길이 제한이 없음.
  • 키워드, 상수값(true, false, null)은 사용이 불가
package day02;

public class Val Test {
	public static void main(String[] args){
	int abc =1;
	int $abc=1;
	int @abc =1; // 특수문자는 $,_만 가능
	int class=1; // 키워드라 안됨
	int 1test =1; // 맨 처음 글자는 숫자가 불가능
}

 

📑  예제 : 정수 1~100 출력 

package day02;

public class IntTest {
    public static void main(String[] args) {
        int i=1;

        while(i<=100) {   //i++<100 가능 
            System.out.println(i);
            i = i + 1; // i++ 가능
        }
    }
}

 


논리형 타입과 논리 연산자

💡  논리형 타입

  • 기본형 타입

    논리형 boolean
    정수형 byte, short, int, long
    실수형 float, double
    문자형 char

    • 논리형 타입의 사용
      • 조건의 결과가 반영(true, false)될 때 사용한다.
      • true, false의 표현은 1 bit로 충분하나 컴퓨터 자료 표현의 최소 단위인 1byte(8bit)로 표현한다.
  • 레퍼런스 타입
    • 기본형을 제외한 모든 타입

💡  논리 연산자

  • and(&&)와 or(||)
    • &와 |가 사용되는 경우
boolean boo = false;
byte b=123;
int i = 10;

boo = b >200 && i++>5 ; //&&는 2개 만족, ||는 1개 만족

 

  • 논리 연산자 XOR(^)
a>10 ^ a<20

 

  • 부정 연산자 not !
    • 논리형 값을 부정(true ↔ false)

정수와 실수, 산술 연산자

💡  정수와 실수

  • 정수형 타입
정수형 타입 크기(byte) 값의 범위
byte 1 -2⁶ ~ 2⁶ -1 
short 2 -2¹⁵ ~ (2¹⁵ -1)
int 4 -2³¹ ~ (2³¹ -1)
long 8 -2⁶³ ~ (2⁶³ -1)

 

  • 실수형 타입
실수형 타입 크기(byte) 값의 범위 리터럴 타입 접미사
float 4 (3.4 X 10⁻³⁸) ~(3.4 X 10³⁸) F or f
double 8 (1.7 X 10⁻³⁰⁸) ~ ( 1.7 X 10³⁰⁸) D or d (생략 가능)

 

💡  산술 연산자

  • 증가 연산자(++)와 감소 연산자(--)
package day02;

public class NumberTest {
    public static void main(String[] args) {

        int a = 10;
        /* a++; // 증가 연산자 a=a+1;
            ++a; // 문장 하나로 끝날 때는 위와 큰 상관 없음.
        */

        System.out.println(a++); //10

        System.out.println(a); //11
    }
}

 

  • 산술 대입 연산자(+=, -=, *=, /=, %=)
package day02;

public class NumberTest2 {
    public static void main(String[] args) {

        int b = 5;
        b+=5; // b= b+5
    }
}

 

  • 정수와 실수의 최댓값
package day02;

public class NumberExam01 {
    public static void main(String[] args) {
        int maxInt = Integer.MAX_VALUE;
        int minInt = Integer.MIN_VALUE;

        double maxDouble = Double.MAX_VALUE;
        double minDouble = Double.MIN_VALUE;

        System.out.println(maxInt);
        System.out.println(minInt);
        System.out.println(maxDouble);
        System.out.println(minDouble);
    }
}

 

💡  오버플로우

결과가 최댓값을 넘거나, 최솟값보다 작을 경우 음수↔양수가 바뀌는 현상.


타입의 변환

💡  묵시적 형변환과 명시적 형변환

  • 묵시적 형변환
    • 작은 타입에서 큰 타입으로는 묵시적 형변환
    • 즉, byte→short→int→long→float→double 순으로 '묵시적 형변환'이 가능함.
  • 명시적 형변환
    • 큰 타입에서 작은 타입으로의 변환은 명시적 형변환 (사람이 직접 지정)
  • 이때 실수 ↔ 정수는 불가하고, boolean ↔ 정수도 불가하다. 하지만 정수 ↔문자는 가능하다.
    • 이는 문자(chart) 타입이 2byte의 유니코드 값을 가지기 때문이다. (0~65535까지 저장가능한 정수 타입)
package day02;

	public class PrintiveCastExam1 {
		int i = 10;
		
		long l = i;//형변환 = 작>큰은 묵시적 형변환
		i=(int)l; //큰 > 작은 은 명시적 형변환 필요 
		
		byte h = 10;
		i=i;
		b=(byte)i;
		
		flot f = 10f;
		l = f ; //오류발생 : 이유는 실수를 저장하는 f와 정수형 long이기 때문에.
		
		boolean boo = true;
		// l= (long)boo는 불가하다. 데이터 타입이 다름
		
		char c = 'a';
		i=c;
		
		System.out.println(i++);
		System.out.println((char)i); // char이 유니코드(정수형)이기 때문에 가능함.
	}

삼항 연산자

💡  삼항 연산자

조건 ? 식1 : 식2 ;
public class BitOp {
    public static void main(String[] args) {

        int x = 5;
        int y = 3;
        int max = (x > y) ? x : y;
        System.out.println(max);

        int min = (x < y) ? x : y;
        System.out.println(min);

        boolean b = (x == y) ? true : false;
        System.out.println(b);

        String s = (x != y) ? "달라요" : "같아요";
        System.out.println(s);

    }
}

조건문 if / case/ switch

💡  조건문  if

public class IfExam3 {
	public static void main(String[] args){
    	int score = 70;

        if (score >= 90) {
                    System.out.println("A");
                } else if (score >= 80) {
                    System.out.println("B");
                } else {
                    System.out.println("C");
                }
     }
}

 

💡  조건문  switch

switch(변수) {
      case 값 1:
              변수 ==1일 때 실행된다.
              break;
      case 값 2:
              변수 ==2일 때 실행된다.
              break;
...

      default:
              변수가 어떤 case에도 해당되지 않을 경우 실행된다.
}
public class SwitchExam {
    public static void main(String[] args) {

        String str = "초콜릿";   // JDK 7 이상에서만 switch에서 String 타입을 사용 가능
                switch (str){
                    case "초콜릿" :
                        System.out.println("통과");
                        break;
                    case "사탕" :
                        System.out.println("반환");
                        break;

                    default :
                        System.out.println("폐기");
                        break;
                }

반복문 while/ do while / for

💡  반복문  while

  • 기본
while (탈출 조건식) {     
      탈출 조건식이 참일 경우 실행되는 코드;
      변수 증감식;
}
package day02;

public class WhileExam {
    public static void main(String[] args) {
    
        int count = 0;

        while (count < 10) {   // count ++시 1이 생략됨
            System.out.println(count++);
            // count++;
        }
    }
}
  • break
    • while+ break 사용 시 더 이상 반복하지 않는다.
public class WhileExam2 {
	public static void main(String[] args){
    	int i = 1;
        while(true) {
        	if(i == 11) break;
            System.out.println(i);
            i++;
        }
    }
}
  • 후위 증감식
    • 변수 뒤에 후위 증가식 붙을 경우 변수 사용된 이후에 값이 증가함
public class WhileExam3 {
	public static void main(String[] args){
    	int i = 0;
        while(i++ < 10) {
            System.out.println(i);
        }
    }
}
  • continue
    • continue 이하 문장을 실행하지 않고 반복한다.
public class WhileExam4 {
	public static void main(String[] args){
    	int i = 0;
        while(i++ < 10) {
            System.out.println(i);
        }
    }
}

💡  반복문  do while

do/while 문은 무조건 한 번은 실행되며, 탈출 조건식이 false일 경우 종료된다.

변수의 초기화
do   {
        탈출 조건식이 참일 경우 실행되는 코드;
        변수 증감식;
} while (탈출 조건식);  
public class DoWhileExam1 {
    public static void main(String[] args) {
    	int i =1;
        do {
        	System.out.print(i);
            i++;
        } while (i <= 10);
    }
}

💡  반복문  for

for (변수의 초기화; 탈출 조건식; 증감식) {
     탈출 조건식이 참인 경우 실행되는 부분

1 → 2 → 3 → 4 순으로 진행된다.
//		ForExam 1 (*를 10개)
        for (int i=0; i<10; i++) {
	        System.out.println("*");
	        }
 
//		ForExam 2 (1~10까지)
        for (int i = 1; i <= 10; i++) {
	        System.out.println(i);
            }

 

 

📚  추가 공부 필요한 부분

  • 자료 구조
    • 정수와 실수는 메모리에 어떻게 저장되는가? (메모리에 저장되는 형태)
  • Java에서 강제 형변환 시의 주의점 : 오버 플로우 
  • JDK 14, 17에서 추가된 switch 문법
  • arguments 값 설정(이론 보충)

'🏕 멋사 Java 백엔드 13기 > TIL' 카테고리의 다른 글

[멋쟁이사자처럼 부트캠프 TIL 회고] 백엔드 Java 부트캠프 6일차  (2) 2024.12.09
[멋쟁이사자처럼 부트캠프 TIL 회고] 백엔드 Java 부트캠프 4일차  (0) 2024.12.05
[멋쟁이사자처럼 부트캠프 TIL 회고] 백엔드 Java 부트캠프 3일차  (1) 2024.12.04
[Java] 패키지, 접근 제한자, 클래스, 메소드  (3) 2024.12.03
[멋쟁이사자처럼 부트캠프 TIL 회고] 백엔드 Java 부트캠프 1일차  (3) 2024.12.02
'🏕 멋사 Java 백엔드 13기/TIL' 카테고리의 다른 글
  • [멋쟁이사자처럼 부트캠프 TIL 회고] 백엔드 Java 부트캠프 4일차
  • [멋쟁이사자처럼 부트캠프 TIL 회고] 백엔드 Java 부트캠프 3일차
  • [Java] 패키지, 접근 제한자, 클래스, 메소드
  • [멋쟁이사자처럼 부트캠프 TIL 회고] 백엔드 Java 부트캠프 1일차
Cofish
Cofish
  • Cofish
    Codesea
    Cofish
  • 전체
    오늘
    어제
    • 분류 전체보기 (19)
      • 🏕 멋사 Java 백엔드 13기 (17)
        • TIL (15)
        • 자료구조 (2)
      • 네트워크 (2)
        • TCP•IP (2)
      • 🎨 블로그 꾸미기 (0)
      • 💬 일상 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    백엔드 java 부트캠프
    MySQL
    db 기초
    java 기초
    #멋쟁이 사자처럼
    멋쟁이사자처럼 #부트캠프
    디자인 패턴
    부트캠프
    멋쟁이 사자처럼
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
Cofish
[멋쟁이사자처럼 부트캠프 TIL 회고] 백엔드 Java 부트캠프 2일차
상단으로

티스토리툴바