5/25

ONLYS2545·2023년 5월 25일
0

캐스팅


char data = ch; 에러발생
char는 2바이트이고, int는 4바이트이기 때문에 타입 미스매치 에러가 발생함.


ch를 char형으로 형변환 해주면 해결완료

byte형의 경우 1바이트로 char자료형보다 크기가 작지만, byte의 경우 묵시적 형변환이 불가능함(예외적)


-ca를 char로 형변환 하면 가능

필기

cpu
명령어가 적은 것 - ARM
명령어가 많은 것 - INTEL
*여기서 명령어를
어셈블리어(저수준언어)라고 한다.(기계에게 직접 명령하는 언어) - 하드웨어에 종속됨,
<-> OS에 종속되는 언어 : C언어(네이티브 언어)
고수준언어 -> Java : OS종속되지 않음. JVM이라는 가상머신이 OS에 맞게 컨버팅해 줌
JVM은 .class 파일을 구동한다.

자바 생명주기

Java ---(javac)--> .class --> Java가 .class파일을 실행 -> JVM start(클래스 로드, JVM이 관리하는 RAM에 .class파일 로드) -> static 로드(static 속성이 붙은 함수들) -> main을 찾는다. -> main의 body({ }) 가 실행된다. -> main 종료(static도 소멸)
main body가 실행되고 종료되지 않고 계속 실행되는 경우(반복문 등) 데몬 프로세스라고 한다.(ex 카카오톡)
static은 메인 실행 전 단 한번만 로드된다. (천지창조)
*static 정적인 것 (제어권 없음) <-> 동적인 것은 필요에 의해서 제어가능한 것
-계속 띄워놔야 하는 것은 static으로 설정할 것

자바 메모리

JVM이 사용하는 메모리 상 static, heap, stack 영역으로 구분(다른 언어는 static이 없는 경우도 있음, 그러나 stack과 heap은 모두 있음)
static 영역은 정적 영역, heap 영역은 동적 영역

                 커피 빨리 마시는 대회
                 
                 램 영역
                 1.static - 커피머신 전광판  (정적 변수)
                 
                 2.heap - 참가자1, 커피1   (동적 변수)
                 *heap은 개발자가 관리할 수 있는 영역(제어 가능)
            
                 3.stack - 시작 시간, 끝 시간 , 결과
                 *stack의 데이터는 행위가 시작될 때 생기고
                 행위가 종료될 때 사라진다. 연산 후 전광판에 기록 후 삭제
                 (3가지 영역 중 생명주기가 가장 짧음)
                 stack에 기록된 변수는 지역변수 or stack변수라고 한다.

RAM

cpu와 ram이 상호작용하는 구조 -> 폰노이만 구조

profile
백엔드 교육과정 기록 velog입니다.

0개의 댓글