Java02

ONLY·2022년 10월 25일
0

Java_질의응답

목록 보기
2/14
post-thumbnail

1. 주석

1) 주석의 목적

주석의 목적은 소스 코드에 대한 설명을 하기 위한 것이다. 주석은 컴파일시 코드 내용으로 인식되지 않고 무시되어 연산 결과에 반영되지 않아 프로그램에 영향을 주지 않는다.

2) 주석의 종류

/*

범위를 지정해 문단을 주석처리 할 때

주석을 길게 작성할 때 사용한다.

*/
//문장(행)을 주석처리 할 때

//짧은 주석을 작성할 때 사용한다.

3) 단축키

행 주석 단축키 ctrl + / (해제 동일)
범위 주석 단축키 ctrl + shift + /

2. 들여쓰기

각각의 블록(class, method 등)들의 포함 관계를 보여주어 이해를 빠르게 하기 위해서 이다. (가독성)

3. 변수

1) 변수란

변수(variable)란 변하는 수를 의미한다. 변수의 선언은 메모리 할당 이므로, 변수는 메모리 공간에 차지하는 하나의 방을 의미한다고 할 수도 있다. 변수의 값은 프로그램 실행 도중 계속 변할 수 있다.

2) 변수의 선언

변수 선언은 메모리 공간 할당을 의미하며 (1) 크기가 Data type(자료형)에 의해 결정되고, (2) 내용이 어떤 타입이 들어갈 것인지(int, float, double...)결정되는 것을 의미한다.

3) 변수선언의 예시

class UseVariable {
	public static void main(String[] args) {
    	
        int num1;
        num1 = 10;
        
        int num2;
        num2 = 20;
        
        int num3 = num1 + num2;
        
        System.out.println(num1 + "+" + num2 + "=" + num3);
        }
}

4. 자료형

1) 자료형의 종류

int형의 범위
1byte = 8bit 2의8승 256, 2byte = 16bit 2의 16승 1024
정수를 표현하는 int 자료형은 크기가 4byte로 32bit 2의 32승, 약 -21억~21억의 범위가 표현이 가능하다. (long형은 약 -9천2백경~9천2백경)

2) 자료형의 활용

(1) double

class VariableDecl {
	public static void main(String[] args) {
    	
        double num1, num2;
        double result;
        
        num1 = 1.00001;
        num2 = 2.00001;
        result = num1 + num2;
        
        System.out.println(result);
    }
}

(2) short

class OperatePromotion {
	public static void main(String[] args) {
    
    short num1 = 10;
    short num2 = 20;
    int result = num1 + num2;
    
    System.out.println(result);
    }
}

(3) char

class CharTypeUnicode {
	public static void main(String[] args) {
    	
        char ch1 = '헐';
		char ch2 = '확';
		char ch3 = 54736; //문자 헐 의 유니코드
		char ch4 = 54869;
		char ch5 = 0xD5D0;
		char ch6 = 0xD655;
		
		System.out.println(ch1 + " " + ch2);
		System.out.println(ch3 + " " + ch4);
		System.out.println(ch5 + " " + ch6);
    }
}

(4)boolean

class Boolean {
	public static void main(String[] args) {
		
        boolean b1 = true;
		boolean b2 = false;
		
		System.out.println(b1);
		System.out.println(b2);
		
		int num1 = 10;
		int num2 = 20;
		
		System.out.println(num1 < num2);
		System.out.println(num1 > num2);
        }
 }

5. int num;

정수형 데이터타입(자료형)으로 4byte의 메모리공간을 할당받는 변수 num을 선언한다.

int num;은 int형 타입의 num변수를 선언한다는 것으로, 이것은 int타입의 4byte만큼을 이 변수를 위해 메모리 공간을 할당한다는 것이다. 즉, num 변수의 메모리 공간이 4byte만큼 확보된다는 것을 의미한다.

6. 문자가 뿌려지는 원리

