본문 바로가기
JAVA개념 시작하기

JAVA 2일차 - 자료형

by 가므로 2022. 10. 25.
1. 주석이란 무엇이며, 종류는?

주석의 종류

주석이란 프로그래밍에 있어 내용을 메모하는 목적으로 쓰인다.소스 코드를 더 쉽게 이해할 수 있게 만드는 것이 주 목적이며, 협업할 때 유용히 쓰인다. 컴파일러와 인터프리터에 의해 일반적으로 무시되어 프로그램에 영향을 주지 않는다.

 

주석의 종류는 행 단위 주석, 블럭 단위 주석, 문서화 주석으로 나뉠 수 있으며 위와 같이 사용할 수 있다.

 

2.주석은 컴파일시 어떻게 되는가?

주석은 컴파일시 실행되지 않는다.

 

3. 들여쓰기는 왜 해야 되는가?

가독성을 위해 들여쓰기를 한다.

 

4. 변수란 무엇인가?

변수의 종류

변수(variable)란 데이터(data)를 저장하기 위해 프로그램에 의해 이름을 할당받은 메모리 공간을 의미한다. 즉, 변수란 데이터(data)를 저장할 수 있는 메모리 공간을 의미하며, 이렇게 저장된 값은 변경될 수 있다.

변수가 갖고 있는 byte 수

변수의 종류와 변수가 갖고 있는 byte 수는 위와 같으며

 // 파일이름 : CharTypeUnicode.java
 // 작성자 : 박지인
 // 작성일 : 2022년 10월 25일
 // 목 적 : 자료형을 출력하는 과정
 
public 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;
		
		short num3 = 10;
		short num4 = 20;
		short result = num3+num4; // int 값으로 설정해줘야한다.
		System.out.println(num1 < num2);
		System.out.println(num1 > num2);
		
	}
}

// 결과
// true
// false
// true
// false

컴파일 에러는 정수형 덧셈 시 자료형에 상관없이 int형 덧셈을 진행하기 때문에 변수를 더해서 선언할 경우에는

int 이상의 변수를 선언해줘야 한다 (int, long과 같은)

반대로 실수를 선언하는 경우에는 실수만 선언해줘야 한다.

 

* 키워드 정리

1) 1byte = 8bit

 

5. 변수선언의 의미는 무엇인가?

변수 사용법

변수에서 변수를 사용하기 위해서는 변수를 선언해야 한다. 변수를 선언하는 이유는 값을 저장하는 공간을 확보하겠다는 이야기다. 정확히는 컴퓨터가 가진 메모리를 사용하겠다고 미리 컴퓨터에게 말하는 것이다.

 

6.  8형제(자료형)을 써보세요(feat.외우세요).

실제 필기용
정리용

java에서는 변수를 이해하고 선언하는 것과 이해하지 못하고 사용하는 것은 실무적으로 큰 차이가 있기에

boolean, char, byte, short, int, long, float, double은 이해해줘야한다.

 

7. int 형 범위는 어떻게 되는가?

변수 범위

int형 범위는 -2,147,483,648 ~ 2,147,483,647이다.

 

8. int num; 을 메모리로 설명해 보세요.
 

자바에 메모리가 저장되는 구조와 원리

이 포스트에서는 자바에서 메모리 구조가 어떻게 되어있고, 값이 어떻게 저장되는지를 살펴본다. 먼저 'a'라는 문자가 메모리에 어떻게 저장되는지를 생각해보자 메모리 구조는 1바이트를 단위

jhleed.tistory.com

int num 설명 그림

 

int num;은 변수 선언문으로 4byte 메모리 안에 데이터 타입 int가 설정되어

변수 num을 선언하라는 뜻이다.

 

그림대로 설명하면 변수가 선언된 순간 메모리에 4byte가 할당되는 것을 의미한다.

 

9.문자가 뿌려지는 원리에 대하여 설명하시오.
 

자바에 메모리가 저장되는 구조와 원리

