본문 바로가기

Java

(54)
[Java] 연산자 이해와 활용 연산자와 피연산자연산자(operator)는 연산(operation)을 수행하는 기호를 말한다.연산할 식에서는 연산자(operator)와 피연산자(operand)가 존재한다. 연산자는 다양한 연산자(산술, 비교, 논리, 대입, 증감, 비트 연산자)가 있고, 연산자는 연산할 대상인 피연산자(변수, 상수, 리터럴, 수식)가 필요하다. 아래의 식 x + y는 왼쪽의 + 연산자가 변수 x 와 상수 y 에 대한 결과 값 12를 반환한다. 이렇게 연산자는 피연산자로 연산을 수행하면 항상 하나의 결과 값을 반환한다. 그리고 반환된 결과 값을 대입 연산자(=)을 통해 result 변수에 저장한다.int x = 5;final int y = 7;int result = x + y; // +는 operator, x와 y는 op..
[Java] 데이터 손실과 정확성을 위한 타입 캐스팅 타입 캐스팅 (Type Casting)의 필요성모든 변수(Variable)와 리터럴(Literal)에는 타입이 존재한다. 타입마다 메모리 공간 할당량과 저장 형식이 다르다. 따라서 동일한 타입들만 연산이 가능하다. 이로써 다른 타입끼리의 연산이 필요할때, 형변환(Type Casting)을 통해 타입을 일치시킨 후에 연산을 해야한다.타입 캐스팅 방법타입 캐스팅 방법기본형(Primitive Type)에서 boolean 타입을 제외하고 나머지 타입들은 서로 타입 캐스팅이 가능하다. 그리고 참조 타입과 기본 타입의 타입 캐스팅은 저장한 값의 종류 달라 불가능하다. 참조 타입은 데이터의 주소를 저장하고, 기본 타입은 데이터 값 자체를 저장하고 있다. 아래처럼 타입 캐스팅은 변수명 왼쪽에 타입 캐스트 연산자인 (t..
[Java] 상수(Constant)와 리터럴(Literal) 상수 (Constant)상수란?상수(constant)는 변수(variable)와 마찬가지로 값을 저장할 수 있는 공간이지만, 변수와 달리 한번 값을 저장하면 다른 값으로 변경이 불가하다. 상수를 final 키워드 앞에 붙여서 선언하며, final은 지정된 저장 공간의 마지막 쓰기 값이란 뜻이다.final int MAX_INT = 1000;상수는 선언과 동시에 반드시 초기화해야한다. 선언 이후에 값을 변경하지 못하므로 의미가 없기때문이다. 또한 상수명은 대문자(upper case)로 하는게 암묵적인 관례이다.리터럴 (Literal)리터럴이란?수학에서는 변하지 않고 항상 일정한 수가 상수이다. 그러므로 1, 3, 'A' 값들은 상수이다. 프로그래밍에서는 '상수를 값을 한번 저장하면 변경 할 수 없는 공간'이..
[Java] 변수(Variable) 변수(Variable)란?수학에서 변수는 변하는 수이지만, 프로그래밍에서는 데이터을 저장할 수 있는 메모리 공간이고 데이터는 변경이 가능하다. 하나의 변수에 단 하나의 값만 저장이 가능하므로, 새로운 값을 저장하면 기존의 값을 없어진다.변수의 자료형 (Data Type of Variable)변수는 데이터의 타입에 따라 데이터가 저장될 공간의 크기와 저장 형식을 정의한 것이 자료형(Data Type)이다.자료형에서 표현에 대한 종류는 크게 정수형(int, short, byte, long), 실수형(float, double), 문자형(char), 논리형(boolean)으로 구분된다. 자료형에서 저장 방식에 대한 종류는 기본형(Primitive Type)과 참조형(Reference Type)으로 구분된다. 정..
[Java] 부동 소수점 방식의 원리와 오차 실수형의 표현 방식컴퓨터에서 실수를 표현하는 방식으로는 대표적으로 고정 소수점 방식(Fixed-Point Number Representation)과 부동 소수점 방식(Floating-Point Number Representation)으로 나눌 수 있다.고정 소수점 방식 (Fixed-Point Number Representation)고정 소수점 방식은 정수부와 소수부의 자리수를 고정하는 것이다. 아래의 그림처럼 정수부는 15비트이고 소수부는 16비트로 고정되어있다.  이렇게 되면 정수부는 -2¹⁵ ~ 2¹⁵-1 밖에 표현을 못한다. 또한 이진수 소수점수 101.100101와 같이 소수부가 6 자릿수가 나올 경우에 나머지 10 자릿수가 낭비하는 메모리 공간된다. 이러한 메모리 공간 낭비를 줄이고 효율적으로 ..
[Java] 정수형과 지역 변수 배열의 저장 방식 정수형 (Integer Type)의 종류정수형(Integer Type)에는 int, byte, short, long 타입이 있다. 각 타입의 특징은 다음과 같다.int일반적으로 정수형에서는 4byte의 int를 사용한다. byte, short 보다는 int가 연산에 최적화 되어있다. 그 이유는 아래에 설명하였다. bytebyte는 주로 이진 데이터를 다룰때 사용한다. 예전에는 CPU 32bit 아키턱처가 대다수 존재할때는 1byte는 4비트였다. 현재는 1byte는 8비트이다. shortC언어와 호환을 위해 추가되었고, 4byte인 int 기준으로 짧아서 short는 2byte이다. longlong은 8byte로, 4byte인 int 기준 보다 길어 long이다.byte, short 보단 intbyte..