카테고리 없음

[패스트 캠퍼스 자바 완주반] 2. 변수와 자료형

닉네임이 멋이 중헌디 2021. 2. 24. 13:34

1. 컴퓨터에서 자료 표현하기 : 기계어 2진수(양수, 음수)

2. 변수란 무엇인가 : 변수, 선언, 메모리, 이름/ 자료형 (기본형: 아래 4가지 , 참조형)

3. 정수 자료형 

4. 문자 자료형

5. 실수와 논리 자료형

6. 상수와 리터럴, 형 변환 

 

0.프로그램 시작하기

 

프로젝트 만들기 : window - show view - package explorer - create a Java project - name(대문자로) - default location - use sn execution environment JRE - finish

 

패키지 만들기: src - 우클릭 new - package (소스의 묶음) / 또는 ctrl + n - package 찾아서 선택 - name: 소문자로 쓰기

 

클래스 만들기: pacakge - 우클릭 new - class / 또는 ctrl + n - class 찾아서 선택 - name 대문자로 시작, 띄어쓰기 대신에 대문자 - public static void main 선택(실행하기 위한 함수: main 시작점을 위한 것. 항상 필요한 것은 아니다. 데스크탑에서 돌기 때문에 필요. 서버에서 돌면 서버가 클래스를 구동하기 때문에 서버에서는 main 없을 수 있음)

 

폰트 선택하기 - window - preferences - general - appearances - clolor and fonts - edit

 

출력문: main 함수 {} 안에 System.out.println("Hello, Java"); -> 세미 콜론 필수

First - src - hello(패키지) - 자바파일

First - bin - 실행파일hello - class

=> 실행파일이 생긴다

 

컴파일하기: project - build automatically - ctrl s - 컴파일이 된다

 

구동하기: run 버튼 누르기 또는 ctrl f11

 

1. 자료 표현하기 

2의 보수 

 

음수 표현하기
: 2의 보수로 표현 
=> 양수와 음수는 더해서 0이 되어야 한다

보수: 보충해주는 수
ex. 10진수에서 6, 4(합해서 10이 되는 수) / 5,5/ 

이진수에서는 이상하게 더해서 0이 되는 수를 보수라고 한다. 

10진수에 대한 설명이 이상한건가

 

양수를 음수로 만드는 법
ex. 0000 1010 : 8 + 2 = 10 
     1000 1010 : -10 
둘을 더하면 1001 0100 => 더했을 때 0이 안 나온다 
둘을 더했을 때 0이 되어야 음수 
10 + 10 = 100 (앞에 부호 비트가 없으면 값이 0이 되는 것이 2의 보수) 
00001010 (1의 보수: 0,1/ 1,0)
11110101 
더하면 11111111
이를 0으로 바꾸는 방법은 1을 더해주는 것 
그러면 1000000으로 바뀐다 
그러므로 2의 보수는 1의 보수를 만들고+1을 하는 것. 

 

=> 2의 보수: 1의 보수 + 1

 

 

2. 정수 자료형 

정수형 
long 자료형 선언하고 r value넣을 때 
리터럴: 숫자,문자들은 프로그램 안에서 관리된다. 숫자 자체를 무조건 4바이트(int)로 취급한다. 
그런데 4 바이트 안에 들어갈 수 없는 숫자면 다른 곳에 assign한다. 그러므로 다른 자료형으로 취급하라는 의미에서 
식별자 L, l로 long으로 설정해준다. 만약 int 범위 안이면 다른 자료형으로 선언해도 문제 없다. (알아서 처음 설정된 int에서 형변환한다) 
 

 

3. 문자 자료형 

 

cf. ctrl space - 다 안 쳐도 치려던 것이 나온다 

 

문자형

-한글은 유니코드

ex. \u(해당 알파벳, 숫자)     => print하면 유니코드가 아닌 해당 단어가 나온다

당연히 그냥 한글을 변수에 넣어도 print 시 나온다 

 

-숫자, 알파벳은 아스키 (1바이트)

음수 값은 안된다 

=> type를 char, int로 바꾸면 해당 숫자나 알파벳이 나온다 

 

4. 실수 자료형 


-가수 * 밑수의 지수 승  
밑수 : 아마 2진수, 10진수, 16진수 때문에 2, 10, 16이 주로 나타난다 