1) 인코딩

a 라는 문자가 char 타입이라 컴퓨터가 알아 들을 수 있도록 ASK2코드(유니코드)표를 참고해 이진수로 변환되어 컴퓨터(cpu)에 전달된다.

2) 디코딩

컴퓨터가 가진 이진수를 데이터 타입을 참고하여 같은 값을 가지고 있는 폰트를 찾아 화면에 출력한다.

7. 아스키코드

1) 아스키코드

미국정보교환표준부호(American Standard Code for Information Interchange), 줄여서 ASCII(아스키)코드는 1960년대 미국에서 영문 알파벳 대소문자 52개와 10개의 숫자, 32개의 특수 문자, 공백 등을 비롯해 95개의 출력 가능한 문자들로 총 128개로 이루어져 있다.

2) 유니코드

한국어나 일본어, 중국어 등 영어 외의 문자들을 표현하기 위해 ASCII에 추가된 유니코드(Unicode: UTF-8)가 사용되고 있다. Java는 유니코드표를 사용한다.

8. 2의 보수법

보수(complement)란 두 수의 합이 진법의 밑수가 되게 하는 수를 말한다. (10진수에서 6의 보수는 4, 7의 보수는 3) 컴퓨터에서는 음의 정수를 표현하기 위해서 2의 보수법을 사용한다.

2의 보수는 양수 2진수의 1의 보수를 구한 뒤 거기에 1을 더해 음수를 표현하는 방법을 말한다. 이 때 8비트를 넘어가는 맨 앞자리의 수는 전산적으로 버려주게 된다.

이진수의 1의보수는 비트를 반전시켜 얻을 수 있다. (0→1, 1→0)

9. 음의 정수

1) 음의 정수 표현하기

(1) 맨 앞에 부호 비트를 1비트 사용한다. (**0 양수, 1 음수)

하지만 +25와 -25를 더했을 때 0이 나와야 하는데 부호 비트만 바꾸면 0이 나오지 않는다는 문제가 생긴다. 그래서 2의 보수법이 사용되기 시작했다.

(2) 2의 보수법 사용

1의보수 +1 :맨 앞은 자동으로 부호 비트가 맞춰진다.

2) -5의 컴퓨터에서의 2진수 값

-5의 2진수 값은 2의 보수법에 의해 구한 결과로 '11111011'이 나온다.

계산방법은 다음과 같다.

00000101

+5의 1의 보수: 11111010

1을 더함(+5의 2의 보수): 11111011

+5 : 00000101

-5 : 11111011

0 : 00000000

10. 실수

1) 오차가 생기는 원인

실수는 두 실수 사이에는 무한대의 실수가 존재한다는 특성이 있다.

하지만 컴퓨터에 연산을 위해서는 무한한 실수를 유한한 메모리에 올리는 과정이 필수적이다. 그래서 실수 전체를 다 담을 수 없기 때문에 실수의 범위를 정해서 최대값과 최소값을 주고 그 사이에 표현할 수 있는 값을 미리 지정해 두고 근사값으로 사용한다.

그렇기 때문에 실수에는 오차가 존재할 수 밖에 없다.

2) 실수의 표현법

정수를 이진수로 표현하는 방법과 실수를 이진수로 표현하는 방법이 판이하게 다르기 때문에 정수와 실수의 데이터 타입을 나눌 수 밖에 없다.

(1) 고정소수점

소수점이 고정되어 있다는 의미이다.

1.0124,0.5421, 0.1234, 0.1234, 0.2648

(2) 부동소수점

소수점이 떠다닌다는 의미이다.

1.123x10^-1, 1.234x 10^-2, 0.1 1x10^-1, 0.001 1x10^-2 .....

3.4e3 -> 3.4 x10^3 (부동소수점) = 3400.0

3.4xe-3 -> 3.4x10^-3 (부동소수점) = 0.0034

0개의 댓글