일반적으로 개발자라면 자신이 사용하는 개발 언어에 대한 기본 개념과 특징, 사용 방법 등을 학습한다. 자바 개발자라면 JVM 기술 스택의 구조를 이해해야 한다고 생각한다. JVM 기술을 이해함으로서 더 좋은 소프트웨어를 개발할 수 있고 성능 이슈를 탐구할 때 필요한 이론적 배경지식을 갖추게 된다.
Java Virtual Machine(JVM)은 자바 바이트 코드를 실행하는 가상 머신이다. 바이트 코드는 .java
코드를 컴파일링하여 만들어진 .class
파일을 말한다.
JVM은 플랫폼(실행 환경)에 종속적이지만 구동되는 JVM이 있다면 자바 실행 파일은 어디서든 동작한다.
java 명령어를 통해 자바 프로그램을 실행하면 OS는 가상 머신 프로세스(JVM)를 구동한다. 자바 가상 환경이 구성되고 사용자가 작성한 class 파일이 실행된다.
구동 과정에서 자바 애플리케이션의 진입점(entry point)은 class 파일에 있는 main() 메서드이다. 제어권을 main으로 넘기려면 가상 머신이 실행되기 전에 main 클래스를 로드 해야 한다. 이때 클래스 로더(Class Loader)가 관여한다. 따라서 자바 프로세스가 새로 초기화 된 이후 클래스 로더가 최소한의 필수 클래스(java.lang.Object, Class, Classloader, ...)들을 로드하고 컴파일된 자바 바이트코드를 런타임 데이터 영역(Runtime Data Area)에 로드하고, 실행 엔진(Execution Engine)이 자바 바이트 코드를 실행한다.
클래스 로더는 뒤에서 더 자세히 다루고 먼저 자바 메모리에 대해 설명한다.
Runtime Constant Pool 에는 클래스별 상수 테이블이 존재하고 리터럴 값이 포함되어 있다.
이 글은 자바 언어에 대한 기본기를 다지기 위해 작성하는 글입니다.
글에서 잘못되거나 추가되어야 하는 내용 관련 사항은 jungwoo5759@gmail.com 로 공유해주시면 감사하겠습니다.
해당 글을 참고하시거나 퍼가실 때는 출처 링크 부탁드립니다!
深圳SEO优化公司衢州网站优化按天计费公司黔西南网站优化按天收费公司上海外贸网站制作公司鄂州网站推广方案多少钱厦门网站seo优化公司韶关关键词按天扣费公司内江SEO按天扣费价格遂宁至尊标王价格三明百度竞价包年推广推荐长治网站改版多少钱宜昌百姓网标王推荐宜春网站优化按天计费价格曲靖网站推广方案公司赤峰网站改版哪家好淮安seo优化报价大丰网站改版推荐广州网站优化推广公司临猗百度关键词包年推广报价上饶网络营销多少钱诸城SEO按天扣费巴中模板推广报价绥化百度seo公司莆田关键词按天扣费推荐桐城网络广告推广郴州seo公司许昌seo网站推广哪家好通辽seo网站推广推荐江门网站搭建价格昭通seo网站推广价格双龙百搜标王多少钱歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运