Steady Blog
2. 자바의 자료형 본문
*자바의 자료형
기업에서 바라는 인재는 팀과의 융합이 잘 되는 사람이다.
ASKII CODE 생성 배경
1. 알파벳 및 특수문자를 합한 숫자가 127개 2의 7승 000 0000 만으로 생성됨 - ANSI
2. 유럽으로 전파 - <ISO-8859-1> 표준화
3. 아시아권으로 전파 -> 2Byte로 변홤 = 2의 16승 0000 0000 / 0000 0000
고로 UniCode 완성
-- 배경지식이 너무 부족한거 같다. 공부좀 하자.
영어도 중요하지만, 주말엔 배경지식을 쌓아야 할듯...
-- 자료형을 왜 배우는지에 대해서 공부해야함.
자료형의 생성 배경을 공부해보자.
1. 식별자 - <무언의 약속>
1) 식별자 - 사물을 구분하는 것이다.
2) class : 첫글자는 대문자로 시작
3) 변수/ 메서드(함수) 소문자로 시작
변수 () 없음/ ()는 메서드에만 있음.
※ 변수 : 값이 변할수 있는 수.
※ (Output(Return value)) 메서드 (Input (Parameter, argument))
여기서 잠깐!
Argument : 인자 - 간접 전달.
Parameter : 매개변수 - 직접 전달.
Main : 프로그램의 시작점을 알수 있음.
4) 상수 : 전체가 대문자
※ 상수 : 값이 항상 같은 수.
- 상수는 한번 정하면 접근 하는 것만으로도 오류가 발생한다.
(여기서 접근이라 함은 값의 변경을 하기 위해 접근을 하는 것을 의미한다.)
5) 주석 - 단지 소스코드의 기능이나 동작을 설명하기 위해 사용되는 것.
사용법 = //(단행 주석) , /* */(다행 주석) , /** */ (javadoc 문서화 주석 / 독주석)
javadoc 주석의 장점 = HTML의 문법을 사용하여 javadoc를 만들때 사용하는 주석이다.
독주석은 메소드의 기능을 설명하는 것이 주된 목적이다.
독주석 -> 지금 당장은 크게 느껴지는게 없겠지만, 훗날에 필요한 주석인듯 싶다.
/**
<font color="navy" size ="5">
"go for it !" 독주석 - doc를 이용해서 볼수 있음.
</font>
출력하는 클래스~!
*/
public class CommentEx{
public static void main(String[] ar){
//화면에 출력 - 줄 주석 처리
System.out.println("go for it!!");
/*
이렇게 하면 여러줄이 주석처리 됩니다.
*/
}
}
6) 기본 자료형과 참조 자료형
7) 자바의 자료형
1. blloaen = true와 false 만 기억하는것
0000 0000 => False로 정의
0000 0001 => True로 정의
public class BooleanEx{
public static void main(String[] ar){
boolean b = true;
/*
bllolean b; - 변수의 선언
b = false; - 값을 처음 넣는 것 = 변수의 초기화
....
b = true; - 값을 바꾸는 것 = 값의 할당.
*/
System.out.println("변수 b의 값 : " + b); //+의 의미는 문장을 이어 쓰라는 것.
}
}
//blooaen 에는 int형이 들어가서는 안된다.
//ex ) boolean b = 0; 이것은 오류
2. 문자형 char => Unicode를 쓸려면 \u를 써야함.
Char형
public class CharEx{
public static void main(Sting[] ar){
char ch1 = 'A'; char ch2 = '\u0041';
System.out.println("ch1 + ch2 = "+ch1 + ch2); //AA가 출력
System.out.println("ch1 + ch2 = " (ch1 + ch2));
//ch1 0100 0001 문자는 실제로 이진수로 기억
//ch2 0100 0001 + 그럼으로 계산하라고 하면 계산을 해서
//새로운 값은 = 1000 0010 = 130 숫자로 기억하게 됨.
System.out.println("ch1 + ch2 = " + (char)(ch1+ch2)); //?가 나옴 ?는 아스키 코드가 아니다.
// 아스키 코드 값을 초과 하기 때문이다.
}
}
3. 정수형 자료 - 음수에 대해서 나오기 시작함.
ㄱ. 음수의 표현이 필요해짐
- 부호와 절대값에 의한 음수표현 방식.
8 bit에서 맨앞자리를 0,1의 차이로 -/+를 구분
=> 이때 발생한 것이 1의 보수와 2의 보수.
ㄴ. 표현 범위에 대한 공식이 나옴.
-128 ~ 127까지 0이 양수에 포함되있기 때문에 128까지가 아니게 된 것.
Byte형
public class ByteEx{
public static void main(String[] ar){
byte bb = 127; //-128~ 127
//자바에서 변수를 초기화 할때는 그 변수의 표현범위를 초과할수 없다.
++bb; //bb = bb+1 : bb = -128로 됨 Gray_Code를 생각하자.
이것을 보면 초기화만 빼면 표현범위를 넘어갈수 있다는 것이다.
<궁금증!>
bb++는 된다. 그러나 bb = bb+1은 안된다. 이유는? 다음 강에서.
System.out.println("byte bb = " +bb);
}
}
short형
public class ShortEx{
public static void main(String[] ar){
short s; //변수의 선언
s = 1;
//자바에서의 변수는 반드시 초기화 해야 한다.
System.out.println("short s = "+s);// 에러 발생
}
}
4. 실수형 자료 - 근사값.
Float형
public class FlootEx{
public static void main(String[] ar){
float var1,var2;
var1 = 3.4f; //f를 사용한 이유는 float를 설명해주기 위해서이다.
ex) Long형은 long val = 10L로 사용함.
var2 = 55.55; //오류 발생 왜냐면 자바에서 기본형은 double형이기 때문이다.
System.out.println("var1의 값 : "+var1);
System.out.println("var2의 값 : "+var2);
}
}
5. Wrapper Class : 기본 데이터형의 Class화
byte => Byte
short => Short
int => Integer
long => Long
float => Float
double => Double
boolean -> Boolean
char -> Character
import class WrapperEx{
public static void main(String[] ar){
byte a_min = Byte.MIN_VALUE;
byte a_max = Byte.Max_VALUE;
char b_min = Character.MIN_VALUE;
char b_max = Character.MAX_VALUE;
int c_min = Integer.MIN_VALUE;
int c_max = Integer.MAX_VALUE;
float d_min = Float.MIN_VALUE;
float d_max = Float.MAX_VALUE;
System.out.println("byte = "+a_min + "~" + a_max);
System.out.println("char = "+(int)b_min + "~" + (int) b_max);
//int 가 붙는 이유가 NULL값 때문이라는데 잘 모르겠어..
System.out.println("int ="+c_min +"~"+c_max);
System.out.println("float = "+d_min +"~"+d_max);
}
}
8. 형변환
기준점은 손실의 유무.
디모션은 Casting 연산자임
묵식적 변환/ 명시적 변환 정리할 필요있음.
숫자를 문자열로
- String ss = String.valueOf( number );
문자열을 숫자로
- int i = Integer.parselnt(str);
'Programing > Java' 카테고리의 다른 글
6. 클래스의 개념 (0) | 2012.08.23 |
---|---|
5. 배열 - 코딩 할것 많음 (0) | 2012.08.23 |
4. 제어문 (0) | 2012.08.23 |
3. 연산자와 표준 입출력 - 내용은 기본적임 그러나 정리해 놓기 (0) | 2012.08.23 |
1. 정보화 정리와 java의 흐름. (0) | 2012.08.23 |