이 포스트에서는 자바에서 메모리 구조가 어떻게 되어있고, 값이 어떻게 저장되는지를 살펴본다. 먼저 'a'라는 문자가 메모리에 어떻게 저장되는지를 생각해보자 메모리 구조는 1바이트를 단위

jhleed.tistory.com

 

[Java] System.out.println() 동작원리

자바를 시작하며 가장 처음 접하는 메소드 중 System.out.println()이 있다.2

sangwoo0727.github.io

Char ch1 = "한"이 표시되는 원리

문자와 숫자를 1:1대응시켜 숫자로 저장하고 

필요할 때 저장된 숫자를 문자로 변환하여 출력한다

10.아스키 코드에 대하여 설명하시오.

아스키 코드표

ASCII (아스키)는 American Standard Code for Information Intercharge의 약자로, 미국 정보 교환 표준 코드라는 뜻이다. 컴퓨터는 숫자 0과 1 밖에 모르기 때문에 문자도 숫자로 기억을 하게 된다. 보통 아스키 코드 방식을 많이 사용한다.

 

11. 2의 보수법이란?

2의 보수 표현 방식

 

[프로그래밍] 2의 보수 구하기, 왜 2의 보수는 음수인가?

인트로 안녕하세요. 오늘은 프로그래밍의 개념 중 하나인 '보수'에 대해 포스팅하겠습니다. 보수란 '보충해주는 수'라는 의미를 가지고 있습니다. 10진수 10이 있을때, 4의 보수를 구하라고 하면

life-with-coding.tistory.com

 

2의 보수(--補數, 영어: two's complement)란 어떤 수를 커다란 2의 제곱수에서 빼서 얻은 이진수이다. 2의 보수는 대부분의 산술연산에서 원래 숫자의 음수처럼 취급된다.

 

12.컴퓨터에서 음의 정수 표현 방법에 대하여 설명하시오

음의 정수를 시작하기 전에는 보수의 개념이 필요하다. 보수란 쉽게 말해 보충해주는 수이다. 예를 들어 10진수에서 9의 보수를 구한다고 가정해보자. 3의 9의 보수는 3을 더해 9가 되는 6이다. 26의 9의 보수는 73이다. (보수는 각 자리수 별로 계산한다) 보수를 구하는 것은 각각의 자리수에 특정 수를 빼면 특정수에 대한 보수를 구할 수 있다. 123의 9의 보수는 876이다. 그럼 123의 10의 보수는 9의 보수에 +1 을 해주면 된다.(10진수이기 때문에) 877이다.

 

* 키워드 정리

1) 보수 : 쉽게 말해 보충해주는 수이다

 

13. -5를 컴퓨터에서의 2진수 값을 나타내시오.

진수 표현 방식

2진수는 8bit로 표현되기 때문에 1000 0101 = -5다.

 

14. 실수에서 오차가 생기는 원인은 무엇인가?
 

부동 소수점 : 왜 실수형 자료는 오차가 생기는가?

부동 소수점에 대해서 알아봅시다. 컴퓨터 구조 시간에 상세하게 배울 텐데요. 그렇기 때문에, 깊게 하지는...

blog.naver.com

 

부동 소수점 : 왜 0.1을 저장하면 오차가 생길까요?

 부동 소수점은, 가수부와 지수부로 나누어서 저장을 합니다. 즉, (a)*2^b꼴로 저장을 하는데요. 이 때, a는 1보다 크거나 같고, 2보다 작은 실수입니다. 즉, (1.xxx)*2^b 꼴로 저장을 한다는 겁니다. 여

codingdog.tistory.com

컴퓨터에서 부동소수점 표현 방식

우선, 부동소수점을 이해해야 하며, 부동소수점(浮動小數點, floating point)이란 실수를 컴퓨터상에서 근사하여 표현할 때 소수점의 위치를 고정하지 않고 그 위치를 나타내는 수를 따로 적는 것으로, 유효숫자를 나타내는 가수(假數)와 소수점의 위치를 풀이하는 지수(指數)로 나누어 표현한다.

 

