수정입니다

<1주차>깃 사용법, 자바 기초(반복문, 제어문), java, IntelliJ 세팅 본문

동문네트워크

<1주차>깃 사용법, 자바 기초(반복문, 제어문), java, IntelliJ 세팅

nongdamgom 2024. 3. 22. 23:03

 

 

순서는 스토리텔링 잘 되는 순으로 임의 변경 하였음

 

 

프로그램의 실행 방식 

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)
    • Reference Type
      • Class Type
        • String Type
        • Wrapper Class
      • Interface Type
      • Array Type
      • Enum 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으로 관리하는 프로젝트들을 관리하는 클라우드 기반 호스팅 서비