728x90

~정보를 어디에 넣고 싶은데~

헷갈렸던 변수개념을 다시 잡는데 좋았다!!

 

1. 네가지 종류의 변수는 어떻게 구분하나요?

 

변수란, 고정된 상수와 달리 변화를 줄 수 있는 값이다. 

자바에는 네 가지 변수가 있다. 

 

지역변수 local variables -> 중괄호 범위 안에서 선언된 변수로 그 범위 밖으로 나갈 수 없다. 

매개 변수 parameters -> 메소드나 생성자에게 넘겨주는 변수이다. 

인스턴스 변수 instance variables -> 끼약. 이 개념을 놓치고 있었다. 메소드 밖, 클래스 내부에 선언된 변수로 static 예약어가 붙지 않았다!!

클래스 변수 class variables -> 마찬가지로 메소드 밖, 클래스 내부에 선언된 변수이지만 static 예약어가 붙는다!!!

 

 

생명 주기는 

 

지역변수 local variables -> 선언된 중괄호 내에서만 유효!

매개 변수 parameters -> 메소드 호출될 때만!

인스턴스 변수(또는 멤버 변수) instance variables -> 객체가 생성될 때 생명이 시작되고, 그 객체를 참조하고 있는 다른 객체가 없으면 소멸된다.

클래스 변수(또는 정적 변수) class variables -> 객체가 생성될 때 생명이 시작되고, 자바 프로그램이 끝날 때 소멸된다. ( 아 그래서 static 사용을 남발해서는 안되는구나. 관리가 어려워지겠구만~~ )

 

+ 자바에는 가비지 콜렉터가 있어서 얘가 알아서 메모리에서 사용하지 않는 변수를 없애준다고 한다. 

 

2.변수 이름 지을 때 대문자로 시작해도 되나요?

되지 않나? 상수값을 담는 변수를 만들때 모두 대문자..

아니면 보통 소문자로 시작!

 

3. 자료형에는 기본 자료형과 어떤 자료형이 있나요?

 

크게 보면 자바에는 

기본 자료형 Primitive Data Type , 참조 자료형 Reference Data Type 두가지가 있다. 

 

참조 자료형에서는 String을 제외하고 클래스로 객체를 생성하고 초기화할 때 new 연산자를 필수로 사용해야한다. 

String bookName = new String("Basic Java"); 물론 클래스도 다음과 같이 정의해도 상관없다. 

 

4. 기본 자료형에는 몇 가지가 있나여?

 

기본 자료형은 8개다. -> 책에서 8개에 대한 드립이 나오는데 저자의 잔잔개그가 마음에 든다.ㅋㅋㅋㅋ

 

기본 자료형은 크게 

숫자, boolean 타입으로 나뉜다. 

숫자는 다시 

정수형, 소수형으로 나뉜다. 

 

정수형: byte short int long char

소수형 float Double

기타: boolean

 

char을 제외하고 해당 타입의 변수가 정해지니 "비실한 FD" "bsil FD" 로 외우라고 한다ㅋㅋㅋㅋ감사합니당...아주 잘외워집니다!!ㅋㅋㅋ

 

6. byte는 몇 비트(bit)로 되어 있나요? 

byte는 8비트의 부호가 있는 타입이다. 

 

7. byte는 왜 만들었을까요?

적은 공간에 보다 많은 내용을 저장하기 위해서! 

일번적으로 데이터 저장 목적이 아닌 계산 시에는 int나 long을 쓴다. 

그 이유는!

byte의 최대값 127

최소값 -128인데 

 

최대값에 127 에 1을 더하면 -128이 되고 

최소값에 -128dp 1을 빼면 127이 된다. 그 이유는 오버플로우 때문!

그래서 계산의 안전성 고려한 결과이다. 

 

오버플로우란? 

: 표현가능한 범위를 벗어난 값을 말하며 돌림판처럼 돌아가는 현상을 말한다. 

컴퓨터는 값을 처리해야하는데 범위에서 벗어났으니 돌아가서 다시 시작하는 것이다. 

 

그리고 컴퓨터는 0과 1로 표현하는 2진법을 따른다. 그래서 모든 자바의 숫자 타입은 2의 배수로 그 범위가 그려진다. 

Type        Bits      Range of Values
----------------------------------------------------------------------------------------
byte         8bits    -2^7 ~ 2^7-1 (-128 ~ 127)
short       16bits    -2^15 ~ 2^15-1 (-32768 ~ 32767)
int         32bits    -2^31 ~ 2^31-1 (-2147483648 ~ 2147483647)
long        64bits    -2^63 ~ 2^63-1 (-9223372036854775808 ~ 9223372036854775807)
float       32bits    0x0.000002P-126f ~ 0x1.fffffeP+127f
double      64bits    0x0.0000000000001P-1022 ~ 0x1.fffffffffffffP+1023  
char        16bits    \u0000 ~ \uffff (0 ~ 2^15-1) * 자바에서 unsgined로 동작하는 자료형 (0 ~ 65,535)
boolean      1bit     true, false

참고 : https://jdm.kr/blog/213

8. int와 long 중 어떤 타입이 더 큰 숫자를 처리할 수 있나요?

long

9. 소수점을 처리하는 타입은?

float, double 이 있다. 

이 둘은 32비트와 64비트로 제공할 수 있는 범위를 넘어서면 그 값의 정확성을 보장못해서 중요한 계산을 할 때는 써서는 안된다. 

java.math.BigDecimal이라는 클래스를 하용하면 정확한 계산을 할 수 있다. 

소수점 처리시 보통 double을 많이 사용한다. 

 

10. char은 정수형인가요?

 

char는 8비트 정수형 처리 변수로 character(문자)의 약자이다. 

그런데 문자열과 관련된 부분에서 사용된다. 

11.  a라는 것을 char로 정의할 때 어떤 기호로 감싸주어야하나요?

''

12. true 와 false 두개의 값만 가지는 타입은 ?

boolean

 

 

728x90

+ Recent posts