728x90
반응형
변수의 종류
변수=단 하나의 값을 저장할 수 있는 메모리 공간
1. 기본 자료형(Primitive) : 변수의 위치에 값이 저장
예) 논리형(Boolean), 문자형(char), 정수형(short, byte, int, long), 실수형(float, double)
2. 참조형(Reference Type) : 참조하는 곳의 주소값을 가지고 있다=실제 값이 있는 위치의 주소가 저장.
예) 클래스, 배열, 인터페이스, 열거형
1. 정수형 변수
byte b =10; //1바이트
short s =100; //2바이트
int i =1000; //4바이트
//8바이트(ㅣ(소문자엘) 또는 L을 숫자 뒤에 붙입니다)
long l =10000L;
System.out.println("b=" + b); // b=10
//문자열+변수의 경우 문자열 내용이 출력되고 b의 값이 출력됩니다.
System.out.println("s=" +s); //s=100
System.out.println("i="+i + "l="+l); //i=1000l=10000
System.out.println(b+s+i+l); //더해짐 11110
System.out.println(""+b+s+i+l); //문자열에 이어서 연결 10100100010000
//정수형 변수 age에 자신의 나이를 저장합니다.
byte age =20;
//출력문)
//내 나이는 20입니다.
System.out.println("내 나이는"+" "+age + "입니다");
//일년이 지나 내 나이는 한 살이 증가했습니다.
age=(byte)(age+1); //age=byte, 1=int 그래서 강제 형변환(앞에 괄호하고 byte붙여주기)을 해준다. but 첨부터 age를 int로 했으면 편할일...
//출력문)
//내 나이는 21입니다.
System.out.println("내 나이는"+" "+age + "입니다"); //프로그램은 위에서부터 차례로 바뀜(87번줄은 여전히 20)
//참조형 변수의 값을 출력해 봅시다
// 참조형 -s1,s2는 메모리 주소, new는 연산자,
//new String("자바"); 에서 String()은 생성자
String s1 = "자바"; //String은 JRE에 들어있는 클래스
String s2 =new String("자바"); //String은 라이브러리로 제공되는 클래스
System.out.println("s1="+s1+"s2="+s2); //s1=자바s2=자바
//주소같은지 비교 >> 다른주소
if (s1==s2) {
System.out.println("같은주소");
} else {
System.out.println("다른주소");
}
//내용값 같은지 비교 >> 같은 값
if (s1.contentEquals(s2)) {
System.out.println("같은 값");
}else {
System.out.println("다른 값");
}
2. 실수형 변수
//f나 F를 숫자뒤에 붙입니다.
float ft = 3.14f;
//d나 D를 숫자 뒤에 붙이거나 생략할 수 있습니다.
double d = 42.195d;
System.out.println("f="+ft+" "+"d="+d);
/*컴퓨터가 숫자밖에 모르기 때문에 문자가 숫자로 변환되어 저장되는데 어떤기준으로 저장? 문자에 해당하는 유니코드
* 'A' -> 65
* :문자를 코드로 변환하는 것을 문자 인코딩(encoding)이라고 합니다
* 65 -> 'A'
* : 코드를 문자로 변환하는 것을 디코딩(decoding)이라고 합니다.
*/
3. 문자형 변수
//문자형 변수 - 하나의 문자를 나타낼 수 있는 자료형으로 16비트의 유니코드 사용
char c1 = 'A'; //2byte
char c2 = '@';
char c3 = '가';
System.out.println("c1="+c1+" c2="+c2+" c3="+c3); //c1=A c2=@ c3=가
//문자형에 정수를 배정하면 정수에 해당하는 유니코드를 찾아서 변수에 저장합니다.
char c4 =65; //영문 'A'를 의미
//System.out.printf("%c", 65); 를 쳐도 영문 'A' 가 나온다. 왜냐하면 %c가 문자서식인데 뒤에 정수가 나왔기 때문에
//정수에 해당하는, 즉 65=A 가 저장됨.
char c5 ='\uAC00'; //한글 유니코드 '가' 의미
System.out.println("c4="+c4+" c5="+c5);//c4=A c5=가
char c6 =0101; //0으로 시작하면 8진수를 의미
char c7 =0x41; //0x로 시작하면 16진수를 의미
char c8 =0b00001000001; //0b로 시작하면 2진수를 의미
System.out.println("8진수 0101="+c6+"\n" + "16진수 0x41="+c7+"\n2진수 0b00001000001="+c8);
출력: 8진수 0101=A
16진수 0x41=A
2진수 0b00001000001=A
4. 논리형 변수
//논리형 변수
boolean b1 =true;
boolean b2 = false;
System.out.println("b1은 참인"+b1); //b1은 참인true
System.out.println("b2는 거짓인"+b2); //b2는 거짓인false
5. 상수: 같은 값을 한 번만 저장 할 수 있는 공간
-상수 만드는 법: 변수 타입 앞에 키워드 final 붙여주기만 하면 됩니다. 일반적으로 상수의 이름은 대문자로 사용
final double PI =3.141592;
System.out.println(PI); //3.141592
PI=3.14; // 값을 변경하는 문장을 사용하면 에러가 발생
6. 형변환
//정수형 변수 i1에 10을 대입합니다.
int i1=10;
double d1=i1; //실수형 변수에 정수형 값을 저장할 수 있습니다.
System.out.println("d1데이타는"+d1+"입니다"); //d1데이타는10.0입니다
//에러발생
double d2=10.12345;
//int i2=d2; //정수형 변수에 실수형 값을 저장할 수 없습니다.
int i2 = (int) d2;
System.out.println("i2데이타는"+i2+"입니다"); //i2데이타는10입니다
//int -> char (명시적 변환)
int i3 =97;
char c11 = (char) i3;
System.out.println("i3데이타는 "+i3+"입니다"); //i3데이타는 97입니다
System.out.println("c11데이타는" +c11 +"입니다"); //c11데이타는a입니다
i3=65;
c11= (char)i3;
System.out.println("i3데이타는"+i3+"입니다"); //i3데이타는65입니다
System.out.println("c11데이타는"+c11+"입니다"); //c11데이타는A입니다
//char -> int (자동형변환)
i3='A'; //유니코드 'A'에 해당하는 값을 정수형 변수 i3에 대입해라
System.out.println("i3데이타는"+i3+"입니다"); //i3데이타는65입니다
i3='가'; //유니코드 '가'에 해당하는 값을 정수형 변수 i3에 대입하라
System.out.println("i3데이타는"+i3+"입니다"); //i3데이타는44032입니다
반응형
'🚀 Programming > JAVA+Spring' 카테고리의 다른 글
JAVA 기본 내용 정리 (0) | 2022.08.29 |
---|---|
[Java] ArrayList의 출력/addAll()/ removeAll()/ retainAll() (0) | 2022.08.28 |
[Java] array, list, 그리고 arraylist (0) | 2022.08.28 |
Java에서 final, finally, finalize() 의 사용 (0) | 2022.08.28 |
[Java] 변수 구분하기 (클래스변수/ 인스턴스변수/ 지역변수) (0) | 2022.08.28 |