TIL - Java의 기본 클래스 | 연산자

su·2023년 5월 22일
0

TIL

목록 보기
6/93
post-thumbnail

1주차

JDK

  • Java Development Kit, 자바 개발 키트
  • .java 파일들을 .class 파일들로 변환해주는 Java Compiler 기능 존재
  • Jdb 기능을 통해 실행중인 프로그램의 코드 실행을 따라가며 볼 수 있음
    • 작성한 코드에 "중단점"을 설정하고 "디버그"모드로 실행하면 변수를 볼 수 있음
    • 디버깅 = 중단점 일시정지 + 코드 라인단위 수행

main 메서드

  • Java 프로그램(앱)의 시작점
  • 제일 먼저 클래스의 main 메서드를 실행시킴 | JVM의 약속

코드 해석하기

public class Main {
	public static void main (String[]args) {
    	System.out.println("Hi!");
    }
}
  • public class Main {

    • 클래스 정의
    • public: 클래스 경로 외부에서 실행가능하다고 표시해주는 "접근 제어자"
      - 클래스 경로 외부에서 접근 불가능한 private (그 외 protected)
    • class: 객체를 만드는 클래스라고 선언
    • Main: 클래스 명
      - 파일 명과 일치해야 함 (자바 컴파일러가 바이트 코드로 변환했을 때의 파일 확장명과 일치됨)
  • public static void main(

    • main 메서드 정의
    • public: 외부에서 실행 가능하다고 표시해주는 "접근 제어자"
    • static: Java 컴파일러가 바이트 코드로 변환할 때 미리 정의되는 메서드 표기
      - 앱 실행 시 한 번만 정의되며 static 메서드 혹은 변수끼리만 호출 가능
    • void: 메서드 응담값을 정의하는 곳으로 void는 응답할 값이 없다는 정의
      - int 정수, char 문자, string 문자열 등등
  • (String[ ]args)

    • 메서드 시작 시 넘겨받을 데이터들(변수들)
    • String[ ]: 문자열 여러 개 데이터 타입
    • args: 문자열 여러 개 데이터의 이름(사용자가 아무 값으로 정의해도 됨)

Stack영역 vs Heap영역

  • Stack의 경우 정적으로 할당된 메모리 영역
    • 크기가 정해져 있는 기본형 변수 저장
      - 크기가 정해져 있는 참조형 변수의 주소값도 저장
  • Heap의 경우 동적으로 할당된 메모리 영역
    • 크기가 정해져 있지 않은(계속 늘어날 수 있는) 참조형 변수의 원본 저장

자동 형변환 vs 강제 형변환

  • 작은 타입 → 큰 타입 형 변환(자동 형 변환)
    • 더 큰 표현범위를 가진 타입으로의 변환으로 값 손실 X
    • 컴파일러가 자동으로 형 변환을 해줌
  • 큰 타입 → 작은 타입 형 변환(강제 형변환)
    • 더 작은 표현범위를 가진 타입으로의 변환으로 값 손실 O
    • 개발자가 선택해 형 변환

2주차

삼항 연산자

  • 비교 연산 결과에 따라 값을 직접 지정 가능한 연산자
  • 3가지 피연산자가 존재하여 삼항 연산자라고 함 (조건 / 참결과 / 거짓결과)
  • (조건) ? (참결과) : (거짓결과)
// 삼항 연산자
int x = 2;
int y = 10;

int max = (x > y) ? x : y;
System.out.println(max);   // 10

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

int min = (x > y) ? y : x;
System.out.println(min);   // 2 (이렇게 해도 똑같지 않을까?)

연산자 우선순위

  • 산술 > 비교 > 논리 > 대입
  • 연산자가 여러 개 존재할 경우 우선순위가 존재
  • 위 우선순위에 따라 최종 응답값이 결정되며 단, 괄호로 감싸주면 괄호안의 연산이 최우선순위

비트 연산

  • Bit의 자리수를 옮기는 연산
    • Byte를 8등분 한 것이 Bit
    • Bit는 0과 1 둘 중 하나의 값만을 저장하는 컴퓨터가 저장하는 가장 작은 단위
    • 연산 중 Bit 연산이 제일 빠름
    • <<: 왼쪽으로 자릿수 옮기기 | >>: 오른쪽으로 자릿수 옮기기
      • 자릿수를 왼쪽으로 옮기는 횟수만큼 2의 배수로 곱셈이 연산되는 것과 동일
      • 자릿수를 오른쪽으로 옮기는 횟수만큼 2의 배수로 나눗셈이 연산되는 것과 동일
  • 비트 연산 풀이
    • 이해가 안되어서 손으로 풀어보았다
image.jpg1image.jpg2
profile
(❁´◡`❁)

0개의 댓글