Java

· Java
github.com/whiteship/live-study/issues/2 2주차 과제: 자바 데이터 타입, 변수 그리고 배열 · Issue #2 · whiteship/live-study 목표 자바의 프리미티브 타입, 변수 그리고 배열을 사용하는 방법을 익힙니다. 학습할 것 프리미티브 타입 종류와 값의 범위 그리고 기본 값 프리미티브 타입과 레퍼런스 타입 리터럴 변수 선언 github.com 오늘은 2주차 과제의 '프리미티브 타입 종류와 값의 범위 그리고 기본 값' 주제를 다뤄보겠습니다. 자바 공부를 하면서 프리미티브라는 단어를 접한 적이 없는데요. 'primitive' 로 추정이 되며 해당 단어는 '원시의'라는 뜻을 가지고 있습니다. 자바 변수들을 크게 원시 타입과 레퍼런스 타입으로 나눌 수 있는데 오늘..
· Java
이번에도 백기선님의 자바 스터디 1주차 주제를 가져왔습니다. 감사합니다. JDK란? JDK(Java Development Kit)는 Java 애플리케이션을 만드는 데 사용되는 소프트웨어 개발 환경입니다. Java 개발자는 이를 Windows, macOS, Solaris 및 Linux에서 사용할 수 있습니다. JDK는 Java 프로그램을 코드화하고 실행하는 데 사용 가능합니다. 동일한 컴퓨터에 둘 이상의 JDK 버전을 설치할 수 있습니다. JDK에는 Java 프로그램을 작성하는 데 필요한 도구(그래서 Kit라고 부름)와 이를 실행하는 데 필요한 JRE가 포함되어 있습니다. 컴파일러, Java 애플리케이션 시작 프로그램, 애플릿 뷰어 등이 포함됩니다. 컴파일러는 Java로 작성된 코드를 바이트 코드로 변환합..
· Java
포스팅의 주제는 백기선님의 자바 스터디 1주차 과제에서 가져왔습니다. 자바 공부하기에 좋은 주제들을 제시해주셔서 저도 따라가 보려고 합니다. JVM은 JRE에 속해있고 자바 코드 실행 환경을 제공해주는 가상 머신입니다. 자바 프로그램의 실행 과정을 살펴보겠습니다. 자바 프로그램 실행 과정 프로그램이 사용할만큼의 메모리가 할당되고 이를 JVM이 관리합니다. 자바 컴파일러가 자바 소스코드를 바이트코드(.class 파일)로 변환시킵니다. 그다음 Class Loader를 통해 class 파일들을 JVM에 로딩합니다. 로딩된 파일들을 Execution Engine에서 처리합니다. JVM 구성 요소 자바 프로그램 실행 과정은 전부 JVM에서 일어나는 일입니다. 메모리 관리, Class Loader, Executio..
· Java
JIT 컴파일러 JIT 컴파일러는 JVM의 Execution Engine 파트에 속해있습니다. 예전 자바는 인터프리터 방식만을 사용했다고 합니다. 인터프리터의 경우 명령어를 하나씩 실행하는 방식으로 각각의 명령어 단위로 본다면 실행 속도가 빠르지만 큰 덩어리로 본다면 속도가 느린 방식입니다. 중복되는 코드가 있어도 라인별로 실행하기에 다시 인터프리팅하는 과정이 들어가거든요. JIT 컴파일러는 Just In Time 컴파일러로 인터프리터 방식의 단점을 보완하기 위해 도입되었습니다. 실행 시점에 인터프리터 방식으로 기계어 코드를 생성 하면서 그것을 따로 캐싱해둡니다. 나중에 동일한 부분이 호출된다면 캐싱해둔 코드를 불러다가 쓰면 되겠죠. 이러한 경우에는 인터프리터 방식보다 빠르다고 볼 수 있습니다. 저는 여..
· Java
컴파일러를 통해 자바 클래스 파일이 자바 바이트 코드로 변환되고 이를 JVM이 실행시킵니다. 여기서 바이트 코드란 무엇인지에 대해서 정리해보겠습니다. 바이트 코드란? 바이트 코드는 가상 머신에서 돌아가기 위한 표현 방법입니다. 컴파일러에 의해 변환된 명령어 코드가 1바이트라서 바이트 코드라고 부른다고 합니다. 어떤 플렛폼에도 종속되지 않고 실행될 수 있는 가상 머신용 코드라고 보시면 됩니다. 바이트 코드는 다시 실시간 번역기 또는 저스트 인 타임(just-in-time, JIT) 컴파일러에 의해 바이너리 코드로 변환됩니다. 바이너리 코드와의 차이점 바이너리 코드는 기계가 이해할 수 있도록 구성된 이진 코드입니다. 여기서 차이점이 생깁니다. 바이너리 코드는 기계(CPU)가 읽을 수 있는 형태인 반면 바이트..
· Java
자바 가상 머신(Java Virtual Machine, JVM)은 자바로 개발한 프로그램을 컴파일하여 만들어지는 바이트코드를 실행시키기 위한 가상 머신입니다. 자바 가상 머신 대신 JVM이라고 줄여서 언급하겠습니다. Write Once, Run Anywere JVM은 사용 중인 운영체제와 관계없이 그 안에서 실행될 프로그램을 위한 환경을 조성합니다. 이게 무슨 의미냐면 제가 구구단을 출력하는 프로그램을 만들었다고 가정할게요. 저는 Windows 10 운영체제를 사용하고 있는데, Linux나 Mac을 쓰는 사람들에게 배포를 해도 정상적으로 동작합니다. 즉, 운영체제에 독립적으로 실행 가능한 환경을 제공해줍니다. 이게 가능한 이유는 JRE라는 친구가 있기 때문입니다. 각 운영체제마다 적절한 JRE가 설치되어..
· Java
char형 변수를 int형으로 변환하고 싶을 때, '5'-'0' 이런 식으로 '0'을 빼준 적 있지 않으신가요?? 그 원리에 대해서 알아봅시다. 산술변환이란? "연산 전에 피연산자의 타입을 일치시키는 것" 만약에 float 타입과 int타입이 있다면 int 타입을 float 타입으로 자동 형변환 해줍니다. int i=10; float f=20.0f; float result=f+(float)i; //float result=f+i; 와 동일함 int -> float의 경우(작은 값 -> 큰 값) //형변환 명시를 안해줘도 자동으로 해줍니다. 또한 int타입보다 작은 타입들은 자동으로 int로 변환이 됩니다. 앞의 char타입인 '5' - '0'의 경우 char 타입이 int로 자동 변환됩니다. 문자 '5'는..
· Java
자바를 제대로 활용하고 있는지 의문이 들어서 복습을 하고 있습니다. 복습하는 도중에 새롭게 알게 된 사실등을 정리하므로 해당 포스팅에서는 많은 내용을 다루지 않습니다. 변수란? 하나의 값을 저장하기 위한 메모리 공간에 이름 붙인 것입니다. int age = 5; 위의 예제에서는 age가 변수가 됩니다. 메모리에서 int형에 해당하는 byte만큼 자리를 배정하고 거기에 age라는 이름을 붙입니다. 그 공간에 5라는 값을 담아주면 되겠죠. 참고로 int는 변수의 타입이고 5라는 상수 값은 리터럴이라고 부릅니다. 자바의 상수를 int age 앞에 final이라는 키워드를 붙이면 상수가 되며 값을 수정할 수 없는 점 유의바랍니다. 선언 위치에 따른 변수 클래스 변수, 인스턴스 변수, 지역 변수 이 세 종류는 선..
moongomi
'Java' 카테고리의 글 목록 (3 Page)