package a_variable;
/**
* 변수 타입에 대하여
* @author BCS
*
*/
public class VariableOther {
public static void main(String[] args){
/*
5. 논리형 - boolean(기본값 false)
boolean형 변수에는 true, false중 하나의 값을 저장할 수 있다.
boolean형 변수에는 대답(yes, no), 스위치(on/off)
boolean 자체는 1 bit만 사용하지만,
데이터를 다루는 최소단위가 1 byte 임으로 1byte형을 가지게 된다
문제
false의 값을 저장할 수 있는 변수 abc룰 선언 및 초기화 하시오
*/
boolean abc= false;
System.out.println(abc);
/*
6.문자형 - char(' \u0000 ')
- 2 byte(16진수) 체계를 이용한다
- JAVA는 Unicode 문자체계를 이용한다.
- ' A ' = 65(10진수 = DEC = int 타입) = 41(16진수 = HEX)
*/
char a = 'A' ; //= 65(10 DEC)
char b = '\u0041' ; //= 65(10 DEC)
char c = 65 ; //= 65(10 DEC)
System.out.println(a);
System.out.println(b);
System.out.println(c);
/*
7. 정수형 - byte, short, int, long
- 기본 자료형은 int
- 변수의 값을 저장하려면 정수값의 범위에 따라서 4개의 정수 중에 하나를 선택해야한다
- byte , short 형의 경우 크기가 작어서 범위를 넘는 잘못된 결과를 얻을 수 있다
그래서 int 형을 사용하는 것이 좋다
- JVM의 피연산자 스택이 피연산자들을 4byte 단위로 저장되기 때문에
4byte형보다 작은 자료형의 연산 시 4byte형으로 변환하여 연산된다
- long type으로 선언하는 경우에도 숫자가 큰 경우 맨 뒤에 'L' 를 붙인다
- float type으로 선언하는 경우에도 숫자가 큰 경우 맨 뒤에 'f' 또는 'F' 를 붙인다
- overflow : 정수형에서
변수가 자신이 저장할 수 있는 범위를 넘었을때 최소값부터 다시 표현하는 현상
변수의 범위를 넘는 값으로 초기화는 허용하지 않는다
문제
50의 값을 저장할 수 있는 변수를 변수명 'b2'로 선언 및 초기화하세요
*/
int b2 = 50; //int를 자주 사용한다.
//short b2 = 50; //도 가능
System.out.println(b2);
//long long2 = 982323423432324423;
long long2 = 982323423432324423L;
//long 으로 선언하지만 숫자가 큰 경우 맨 뒤에 'L' 를 붙인다
//byte b3 = 128; //범위를 넘어선다
byte b3 = 126;
System.out.println(b3); //126
b3++; //1단계 증가
System.out.println(b3); //127
b3++; //1단계 증가
System.out.println(b3); //-128 (자신의 범위를 넘어서면 가장 작은 수로 나온다)
// = 오버플로어 (단, 정수형에만 있다)
b3++; //1단계 증가
System.out.println(b3); //-127 (자신의 범위를 넘어서면 가장 작은 수로 나온다)
/*
8. 실수형 : float double - 실수형 값을 저장한다
bit 구성
float : 1+8+23
double : 1+11+52
실수 형 중 사용할 자료형을 선택할때는 값의 범위 뿐만아니라 정밀도도 중요한 요소가 된다
(소수점 몇째자리 까지 표현할 것인가가 중요해진다)
기본 자료형은 double 이다. '2의 n승으로 표현'할 수 있어서
*/
double d2 = 1.2345689876543213456786543; //숫자가 길지만 기본형이기 때문에 뒤에 L 을 안 붙인다
System.out.println(d2); //-> 16자리
//float d2 = 1.2345689876543213456786543; //에러, float는 기본형이 아니므로 f 또는 F 를 붙인다
float f2 = 1.2345689876543213456786543f;
System.out.println(f2); //-> 7자리
double d3 = 0.1;
float f3 = 0.1f;
System.out.println(d3 == f3);
double d4 = 0.5;
float f4 = 0.5f;
System.out.println(d4 == f4); //2의 n승으로 나뉘는 경우 double과 float은 동일간 값을 갖는다.
/*
9. String - '문자열'을 다루는 Class
' \ ' 만 못쓴다
' \t ' 은 쓴다 = tab 처럼 띄우기
' \n ' 은 쓴다 = new line 처럼 띄우기
*/
//char cc = ' ' ; //에러, 싱글쿼테이션 사이에 값이 없으면 애러
//기본형은 값을 저장한다. 범위가 존재한다.
String str1 =null ; //기본값은 null(아파트를 짓기 전)
String str2 =" " ; //정상
// 참조형은 주소를 저장한다.(주소 = 아파트를 짓는다)
// 범위가 존재하지 않는다
System.out.println(5+"sdf"); // 타입이 다르다.
// 정수형, 문자열 -> 센쪽 타입으로 변형
// "5" + "sdf"
System.out.println("6"+"7");
System.out.println(true+"1234");
System.out.println("=======-----------");
System.out.println("=======\t-----------");
System.out.println("=======\n-----------");
/*
10. 형 변환(casting )
변수 또는 리터럴의 타입을 다른 타입으로 변환하는 것이다
기본형 끼리만 가능
*/
int i3 =65;
byte b6 = (byte)i3; //센놈을 약한놈에게, 오버플로우 방지, cast연산자 ()사용
System.out.println(b6);
char c6 = (char)i3; //센놈을 약한놈에게, 오버플로우 방지, cast연산자 ()사용
System.out.println(c6);
//float f6 = 3.141592; //에러
float f6 = 3.141592f;
int i4 = (int)f6; //센놈을 약한놈에게, 오버플로우 방지, cast연산자 ()사용
System.out.println(i4);
int i5 = b6; // 약한놈을 센놈에게, cast연산자 ()생략
}
}
'새로워지기 > 서른의 생활코딩' 카테고리의 다른 글
4일차) 변수 정리 예제 _20180531 am (0) | 2018.05.31 |
---|---|
3일차) 데이터 모델링으로 가기위한 요구사항 분석 _20180530 pm (0) | 2018.05.30 |
2일차) 짝궁 id로 짝꿍 ip 접속하기, 내 id로 짝꿍 ip접속하기 _201805 29_pm (0) | 2018.05.30 |
2일차) 이클립스로 헬로자바하기 부터 변수 알기 _20180529 am (0) | 2018.05.29 |
1일차) 기본 질의어 학습 및 DBMS 접속하기 _20180528 pm (0) | 2018.05.28 |
댓글