- Java Development Kit, 자바 개발 키트
- .java 파일들을 .class 파일들로 변환해주는 Java Compiler 기능 존재
- Jdb 기능을 통해 실행중인 프로그램의 코드 실행을 따라가며 볼 수 있음
- 작성한 코드에 "중단점"을 설정하고 "디버그"모드로 실행하면 변수를 볼 수 있음
- 디버깅 = 중단점 일시정지 + 코드 라인단위 수행
- 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의 경우 정적으로 할당된 메모리 영역
- 크기가 정해져 있는 기본형 변수 저장
- 크기가 정해져 있는 참조형 변수의 주소값도 저장- Heap의 경우 동적으로 할당된 메모리 영역
- 크기가 정해져 있지 않은(계속 늘어날 수 있는) 참조형 변수의 원본 저장
- 작은 타입 → 큰 타입 형 변환(자동 형 변환)
- 더 큰 표현범위를 가진 타입으로의 변환으로 값 손실 X
- 컴파일러가 자동으로 형 변환을 해줌
- 큰 타입 → 작은 타입 형 변환(강제 형변환)
- 더 작은 표현범위를 가진 타입으로의 변환으로 값 손실 O
- 개발자가 선택해 형 변환
- 비교 연산 결과에 따라 값을 직접 지정 가능한 연산자
- 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의 배수로 나눗셈이 연산되는 것과 동일
![]() | ![]() |
---|