오차가 생기는 이유로는 무한소수, 순환소수의 경우 가수부가 표현할 수 있는 비트 수를 넘어가게 되면 손실되는 부분이 생기기 때문, 실수 또한 이진수로 표현하기 때문에 가수부가 1/2^n 꼴로 표현되는 경우만 오차없이 정확하게 값이 계산된다.

 

쉽게 이야기하면 기약분수로 표현했을 때, 분모가 2의 거듭제곱 꼴이 아니라면, 부동 소수점으로 표현하면 오차가 생긴다는 것만 간단하게 정리하고 넘어가면 된다.

 

* 키워드 정리

1) 가수(假數) : 양의 실수 N=a×10n에 상용로그를 취하면 log(N)=n+log(a)가 되는데, 이때 n을 지표(指標), log(a)를 가수(假數)라고 한다. 쉽게 보면 지표 값에 더해지는 수로 이해해도 된다. 

2) 지수 : a^b 에서 b를 뜻한다. 어떤 수를 여러 번 곱한 것을 나타내기 위해 쓰였다.

 

15. 실수의 표현법(고정소수법, 부동소수법)을 설명하시오.

32비트 실수를 고정소수법으로 표현한 방식

실수는 정수부와 소수부로 나눌 수 있다.

따라서 실수를 표현하는 방법은 소수부의 자릿수를 미리 정하고 고정된 자릿수의 소수를 표현하는 것이다.

고정 소수점 방식은 정수부와 소수부의 자릿수가 크지 않으므로, 표현할 수 있느 범위가 매우 적다는 단점이 있다.

32비트 float형 실수를 IEEE 부동 소수점 방식으로 표현 방식

실수는 정수부와 소수부로 나눌 수 있지만 지수부와 가수부로 나눌 수 있다.

이렇게 표현할 경우 이를 부동 소수점 방식이라 표현한다.

쉽게 이야기하면 

고정소수점 = 정수.소수

부동소수점 = 가수+지수

와 같다.

 

* 키워드 정리

1) 가수(假數) : 양의 실수 N=a×10n에 상용로그를 취하면 log(N)=n+log(a)가 되는데, 이때 n을 지표(指標), log(a)를 가수(假數)라고 한다. 쉽게 보면 지표 값에 더해지는 수로 이해해도 된다. 

2) 지수 : a^b 에서 b를 뜻한다. 어떤 수를 여러 번 곱한 것을 나타내기 위해 쓰였다.

 

번외1. 자료형을 출력하는 과정 1
 // 파일이름 : CharTypeUnicode.java
 // 작성자 : 박지인
 // 작성일 : 2022년 10월 25일
 // 목 적 : 자료형을 출력하는 과정

public 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);
		
		
	}
}
	class HelloWorld{
       public static void main(String[] args){
             System.out.println("Hello World");
      }
}


// 과정
// 1.javac CharTypeUnicode.java를 컴파일해서 .class 파일을 생성한다.
// 2.java CharTypeUnicode를 실행한다.

// 결과값
// 헐 확
// 헐 확
// 헐 확

 

번외2. 자료형을 출력하는 과정 2
 // 파일이름 : Boolean.java
 // 작성자 : 박지인
 // 작성일 : 2022년 10월 25일
 // 목 적 : 자료형을 출력하는 과정
public 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);
		
	}
}

// 결과값
// true
// false
// true
// false

- blooean : true, false를 리턴한다 

 

이번 회차와 관련해 참고할만한 사이트
 

부동 소수점(Floating Point)란 무엇인가? — Steemit

안녕하세요. 개발자 모도리입니다. 이번에는 잠시 다른 주제를 다뤄 보겠습니다. (EOS Dapp 개발 공부를 못하고 있습니다.) 부동 소수점이란 무엇인가 알아보도록 하겠습니다. 이 주제 선택한 이유

steemit.com

 

 

코딩교육 티씨피스쿨

4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등

tcpschool.com