Promotion, Casting type 형 변환 연산을 수행하는 코드에서는 같은 타입끼리만 가능하다. 그래서 연산을 수행하기 전에 같은 타입으로 만들어야 하는데 타입 변환을 하는 것을 형변환 이라고 한다. Promotion 자동 형변환, 묵시적 형변환 이라고도 부른다. 작은 데이터 타입에서 큰 데이터 타입으로 형 변환 자바는 타입이 서로 일치하지 않는 경우에도 타입끼리 서로 호환성이 있으면 자동으로 변환을 실시한다. 자동 변환이 가능한 방향 예를 들어 short 타입은 16비트 정수이고, int 타입은 32bit 정수이므로 값이 변하는 문제는 발생하지 않는다. 그렇다면 long 데이터 타입의 메모리 크기는 8byte이고, float 데이터 타입의 메모리 크기는 4byte인데, long 데이터 타입에서..
call by value, call by reference Call by value 메소드 호출 시에 사용되는 인자의 메모리에 저장되어 있는 값(value)을 복사하여 보낸다. int a = 3이 있으면 메소드에서 인자값을 받을 때 a라는 자체에 주소를 받는게 아니라 a의 값인 3을 받아 처리하는 방식이다. 아래에 예시는 call by value에 대한 설명이다. public class Diffrence { static void swapS(String one, String two) { String temp = one; one = two; two = temp; } public static void main(String args[]) { String a = new String("안녕"); String b =..
자바 데이터타입 java에서는 기본적으로 제공하는 8가지 기본 데이터타입(primitive type)이 있다. byte 데이터 타입 정수 타입 메모리 사용 크키 : 1byte (8bit) 저장되는 값의 범위 : -128 ~ 127 위 그림에서 표현된 1byte(8bit)의 공간 중 가장 좌측의 최상위비트(부호비트)를 제외하고 나머지 7개의 비트에 0과 1로 이진수 표현이 가능하다. 7개로 구성된 이진수로 표현 가능한 값은 2^7 으로, 0 ~ 127이다, 이 때 가장 좌측의 최상위 비트가 0이면 양수로 인식한다. 가장 좌측이 최상위 비트가 1이면 음수로 인식하고 표현 가능한 범위는 -128 ~ -1 이다. 0은 양수에서 표현했으므로 음수에서 표현안해도 된다. ex) 11111111 => -1, 10000..
JVM (Java Virtual Machine) Java 프로그램이 플랫폼에 의존하지 않고, 어디서든 동작 가능하도록 하기 위한 Java 가상머신이다. C/C++ 언어는 CPU 아키텍처, 운영체제 등 플랫폼 환경에 의존성을 가지기 때문에, 플랫폼이 바뀌면 제대로 동작하지 않는 문제가 있다. (크로스 컴파일을 통해, 타겟 플랫폼에 맞춰서 컴파일 해줘야함) 크로스 컴파일 참고 : https://kkhipp.tistory.com/160 Java의 경우 이러한 문제를 해결하기 위해 JVM을 만들었다. JVM의 특징 스택 기반의 가상머신 대표적인 컴퓨터 아키텍처인 인텔 x86아키텍처, ARM 아키텍처와 같은 하드웨어가 레지스터 기반으로 동작하는 데 비해 JVM은 스택 기반으로 동작한다. 심볼릭 레퍼런스 기본 자료..