2013년 8월 8일 목요일

[오라클자바커뮤니티,자바교육]자바의 자료형

JAVA자료형에 대해 계속 보도록 하겠습니다. 


오라클자바커뮤니티에서 설립한 오엔제이프로그래밍 실무교육센터
(오라클SQL, 튜닝, 힌트,자바프레임워크, 안드로이드, 아이폰, 닷넷 실무전문 강의)  



1. 정수 자료형 (byte,short,int,long)

자바에서 제공하는 정수 자료형은 byte, short, int, long 4가지가 있습니다.(1,2,4,8 바이트 순)

C언어의 unsigned는 지원하지 않습니다.

short, byte에 연산을 하면 무조건 int형이 됩니다. 아래의 예를 보죠...

short a=0, b=0;

short c = a + b;

만약 위의 코드 부분이 컴파일 되다면 다음과 같은 오류가 날것 입니다.

---------- javac ----------
test.java:10: possible loss of precision
found : int
required: short
short c = a + b;
^
1 error


int형이 아닌 long형으로 데이터를 다루기 위해선 숫자 끝에 소문자 l이나 대문자 L을 표시한다.

Int : 12 (10진수), 012 (8진수), 0x12 (16진수)

Long : 12L, 12l



2. 부동소수 자료형 (float ,double)

자바에서 제공하는 부동소수 자료형은 float와 double이 있습니다.
부동소수 자료형 뒤에 아무것도 붙이지 않거나 ‘d’ 또는 ‘D’ 가 붙으면 기본적으로 double 형이 되며 ‘f’, ‘F’를 붙이면 float 자료형이 됩니다.

유효 10진 자리수
float : 6자리, double : 15자리

2진수로 표현하므로 표현 오차 발생하며 보다 정확한 표현을 하려면 BigDecimal 이용하세요~

리터럴

float --> 1e1f, 2.F, .3f, 6.02E+23f, 1.4039846e-45f ~ 3.40282347e+38f
double --> 1e1, 2.D, .3, 6.02E+23d, 4.94065645841246544e-324 ~ 1.79769313486231570e+308



[예제]

// FloatPointTest.java

class FloatingPointTest
{
public static void main( String[] args )
{
System.out.println( 1.2345678901234567890123456789 ); // 1.2345678901234567
System.out.println( 2e3 ); // 2000.0
System.out.println( 0.1 + 1.6 ); // 1.7000000000000002
System.out.println( 3.0 / 0.0 ); // Infinity
System.out.println( 0.0 / 0.0 ); // NaN
}
}



3. 진리 자료형 (boolean)

boolean Literal : true, false

boolean 형은 다른 데이터형과 연산이 불가하며 boolean형은 boolean 형과 연산이 가능 합니다.

[예제]

public class BooleanTest {
public static void main(String[] args) {
boolean b1 = true; boolean b2 = !b1;
System.out.println("b1 : " + b1);
System.out.println("!b1 : " + b2);
System.out.println(b1 & b2);
System.out.println(b1 | b2);
System.out.println(b1 == b2);
System.out.println(" 6 < 7 : " + (6 < 7));
}
}

[결과]

b1 : true
!b1 : false
false
true
false
6 < 7 : true

4. 문자 자료형 (char)

자바는 유니코드를 지원하는데 JDK1.4부터는 Unicode 2.0까지 지원합니다.

한 문자를 표현할 때는 '와 ' 사이에 단 한 글자만이 올 수 있습니다.

자바에서 문자를 표현하는 방법은 두가지가 있는데 첫번째 방법은 있는 그대로 쓰는 것이며 두번째 방법은 유니코드로 표현하는 방법이다. 예)char c = ‘A’, char c = ‘\u0041’

[예]

class CharTest {
public static void main(String[] args) {
char c1 = 'A'; char c2 = '\u0041';
char c3 = '가'; char c4 = '\uac00';
System.out.println("c1:"+c1+",c2:"+c2);
System.out.println(c1 == c2);
System.out.println("c3:"+c3+",c4:"+c4);
System.out.println(c3 == c4);
}
}

[결과]

c1:A,c2:A
true
c3:가,c4:가
true

댓글 없음:

댓글 쓰기