본문 바로가기

개발/Java

변수(Variable)와 자료형(Data Type), 연산자(Operator)

반응형

용어 정리

선언 - 프로그램에서 말하는 선언이란, 컴파일러에게 무엇인가를 알리는 행위를 의미한다. 

자료형(data type) - 자바의 문법을 구성하는 단어를 의미

MSB(Moist Significant Bit) - 부호를 결정짓는 가장 왼쪽에 존재하는 비트를 가리켜 MSB라고 한다. 이 비트의 설정에 따라서 값의 부호도 달라지고, 나머지 일곱 비트의 해석방식도 달라지기 때문이다.

리터럴 - 변수에 값을 대입하기 위해 선언하는 값을 말한다.
: 소스 코드의 고정된 값을 대표하는 용어다. 거의 모든 프로그래밍 언어는 정수, 부동소수섬 숫자, 문자영, 불린 자료형과 같은 용어를 가지고 있다.
: 프로그래밍 언어에서 직접 값을 나타내는 지구단위

02 변수(Variable)와 자료형(Data Type)

02-1 변수의 이해와 활용
■ 메모리 공간의 활용과 변수와의 관계 
변수 "데이터의 저장과 참조를 위해 할당된 메모리 공간"
메모리는 데이터를 저장하고 저장된 데이터를 참조하기 위한 물리적 장치이기 때문에, 메모리 공간의 활용은 “데이터의 저장 및 참조”라고 정리할 수 있다. 

■ 변수(Variable)에 대한 간단한 이해 
int num;
-> "10진수 정수를 저장할 메모리 공간을 할당하겠습니다."
선언 - 프로그램에서 말하는 선언이란, 컴파일러에게 무엇인가를 알리는 행위를 의미한다. 
자료형(data type) - 자바의 문법을 구성하는 단어를 의미

■ 자료형의 종류와 구분

- 정수표현
- Byte, short, int, long
- 실수표현
- Float, double
- 문자표현
- Char
- 참과 거짓의 표현
- boolean

■ 변수의 이름을 짓는 방법 
- 변수의 이름은 숫자로 시작할 수 없다.
- $과 _이외에 다른 특수문자는 사용할 수 없다.
- 키워드는 변수의 이름으로 사용할 수 없다.

02-2 정수 표현방식의 이해
■ 정수를 표현하는 방식 
MSB(Moist Significant Bit)
부호를 결정짓는 가장 왼쪽에 존재하는 비트를 가리켜 MSB라고 한다. 이 비트의 설정에 따라서 값의 부호도 달라지고, 나머지 일곱 비트의 해석방식도 달라지기 때문이다.

■ 음의 정수 표현방식
2의 보수 취하기 
2의보수 ? 1. 1의 보수 
               2. +1해주기

02-3 실수 표현방식의 이해 
모르겠음 

02-4 자료형의 이해
■ 정수 자료형 byte, short, int, long
자바는 총 4개의 정수 자료형을 제공한다. 따라서 이 자료형의 이름을 기반으로 변수를 선언한다. 
선언으로 잘당된 메모리 공간에는 앞서 설명한 정수의 표현방식을 기준으로 값을 저장 및 참조하게 된다. 
따라서 short로 선언하면 2바이트 메모리 공간이 할당되고, int로 선언하면 4바이트의 메모리공간이 할당된다. 

일반적으로 CPU는 int형 정수연산을 가장 고속으로 처리하게끔 설계되어 있다. 따라서 자바는 정수형 연산을 진행할 때(덧셈이건, 뺄셈이건), 모든 피연산자를 int형으로 변환하는 과정을 거친다. 
따라서 short형 변수에 저장된 값을int형 데이터로 변환해햐 하는 첫번째 코드 블록보다, 두 번째 코드 블록의 실행속도가 빠르다. 

--> long형에서의 int형 변환은 일어나지 않는다. 따라서 long형 데이터를 피연산자로 하는 연산 시에는 int형으로의 자료형 변환이 일어나지 않는다.

--> 그럼 byte와 short는 어디에 쓰일까?
byte와 short가 필요 없어 보인다. 
우리가프로그램상에서 표현하는 데이터들 중에서는 연산이 중심이 되는 데이터들도 있지만, 연산보다는 데이터가 지니는 값 자체가 중심이 되는 경우도 있다. 
예를들어서 게임 캐릭터의 움직임 표현을 위한 3D 그래픽 정보나, 노래와 같은 음원 정보를 저장하려면 수식만, 수백만 이상의 정보를 저장해야 하기 때문에 이러한 경우에는 연산보다 데이터의 표현 중심이 된다. 
이러한 경우 그 크기에 따라 int보다 작은 byte, short를, 그리고 double보다는 float으로 데이터를 표현한다. 

