카테고리 없음

JAVA의 특징

흰색텀블러 2024. 7. 12. 15:49

컴퓨터는 0,1로만 이루어짐. 이건 우리가 못읽음. 그래서 번역이 필요함. -> 이걸 도와주는게 "컴파일러"

컴파일러는 바이트코드(Byte Code)로 변경시켜줌.

JVM은 바이트 코드만 실행시켜줌 (JDK 설치할때, 같이 설치됨.)

JVM은 서로 다른 OS(Linux, Windows, Mac OS)에서 실행될수 있도록 도움을 줌

(JVM에서 해석을 해줌 이때는 interpreter) 

 

java -> compiler -> bytecode -> interpreter -> 실행

 

1. Write Once

- 코드를 하나 작성하면

 

2. Run Anywhere

어디서든 실행가능함.

 

환경변수(시스템변수)에 등록되어있는 변수는 어디에서든 실행이 됨.

 

cmd 켜서

javac -d . 이름

하면 바이트 코드로 바꿔줌. (해석안됩니다...?) -> 이걸 이제 JVM이 인터프리터를 통해 번역해줌

 

Primitive Type : 기본형

- 미리 정해진 크기의 Memory Size로 표현

구분 타입 bit 수
논리형 boolean 1 true / false
정수형 byte    
  short    
  int    

 

Reference Type : 참조형 -> (Class)

- 미리 정해질 수 없는 데이터의 표현

 

class Person{

    int age;

    char grade;}

class : 하나의 설계도

Person : 객체 

 

new Person();

new : 메모리 할당 받자!

int 32 ,char 16 해서 총 48비트 할당!

 

Variable이란? --> 하나의 그릇!

위에서 age나 grade임!

 

 

지역변수! (해당 지역에서만 쓸 수 있는 것 { } 사이)는 "반드시" 초기화 해야함!

 

package com.ssafy;

 

public class BP_12 {

public static void main(String[] args) {

    String s1 = "Hello";

    String s2 = "Hello";

    String s3 = new String("Hello");

    }

}

 

CPU : 중앙처리장치

RAM : 주 기억장치

RAM에서 JVM이 약간의 메모리를 할당받음.

 

JVM의 메모리 구조

1. class : class정보를 저장

2. stack : main에 있는 s1, s2, s3저장

3. heap : constant pool (상수 저장소) s1, s2에 Hello 저장. 근데 같은 hello니까 새로 지정하지 않음.

근데 s3는 heap 영역에 String으로 Hello를 저장함.

 

 

///여기서부터는 git

GitFlow 전략

feature branches develop release branches hotfixes master
특징만 파악해서 브랜치 개발할때 사용 QA진행 수정하고 바로 배포하는거 실제 배포하는 브런치
  나로부터 feature가 시작된다.