수정입니다
<1주차>깃 사용법, 자바 기초(반복문, 제어문), java, IntelliJ 세팅 본문
순서는 스토리텔링 잘 되는 순으로 임의 변경 하였음
프로그램의 실행 방식
1. compile
2. interpret
Compile?
- high language로 작성한 source code 전를 compiler에 넘겨서 기계어로 변환하여 실행하는 방식
- 빠르지만, 융통성이 없다.
Interpret?
- source code를 compile 하지 않고 run-time에 한 줄 씩 읽어서 내부에서 바로 실행하는 방식
- 코드 수정이 용이하지만 느리다.
Java는 Java 만의 방식을 차용 ==> compile + interpret
- Java 코드를 Java compiler에서 중간 코드인 byte code로 변환 후 내부 interpreter에서 JVM 실행
JVM
- Java Virtual Machine
- Java interpreter가 프로그램을 수행하는 환경 / 방식
- Java interpreter 안에 있는 머신
- compile과 interpret 방식의 장점만을 합친 방식 (portability, security, preprocessing...)
- Garbage collection을 통한 효율적인 메모리 관리 가능
JDK
- Java Development Kit
- Java로 개발할 때 필요한 툴들이 모아져 있는 일종의 라이브러리
- JDK 안에 JVM이 포함된다.
Java
자료형
- Java Data Type
- Primitive Type
- Boolean Type(boolean)
- Numeric Type
- Integral Type
- Integer Type(short, int, long)
- Floating Point Type(float, double)
- Character Type(char)
- Integral Type
- Reference Type
- Class Type
- String Type
- Wrapper Class
- Interface Type
- Array Type
- Enum Type
- Class Type
- Primitive Type
큰 틀에서 간단하게 설명
Primitive type => 기본 자료형(실제 값 저장) => 그냥 비슷하게 있을 거 다 있음
Reference type => 참조형 (참조형은 데이터의 메모리 주소만 저장함)
String class => 문자열을 위한 별도 클래스
Wrapper class => primitive type을 reference type처럼 사용할 수 있게 boxing 해주는 클래스
+ Enum Type => 열거형, 비슷한 상수들을 모아서 type으로 정의
*interface 는 후에 oop 개념 들어가고 한꺼번에 정리하는게 나을듯
반복문, 조건문
- C와 매우 유사하다
- 직접 짜보면서 익히도록 하자
Java switch-case문에서 break가 필요한 이유
- 맞는 case로 진입해도 break가 없다면, 밑에 case 다 끝날때까지 줄줄이 계속 실행함
- break로 탈출 시켜줘야 한다.
break와 continue문의 용도
- break == 반복문 탈출
- continue == 현재 turn 무시 (next turn으로 반복이 계속 이어진다)
보수와 컴퓨터에서 음수를 보수로 저장하는 이유
- 컴퓨터 => 이진수 => 음수 표현할 방법 없음
- 세가지 방식
- 1. 부호 절대값 => MSB를 판단, 0이면 양수, 1이면 음수 ==> 내부 구현 어려
- 2. 1의 보수 => 비트 반전하는 방식, => -0, +0 문제 존재
- 3. 2의 보수 =>비트 반전 후 +1 ==> adder 하나로 뺄셈 가능, 1의 보수에서 발생한 여러 모순 해결 가
부동 소수점 방식과 부동 소수점 방식을 취하는 이유 및 단점
- 컴퓨터는 소수를 정확히 표현할 수 없음
- IEEE floating point standard 를 정의해서, 표현하는 방식을 정함
- 하지만 이 방식을 취한다 해도, 표현하는 범위가 늘어날 뿐이지 실수연산은 여전히 부정확하다.
상수와 리터럴이란?
- 상수 == 변하지 않는 변수
- 리터럴 == 변하지 않는 값
int a = 1;
- 여기서 a는 상수, 1은 리터럴이다.
- 객체리터럴도 존재.
- ==> immutable class , 객체 안의 내용이 변하지 않음 .
명시적 형 변환과 묵시적 형 변환의 차이
int n = 1;
double d = 1.0;
double test = n; // 묵시적 형변환, 데이터 손실이 없을 때 compiler가 알아서 변환해줌
int test2 = (int) d; // 명시적 형변환, 데이터가 잘릴 때 개발자의 의도로 했다는 걸 표명
git branch를 사용하는 이유
1. 버전 관리 용이
2. 협업 시 각자의 코드에 영향 받지 않고, 컨펌 후 병합 가능
3. 문제 발생 시 돌아가기 쉬움
git과 github의 차이
git => 버전 관리 시스템github => git으로 관리하는 프로젝트들을 관리하는 클라우드 기반 호스팅 서비
'동문네트워크' 카테고리의 다른 글
JPA를 통한 엔티티 설계, 매핑 & 프로젝트 파일 구조 이해 (0) | 2024.06.04 |
---|---|
API URL 설계 & 프로젝트 세팅 (0) | 2024.05.27 |
DB 설계, 실전 SQL (0) | 2024.05.10 |
배열, 제네릭, 람다, 예외처리 (0) | 2024.05.06 |
<2주차> 객체, SOLID (0) | 2024.03.31 |