■ 문자 자료형 char
문자를 숫자로 표현하기 위한 몇몇 표준이 프로그래밍 언어에 상관없이 만들어졌는데, 자바는 이중에서 유니코드(unicode)라는 표준을 근거로 문자를 표현하고 있다. 
 유니코드는 문자 하나를 2바이트로 표현하는 문자체계이다. 2바이트로 표현할 수 잇는 데이터의 수는 2의 16승 개이므로 6만개 이상 문자표현이 가능하다는 계산이 나온다. 따라서 유니코드는 세계의 모든 언어를 표현할 수있는 문자체계이다. 
기억해야할 내용 
- 문자는 작은 따옴표로 표현이 된다. 
- char형 변수는 문자의 저장을 위해 사용된다. 
- char형 변수에 실제 저장되는 것은 저장되는 문자의 유니코드 상수 값이다. 
- System.out.println으 char형 데이터, 즉 문자를 적설히 출력해 낸다. 

■ 참과 거짓을 표현하기 위한 자료형 : boolean
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
03 상수와 형 변환
03-1 자료형을 기반으로 표현이 되는 상수

■ 상수
int num = 1+5;
System.out.println(2.4+7.5);
상수도 메모리 공간에 저장이 된다. 
특징
- 이름이 없다. 
- 이름이 없으므로 메모리에 저장된 상수의 값을 변경시킬수 없다. 
  (이름이 없기 때문에 메모리 공간의 접근 자체가 불가능하다.)

기본적으로 모든 정수혈 상수는int형으로 표현 및 저장한다. 
기본적으로 모든 실수형 상수는 double형으로 표현 및 저장합니다. 

상수를 가리켜 literal이라도고 합니다. 
자바에서 말하는 상수는 자료형을 기반으로 메모리 공간에 저장됨. 그자체로 데이터로 인정을 해야 한다 . 그래서 상수르 가리켜 리터럴이라고 표현한다. 리터럴과 상수는 거의 동일한 의미로 사용이 된다. 

리터럴 : 변수에 값을 대입하기 위해 선언하는 값을 말한다.
: 소스 코드의 고정된 값을 대표하는 용어다. 거의 모든 프로그래밍 언어는 정수, 부동소수섬 숫자, 문자영, 불린 자료형과 같은 용어를 가지고 있다. 
: 프로그래밍 언어에서 직접 값을 나타내는 지구단위

■ 접미사 이야기 

예제를 보여주면서 테스트 
SuffixConst.java


03-2 자료형의 변환
■ 자동 형변환(Implicit Cionversion)
byte -> short -> int -> long -> float -> double
            char  ->
■ 명시적 형 변환(Explicit Conversion)
자동 형변환 규칙에 위배되는 상황임에도 불구하고 형변환이 필요한 경우에는 '명시적 형변환'을 통해서 형 변환이 이뤄지도록 문장을 구성할 수 있다. 


-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
04 연산자(oprator)

04-1 자바에서 제공하는 이항 연산자들
■ 자바의 연산자 



■ 대입 연산자(=)와 산술연산자(+,-,*,/,%) 

■ 복합 대입 연산자

관계연산자 (<, >, <=, >=, ==, !=)


■ 논리 연산자 



&& 연산자



|| 연산자



!





04-2 자바에서 제공하는 단항 연산자들
■ 부호연산자로서의 +와 -
이 두 기호는 단항 연산자로 부호연산의 기능도 제공한다. 

- 단항연산자로서 -는 부호를 바꾸는 역할을 한다. 
- 단항연산자로서 +는 특별히 하는 일이 없다. 

■ 증가, 감소 연산자(++, --) : prefix/postfixw
postfixOp.java
prefixOp.java

04-3 비트와 관련이 있는 연산자들
비트 연산자 그리고 비트 쉬프트 연산자 
CPU에게 있어서 곱셈과 나눗셈은 매우 부담이 되는 작업이지만, 비트를 이동시키는 연산은 전혀 부담이 되지 않은 작업이다. 따라서 CPU의 연산능력이 약한 소형 컴퓨터상에서 동작하는 프로그램의 구현에서는 2의 배수 단위로 값을 증가 및 감소시켜야 하는 경우에 실제로 비트 쉬프트 연산자를 사용하기도 한다. 그리고 비트 연산자와 비트 쉬프트 연산자는 그 활용의 범위를 한정지을 수 없을 만큼 다양하게 활요잉 된다. 때문에 프로그래머의 구현 능력을 판단하는 기준이 바로 비트 쉬프트 연산자의 활용 능력을 꼽는 분들도 있다. 


반응형
LIST

'개발 > Java' 카테고리의 다른 글

Java Exception처리  (0) 2018.08.13
Collection  (0) 2018.08.13
Exception 처리  (0) 2018.05.19
용어정리(클래스패스, static변수, 정보은닉, 캡슐화)  (0) 2018.05.19
객체지향프로그래밍의 이해와 자바의 이름규칙  (0) 2018.05.19