⭐️ Language/Java
자바 메모리 영역 - Stack, Heap
자바 메모리 영역 - Stack, Heap
2021.07.30개요 모든 프로그램은 메모리에 올라와야 실행할 수 있다. 프로그램이 실행되면 JVM은 OS로부터 메모리를 할당받고, 그 메모리를 용도에 따라서 여러 영역으로 나누어 관리를 한다. Java에서 내가 작성한 코드들이 어떤 영역에서 다뤄지는지 알아보기 위해서 정리한다. Static 영역 Stack 영역 Heap 영역 0. 변수의 종류 메모리 영역을 알기 전에 선언위치에 따른 변수의 종류를 먼저 알아보자 변수는 세 종류로 변수의 선언된 위치에 따라서 클래스변수, 인스턴스변수, 지역변수가 있다. 멤버변수 중 static이 붙은 것은 클래스변수, 붙지 않은 것은 인스턴스변수이며, 멤버변수를 제외한 나머지는 모두 지역변수이다. 각 변수의 생성시기는 아래와 같다. 클래스변수 : 클래스가 메모리에 올라갈 때 인스턴스변수..
break와 continue의 차이
break와 continue의 차이
2021.07.29개요 일단은 조건에 만족시 구문을 벗어나게 하려고 정확히 이해하지도 않고 break, continue를 남발하게 되었지만 내가 원하는대로 프로그램이 흘러가지 않았다. break문과 continue문이 어떻게 작동하는지 정리해보자. 1. break문 break문은 자신이 포함된 가장 가까운 반복문을 벗어난다. 다음 그림을 보고 break;문이 어느 범위를 벗어나고 어떤 결과가 출력될지 예상해보자. 결과는? 1번 2번 4번 3번은 출력되지 않았다. 3번이 출력될 줄 알았다면 아마도 if조건문을 반복문으로 착각하여 "if(){ }문을 벗어나겠구나!"라고 생각했을 것이다. break문은 현재 while반복문 내 if조건문에 포함되어 있다. break;문을 만나게 되면 가장 가까운 반복문인 while문 전체를 벗..
자바 형변환(Casting)
자바 형변환(Casting)
2021.07.28개요 형변환 하는 것은 간단하지만 '값 손실' 일어나는 부분이 잘 이해가지 않았다. 형변환 내용을 간단하게 정리하고 값 손실은 어떻게 일어나는지 살펴보자. 형변환 변수 또는 상수의 타입을 다른 타입으로 변환하는 것. 프로그램을 작성 시 값의 대입이나 연산을 수행할 때 같은 타입끼리만 가능하다. 서로 다른 타입 간의 연산을 수행해야 할 때는 연산을 수행하기 전 타입을 일치시켜야 한다. 일치시키기 위해서 변수나 리터럴의 타입을 다른 타입으로 변환하는 것을 '형변환'이라고 한다. 형변환이 어떤 것인지 쉽게 이해하기 위한 대표적인 예시로 물을 큰 그릇과 작은 그릇 사이에서 옮긴다는 가정이 있다. 타입의 크기가 1byte, 2byte, 4byte, 8byte으로 제각각인 것처럼 서로 크기가 다른 그릇이 있다고 생..
자바 기본형의 종류와 저장범위
자바 기본형의 종류와 저장범위
2021.07.24개요 자바 기본형의 저장범위는 각 자료형 비트의 크기에 따라 다르다. 어떠한 방식으로 저장되는지 이해하고 저장 가능한 범위를 외우기 보다는 계산하면 알아낼 수 있도록 정리를 하고자 한다. 기본형(primitive type) 자바의 기본형에는 8개의 타입이 있으며 논리형, 문자형, 정수형, 실수형으로 구분할 수 있다. 정수형 저장 가능한 범위는 아래의 식과 같다. 이 식을 아래의 byte자료형에 대입하여 저장 가능한 범위를 알아보자 이를 통해서 정수형 byte의 저장 가능한 범위가 -128 ~ 127임을 알 수 있다. 분류 자료형 저장 가능한 범위 크기 논리형 boolean false, true 8bit / 1byte 문자형 char \u0000 ~ \uffff (0~65535) 16bit / 2byte ..
JDK, Open JDK설치 및 환경변수(PATH) 설정
JDK, Open JDK설치 및 환경변수(PATH) 설정
2021.04.14개요 자바 개발도구(JDK)를 설치하는 방법으로 Oracle JDK와 OpenJDK 두 가지 방법이 있다는 것을 알게 되어서 정리하고자 한다. Oracle JDK, Open JDK 차이점 우선 Oracle JDK와 Open JDK 두 개의 차이점이 무엇인지 궁금하다면 다음 글을 참고하면 좋다. jsonobject.tistory.com/395 Java 유료 논쟁, Oracle JDK와 OpenJDK의 차이 정리 Oracle JDK와 OpenJDK Java 애플리케이션을 실행하기 위해서는 JVM이 필요하고 컴파일하기 위해서는 JDK가 필요하다. 일반적으로 JDK를 설치하면 JVM(Hotspot이라고도 표현, Java 기술의 핵심)도 함께 설치된 jsonobject.tistory.com Oracle JDK 설..
맥에서 JDK 환경변수(PATH) 설정
맥에서 JDK 환경변수(PATH) 설정
2021.04.13개요 자바의 정석(기초편)중 '자바 개발도구(JDK) 설정하기' 부분에서 PATH(환경변수) 설정에 어려움을 겪었다. PATH가 무엇인지 보다 정확히 이해하기 위해서 맥에서 PATH를 설정하는 법을 정리해보자. PATH란 무엇인가? PATH(환경변수)는 컴퓨터 운영체계에서 특정한 파일이 있는 위치를 나타내는 경로이며 어떤 디렉토리에서도 실행할 수 있는 파일들을 찾기 위한 경로를 미리 설정해두는 데 쓰인다. 언제 쓰이는가? 터미널에서 Hello.java파일을 사용하기 위해 /Library/Jdk1.8/work 디렉토리에서 작업을 하고 있다고 해보자. Hello.java(소스파일)를 Hello.class(클래스파일)로 컴파일하는 작업을 하기 위해 javac.exe(자바 컴파일러)를 실행시켜야 한다면 터미널에..
맥에서 자바 개발도구 JDK 및 이클립스 설치
맥에서 자바 개발도구 JDK 및 이클립스 설치
2021.01.20개요 여러가지 프로그래밍 언어 중 자바의 영향력은 어느 정도인지 알아본다. 어떤 버전을 다운로드 받는게 적합한지 생각해본다. 자바를 다루기 위한 개발도구 Eclipse 설치방법을 알아본다. 설치하기 전, 자바의 영향력 간단히 알아보기 프로그래밍 언어 중 인기가 높은 Java는 국내에서도 많은 개발자들이 웹 서버 개발, 안드로이드 앱 개발을 위해 사용하고 있으며 다양한 레퍼런스를 보유하고 있는 장점이 있다. Java와 C언어가 프로그래밍 점유율 1, 2위를 다투고 있다. 출처 : Tiobe 최신 버전을 두고 구(舊)버전을 설치하는 이유 자바를 학습하고자 자발 개발도구(JDK)를 설치하면서 궁금한 점이 생겼다. "자바 버전이 많은데 무엇을 설치해야 하지?" 자바 버전 표기법 Java SE Developmen..