자바에서 변수는 데이터를 저장하는 데 사용됩니다. 변수는 값이 변할 수 있는 공간이며, 그 값을 참조하거나 변경할 수 있습니다. 변수를 선언할 때는 데이터 유형과 변수 이름을 지정해야 합니다. 예를 들어, int 유형의 정수를 저장하기 위해 int myNumber;와 같이 변수를 선언할 수 있습니다. 그런 다음 해당 변수에 값을 할당하고 사용할 수 있습니다. 변수는 프로그램의 여러 부분에서 데이터를 저장하고 공유하는 데 사용되며, 프로그래밍에서 매우 중요한 개념 중 하나입니다.
변수를 선언한다는 것은 변수의 자료형을 선택하고 이름을 정하는 것!
변수 선언은 자료형과 변수 명으로 선언과 동시에 초기화 할 수 있음. (대입한다 → 어싸인한다~)
변수 이름 만들때는 영문자(대문자,소문자)나 숫자를 사용할수 있고, 특수문자 중에는 &, _ 만 사용, 변수 이름의 시작은 숫자로 할 수 없음(ex. 27days, 1abc)
public class Variable {
public static void main(String[] args) {
int age, count; //쓰지않는 변수는 검은색으로 뜸! 쓰지않는 변수는 선언을 하지않는것이 좋음!
age = 10;
int level = 10000;
System.out.println(age);
System.out.println(level);
}
}
-자료형(data type)
자바에서 기본 데이터 유형은 다양한 종류의 데이터를 저장하는 데 사용됩니다. 이러한 기본 데이터 유형에는 정수를 저장하는 int, 작은 정수를 저장하는 byte 및 short, 큰 정수를 저장하는 long, 부동 소수점 숫자를 저장하는 float 및 double, 문자를 저장하는 char, 그리고 논리 값을 저장하는 boolean이 있습니다. 각 데이터 유형은 메모리에서 차지하는 공간의 크기와 표현할 수 있는 값의 범위가 다르며, 프로그램에서 적절한 데이터 유형을 선택하는 것이 중요하다.
-정수의 표현
변수가 저장되는 메모리 공간의 특성
변수는 쓰임에 맞게 자료형으로 선언해야 함
변수를 선언하면 해당되는 자료형의 크기 만큼 메모리가 할당
변수는 할당된 메모리를 가리키는 이름
변수를 선언한다는 것은 선언한 변수 이름으로 어떤 위치에 있는 메모리를 얼마만큼의 크기로 사용하겠다는 뜻
정수형
문자형
실수형
논리형
1바이트
byte
–
boolean
boolean
2바이트
short
char
–
–
4바이트
int
–
float
–
8바이트
long
–
double
–
public class IntVariableTest {
public static void main(String[] args) {
byte bs = 127; //오류남 127 까지 표현할수 있고 -128은 사용가능
System.out.println(bs);
//int iVal_0 = 123456789000; int 가 표현할수 있는 수를 넘으므로 오류가남
long iVal = 12345678900L; // long 으로 처리하면 오류가 안남
System.out.println(iVal);
}
}
-실수의 표현
실수는 정수 보다 정밀하기 때문에 정수와는 다른 방식으로 표현해야함
부동 소수점 방식으로 실수 값 0.1 표현
지수부와 가수부로 표현 함
컴퓨터에서는 밑수를 2로 사용
정규화 : 가수가 밑수보다 작은 한 자리까지 가수로 표현 되는 것
flot 와 double (실수는 보통 더블을 많이 쓴다)
public class DoubleTest {
public static void main(String[] args) {
double dnum = 3.14;
float fnum = 3.14F; //8바이트에는 넣을수 없어서 F 로 써서 4바이트로 처리
System.out.println(dnum);
System.out.println(fnum);
double mynum = 1;
for (int i = 0; i < 10000; i++) {
mynum = mynum + 0.1;
}
System.out.println(mynum); // 끝에 보면 조금더 이상한 숫자가 붙어있는데 이게 부동소수점의 오류임
}
}
-문자의 표현
어떤 문자를 컴퓨터 내부에서 표현하기 위해 특정 정수 값을 정의
A 는 65
문자세트 = 각 문자를 얼마로 표현할 것인지 코드 값을 모아둔 것을 문자세트(charater set) 라 함
자바는 전세계 표준인 UNICODE를 사용
public class CharacterTest {
public static void main(String[] args) {
char ch1 = 'A'; // 작은 따옴표는 문자를 표현하는거임
// char ch = "A"; 큰 따옴표는 문자열임! 하나가 아님.
System.out.println(ch1);
System.out.println((int) ch1);
char ch2 = 66;
System.out.println(ch2);
System.out.println((int) ch2);
char ch3 = '한';
char ch4 = '\uAC00'; //'한' 의 글자 유니코드임!
System.out.println(ch3);
System.out.println(ch4);
}
}
-논리형 표현
true(참), false(거짓) 두 가지만 나타냄
1바이트를 사용 함
값이 존재하는지, 배열이 비었는지, 결과가 참인지 거짓인지 등을 표현
public class BooleanTest {
public static void main(String[] args) {
boolean isMarried = true;
System.out.println(isMarried);
}
}
-지역변수 자료형 없이 사용하기
추론 가능한 변수에 대한 자료형을 선언하지 않음
한번 선언하여 추론 된 변수는 다른 타입의 값을 대입 할 수 없음
지역 변수만 사용 가능(인스턴스 변수에 사용할 수 없음)
반드시 변수를 초기화 하여야 함
null을 넣을 수 없음
public class LocalVariableType {
public static void main(String[] args) {
var i = 10;
var j = 10.0;
var str = "hello";
System.out.println(i);
System.out.println(j);
System.out.println(str);
str = "test";
// str = 3; 이미 스트링으로 선언되었는데 다른 자료형을 넣으면 안됨!
System.out.println(str);
}
}