-float 식별자f
double(8바이트)은 float(4바이트)보다 큰 수다. 그러므로 double로 설정한 3.14를 float로 정의하려고 하면 
틀렸다고 나온다 그러므로 식별자 f로 저장해주면 된다 

-부동 소수점의 오류 
double이던 float던 같음 

 

-지역 변수 var로 자료형 선언하기(컴파일러가 알아서 추론해서 설정)

자바는 컴파일 언어. 그러므로 자료형을 정확히 써서 사용하는 메모리를 명시한다. (몇 바이트를 쓰는지) 

컴파일 언어: 컴파일되서 결과로 기계어가 나오는 
BUT 지역변수의 경우 {}안에서 선언하고 중괄호 내부에서만 사용하므로 
var만 써도 rvalue를 보고 컴파일러가 추론해서 해당 자료형으로 사용한다. (메모리 부여) 

 

cf. 자바10부터 가능 (JDK 10으로 가능 : 프로젝트 우클릭 properties - compiler - 10 선택) 

cf. 변수 - 멤버, 지역, 정적 

 

5. 상수와 리터럴, 형변환 

-상수 
상수 선언 : final + 변수 이름 = r value 

 

-리터럴 : 프로그램 내에서 사용하는 모든 숫자, 값, 논리값 
정수나 실수가 프로그램 내부 상수 풀에 저장되어 있다. 
상수 풀에 저장될 때 정수는 int로 저장(그 이상의 수면 l, L 식별자 넣어야)
실수는 double로 저장됨(float로 설정하려면 식별자 f) 
필요할 때 상수풀에서 그 값을 뽑아서 변수에 대입, 복사
ex. num = 3 (3이라는 정수값은 이미 프로그램에서 사용되는 것으로 상수풀에 들어가있는 리터럴이다. 
상수풀에서 3을 불러와 복사하고 정해준 변수 이름에 대입해주는 것. 하지만 상수풀에 정수, 실수는 
int, double로 디폴트로 저장되므로 int, double의 범위 밖의 다른 자료형으로 바꾸려면 식별자를 써야 한다.)

-형변환 
같은 값이더라도 
변수마다 자료형, 바이트 수, 정수형, 실수형이냐에 따라 비트의 조합이 다름 (지수부, 가수부) 
그러므로 형 변환 가능 
1)묵시적 (덜 정밀한 수에서 더 정밀한 수): byte - short - int - long - float - double 
e.x . byte bNum = 10; 

      int iNum = bNum; (문제 없음. 더 정밀한 수에 넣으니까)
      float fNum = iNum(도 마찬가지) 

 

double dNum 
dNum = float a + int b(첫째, b가 float로 바뀐다 둘째, float인 결과가 double로 형변환된다)

 

2)명시적 (변환되는 자료형 명시. 자료 손실 발생 가능 - 다 담을 수 없으니까):  위의 반대 
e.x. int i = 1000;   (4바이트인 int형이 1바이트인 byte형에 들어갈 수 없음) 
     byte bNum = (byte) i ;  => 명시적 형변환 (int인 i를 byte로) 
하지만 byte는 1바이트 즉 8비트 즉 -2의 7승 ~ 2의 7승 -1의 범위 
그러므로 1000을 담을 수 없어 이상한 결과값이 나온다 

double dNum1 = 1.2 
float fNum = 0.9f 
int iNum = dNum1 + fNum
둘을 더하면 double로 더 정밀한 쪽에 맞춘다(그래야 손실 없음) 
int로 형변환을 해줘야 하므로 두가지 방법 
1)두 항 각각 (int) => 1, 0 
2)더한 값에 (int) => 2.1의 정수형 2 
그러므로 덜 정밀한 숫자로 형 변환되면서 데이터 유실 가능 


 

 

Chapter 02 변수와 자료형 - 01 컴퓨터에서 자료 표현하기.pdf
0.35MB
Chapter 02 변수와 자료형 - 02 변수란 무엇인가.pdf
1.18MB
Chapter 02 변수와 자료형 - 03 정수 자료형.pdf
1.15MB
Chapter 02 변수와 자료형 - 04 문자 자료형.pdf
0.91MB
Chapter 02 변수와 자료형 - 05 실수와 논리 자료형.pdf
0.98MB
Chapter 02 변수와 자료형 - 06 상수와 리터럴, 형 변환.pdf
0.99MB