본문 바로가기
  • think normal
새로워지기/서른의 생활코딩

4일차) 변수 정리 예제 _20180531 am

by 청춘만화 2018. 5. 31.

package z_exam;

public class exam02 {

public static void main(String[] args){

/*[2-1] 다음 표의 빈 칸에 8개의 기본형(primitive type)을 알맞은 자리에 넣으시오.*/

System.out.println(" [1번 답]");

System.out.println(" 1bite 2byte 4byte 8byte ");

System.out.println(" 논리형 boolean ");

System.out.println(" 문자형 char");

System.out.println(" 정수형 byte short int long");

System.out.println(" 실수형 float double");

System.out.println("\n");

/*[2-2] 주민등록번호를 "숫자"로 저장하고자 한다.

이 값을 저장하기 위해서는 어떤 자료형(data type)을 선택해야 할까? 

regNo라는 이름의 변수를 선언하고 자신의 주민등록번호로 

초기화 하는 한 줄의 코드를 적으시오. */

long regNo = 820528123456L ;

//regNo라는 이름의 변수를 선언, L을 안쓰면 int로 인식. 범위를 넘어서기 때문에 에러


System.out.println(" [2번 답]");

System.out.println(" regNo : " + regNo);

System.out.println("\n");

//딴 생각 01

String reg2 = "820528";

String No2 = "1*****";

String regNo2 = reg2 + No2; //regNo라는 이름의 변수를 선언

System.out.println(" //+ 딴 생각1 : " + regNo2);

//딴 생각 02  자료형별 숫자 + 문자

int reg3 = 820528;

byte sex3 = 1;

String No3 = "*****";

String regNo3 = sex3 + No3; //regNo라는 이름의 변수를 선언

System.out.println(" //+ 딴 생각2 : " + reg3 + regNo3);

//딴 생각 03  자료형별 숫자 + 문자

int regNo4 = 820528; //regNo라는 이름의 변수를 선언

char sex4 = '1';

String No4 = "*****";

System.out.println(" //+ 딴 생각3 : " + regNo4 + "-" + sex4 + No4);

System.out.println("\n");

/*[2-3] 다음의 문장에서 리터럴, 변수, 상수, 키워드(//예약어)를 적으시오.

int i = 100;

long l =100L;

final float PI = 3.14f; */

System.out.println(" [3번 답]");

System.out.println(" 리터럴 : 100(정수형), 100L(정수형), 3.14f(실수형) ");

System.out.println(" 변수 : i, l ");

System.out.println(" 키워드 : int, long, float, final ");

System.out.println(" 상수 : PI ");

System.out.println("\n");

/*[2-4] 다음 중 기본형(primitive type)이 아닌 것은?

a. int

b. Byte

c. double

d. boolean*/

System.out.println(" [4번 답]");

System.out.println(" 'b' of cause '클래스일 수도 있고 변수일 수도 있고 값일 수도 있다.' ");

System.out.println("\n");

/*[2-5] 다음 문장들의 출력결과를 적으세요. 오류가 있는 문장의 경우, 괄호 안에 ‘오

류’라고 적으시오. */

System.out.println(" [5번 답]");

System.out.println(" System.out.println(“1” + “2”) → ( 12 ) ");   

// 형 변환이 일어난 후 연산이된다. JVM은 4byte보다 작은 자료형은 4byte로 변환 

System.out.println(" System.out.println(true + “”) → ( "true" ) ");  

// 형 변환(String, 큰걸로 변환)이 일어나기 때문에 

// -> "true" = string true가 되는 것이다

// JVM의 피연산자 스택이 피연사들을 4byte 단위로 저장되기 때문에 

// 4byte형보다 작은 자료형의 

// '연산 시' 4byte형으로 변환하여 연산된다

System.out.println(" System.out.println(‘A' + 'B') → ( 131 ) ");  

//= char는 자동 형변환이 되기 때문에 -> 65 + 66  

System.out.println(" System.out.println('1' + 2) → ( 51 ) ");

//= char 1 + 2 = 49 + 2 (둘 중에 하나만 4byte보다 작으면 큰 값을 따른다)

System.out.println(" System.out.println('1' + '2') → ( 99 ) ");

//= char 1 + char 2 = 49 + 50  

System.out.println(" System.out.println('J' + “ava”) → ( "Java" ) "); 

//형 변환(String, 큰걸로 변환)이 일어난 후 -> 연산이된다

System.out.println(" System.out.println(true + null) → ( 오류 ) ");

//= 논리 + 참조형의“null”   = 기본형과 참조형의 기본형은 더할 수 없다.

// null =! String

System.out.println("\n");

/*[2-6] 다음 중 키워드가 아닌 것은?(모두 고르시오)

a. if

b. True

c. NULL

d. Class

e. System*/

System.out.println(" [6번 답]");

System.out.println(" (b)True -> true는 예약어, (c)NULL은 값-> null는 예약어, (d) Class 그냥 문자&권장 클래스 -> class는 예약어, (e)System은 원래 클래스");

System.out.println("\n");

/*[2-7] 다음 중 변수의 이름으로 사용할 수 있는 것은? (모두 고르시오)

a. $ystem

b. channel#5 //특수문자는 $, _만 사용가능

c. 7eleven  //숫자는 맨앞에 못 옮

d. If        //첫 글자가 대문자는 클래스(권장) , 소문자 if 는 예약어 이다

e. 자바 //권장하지는 않음

f. new

g. $MAX_NUM

h. hello@com //특수문자는 $, _만 사용가능 */

System.out.println(" [7번 답]");

System.out.println(" a, d(권장), e(권장은 아님), f, g " );

System.out.println("\n");

/*[2-8] 참조형 변수(reference type)와 같은 크기의 기본형(primitive type)은? 

(모두 고르시오)

a. int

b. long

c. short

d. float

e. double*/

System.out.println(" [8번 답]");

System.out.println(" 'a, d 이다' of cause '참조형 변수는 4 byte'");

System.out.println("\n");

/*[2-9] 다음 중 형변환을 생략할 수 있는 것은? (모두 고르시오)

byte b = 10; //8bit(byte)

char ch = 'A'; //16bit(char) *주의 char -> int 만 가능

int i = 100;         //32bit(int)

long l = 1000L; //64bit(long)

a. b = (byte)i; //8bit(byte)     < 32bit(int)

b. ch = (char)b;         //16bit(char) ! 8bit(byte)

c. short s = (short)ch;         //8bit(short) ! 16bit(char)

//캐스트 연산자는 오버플로우를 해결하는 것이 아니라 경고를 하기 위함이다. 

d. float f = (float)l;         //32bit(float) > 64bit(long)

e. i = (int)ch; //32bit(int)     > 16bit(char) */

System.out.println(" [9번 답]");

System.out.println(" d, e 이다. ");

System.out.println("\n");


/*[2-10] char타입의 변수에 저장될 수 있는 정수 값의 범위는? (10진수로 적으시오)*/

System.out.println(" [10번 답]");

System.out.println(" 2^16-1");

//문자이기 때문에 0부터 시작, char = 2 byte = 16 bit = 

//2^16-1 

System.out.println("\n");

/*[2-11] 다음중 변수를 잘못 초기화 한 것은? (모두 고르시오)

a. byte b = 256; //x 8bit = 127까지 쓸 수 있다 ????

b. char c = '';         // '기본형 타입 변수'의 경우 값을 필요로 한다. 없어서 오류

     // & 만약 스페이스바 가 있으면! '126'으로 인식)

c. char answer = 'no'; //x 한 개의 문자만 쓸 수 있다

d. float f = 3.14 //x 뒤에 f 가 없으면 3.14로 인식. 그리고  ;가 없다

e. double d = 1.4e3f; //o 자료형은 다르지만 -> 방향이라 캐스트() 생략 가능

//*참고 : 10의 지수 형태(Exponential Format) - http://www.allcalc.tk/2383  */

System.out.println(" [11번 답]");

System.out.println(" 'a,b,c,d' of cause '형변환이지만 -> 방향이라 ()생략 가능하다 ");

System.out.println("\n");

/*[2-12] 다음 중 main메서드의 선언부로 알맞은 것은? (모두 고르시오)

a. public static void main(String[] args)

b. public static void main(String args[])

c. public static void main(String[] arv)

d. public void static main(String[] args)

e. static public void main(String[] args)*/

System.out.println(" [12번 답]");

System.out.println(" 'a' of cause '익숙하다' ");

System.out.println("\n");

/*[2-13] 다음 중 타입과 기본값이 잘못 연결된 것은? (모두 고르시오)

a. boolean - false

b. char - '\u0000'

c. float - 0.0

d. int - 0

e. long - 0

f. String - "" */

System.out.println(" [13번 답]");

System.out.println(" 'c, e' of cause '0.0f'이고 long의 기본형은 0.0L이다 ");

//참조형(String)의 기본값은 주소가 존재하지 않아 null이 기본값이다

System.out.println("\n");

/* 참고 내용 */

System.out.println(Integer.SIZE);  

//참조형 변수의 사이즈는 4byte  ** https://dzone.com/articles/java-getting-size-object

}

}



댓글