[ Java 문법 종합반 1주차 ]
개발 언어의 역사
A언어 : 입/출력
B언어 : A언어 + 기계식 데이터 타입, 연산기능, 메서드
C언어 : B언어 + 자료형 데이터 타입, 자료구조
Java언어 : C언어 + 공통 실행환경, 클래스, 객체
Java를 배워야 하는 이유
- 공통 실행환경이 있어서 여러 기기에서 실행 가능하다 (=: 토퍼)
- 코드를 이해하기 쉽고, 유지보수가 쉽다
- ‘객체’ (object)
- 모든 객체는 특징과 행동을 지님 - 안정성이 높아 프로그래밍 오류를 방지하고, 보안상 안전하다
- compiler - 대규모 앱 개발이 가능하다
- API 제공 - 다양한 개발도구와 라이브러리 사용 가능
JVM
: Java Virtual Machine
: 여러가지의 기기 위에 Java 프로그램을 실행시킬 수 있는 가상의 기기를 만들어 주는 것
.java → compiler → .class → JVM → Devices
compiler : [.java]파일을 [.class]파일로 변환해줌
/ .class : 바이트 코드 (운영체제가 읽을 수 있는 코드)
JRE
: Java Runtime Environment (자바 실행 환경)
.class 파일만 실행 가능함
JDK
: Java Development Kit (자바 개발 키트)
compiler 기능 + JRE 기능 + 디버깅 기능
변수와 상수
변수 : 변하는 저장공간
상수 : 변하지 않는 저장공간 (할당 후 값을 바꿀 수 없음)
final int number = 10;
number = 11; //바꿀 수 없는 값이기 때문에 에러가 남
변수 타입
- 기본형
- 논리형 : boolean (true / false)
- 문자형 : char (’a’)
- 정수형 : byte, short, int, long
- 실수형 : float, double
- 참조형
- 문자열 : String (”Apple”)
- 그 외 : Object, Array, List ,,,
- 참조형 변수 = 주소형 변수 : 참조형 변수는 실제 값이 아닌 원본값의 주소값을 저장한다. 크기가 크기 때문에 별도의 저장공간이 필요
- Stack 영역 vs Heap 영역
- Stack : 정적으로 할당된 메모리 영역
- Heap : 동적으로 할당된 메모리 영역
- 크기를 알 수 없을 때, 크기에 맞게 늘어나기 위해 동적으로 할당됨.
- Wrapper Class 변수 : 기본형 변수를 클래스로 한번 감싸는 변수
- 사용 이유 : 클래스의 메서드를 사용할 수 있음
[ 개인과제 level 1.1 - 1.5 ]
switch
더 간단하게 작성할 수 있는 방법을 알게 되었다. (intelliJ의 자동 정렬으로..ㅎ)
switch (op) {
case '+':
result = a + b;
break;
case '-':
result = a - b;
break;
case '/':
if (b == 0) {
System.out.println("두 번째 숫자로 0이 입력될 수 없습니다.");
} else {
result = (double) a / (double) b;
}
break;
case '*':
result = a * b;
break;
}
switch (op) {
case '+' -> result = a + b;
case '-' -> result = a - b;
case '/' -> {
if (b == 0) {
System.out.println("두 번째 숫자로 0이 입력될 수 없습니다.");
} else {
result = (double) a / (double) b;
}
}
case '*' -> result = a * b;
}
훨씬 보기도 편하고, 깔끔해졌다.
'스파르타 내배캠' 카테고리의 다른 글
[TIL] #4. 객체지향 프로그래밍 (0) | 2024.04.24 |
---|---|
[TIL] #3. 연산자, 반복문, 배열, 컬렉션 (0) | 2024.04.23 |
[TIL] #1 (0) | 2024.04.19 |
[프로젝트] 0.미니미니 : 팔로우미_FollowGroove (1) | 2024.04.15 |
[데일리미션] Lv.2 웹개발자 JD 분석 (0) | 2024.04.15 |