변수(Variable)

저장하기 위한 공간(메모리에 저장)

변수 선언

타입 이름;

(변수 선언 시 저장된 값은 마지막에 지정된 값을 저장함)

1. 선언 후 값 지정
public static void main(String[] args) {
int x;
int y, z; //같은 변수는 쉼표로 선언 가능
x=1;
y=2;
z=3;
}
2. 선언과 함께 값 지정
public static void main(String[] args) {
int x=1;
int y=2;
int z=3;
}

 

블록

클래스 블록, 메소드 블록

(블록을 벗어나면 그 변수를 사용할 수 없음)

로컬 변수

메소드 블록 내에 선언된 변수를 로컬 변수

로컬 변수는 메소드 블록 내에서만 사용되고 메소드 실행이 끝나면 자동 삭제

더보기
//클래스 블록 시작
public class JavaVar2 {
int c = 10;
// 메인 메소드 블록 시작
public static void main(String[] args) {
int a = 10;
// 1번 블록 시작
{
int b = 7; //1번 블록 시작 전에 b라는 변수가 선언되었다면 불가능
System.out.println(a);
// 1번 블록 종료
}
int b = 5; //1번블록의 변수 b와 관계없는 변수
System.out.println(b);
// 메인 메소드 블록 종료
}
// 메소드1 블록 시작
public void method1() {
int a = 5; //메인 메소드의 변수 a와는 관계없는 변수
System.out.println(c); //클래스 변수 c
// 메소드1 블록 종료
}
//클래스 블록 종료
}
int d = 8;
{
// 사용 가능한 변수 d
int e = 10;
{
// 사용 가능한 변수 d e
int f = 12;
// 사용 가능한 변수 d e f
}
// 사용 가능한 변수 d e
}
// 사용 가능한 변수 d

변수 규칙

  1. 첫 번째글자는 문자거나 ' $ ', ' _ ' 이어야하고, 숫자로 시작 X
  2. 영어 대소문자를 구분
  3. 첫 문자는 소문자로 시작하되 다른 단어가 붙을 경우 첫 문자를 대문자로 함( 관례 ) > 카멜식
  4. 문자의 길이 제한은 없음
  5. 자바 예약어는 사용할 수 없음

예약어

자바 언어에서 의미를 가지고 사용되는 단어, 변수 이름으로 사용할 경우 컴파일 에러 발생

(예 : 기본 타입, 논리값, 클래스 관한것, 메소드 관한 것 등등)

 


기본 타입

기본타입 정수타입 byte, char, short, long
실수타입 float, double
논리타입 boolean

정수타입

byte 1 byte - 128 ~ 127
short 2 byte - 32768 ~ 32767
(기본 정수형)    int 4 byte - 2^31 ~ 2^31- 1
long 8 byte - 2^61 ~ 2^61- 1

                                                 long 타입은 데이터 끝에 L(l)을 추가               

                                                 ex) long x = 0.01L

더보기
public static void main(String[] args) {
byte b1 = 127;
System.out.println("b1 = "+b1);
// byte b2 = 128; 범위 초과
short s1 = 100;
System.out.println("s1 = "+s1);
short s2 = (short)(s1 + 10); //캐스팅 필요
System.out.println("s2 = "+s2);
int i1 = 100;
System.out.println("i1 = " + i1);
int var1 = 200; //10진법
int var2 = 0203; //8진수 0-
int var3 = 0x74a; //16진수 0x-
int var4 = 0b11011; //2진수 0b-
System.out.println("var1="+var1);
System.out.println("var2="+var2);
System.out.println("var3="+var3);
System.out.println("var4="+var4);
long l1 = 10000;
System.out.println("l1="+l1);
long l2 = 100000000000L; //길이가 길면 L표시
System.out.println("l2="+l2);
long l3 = l1+1000;
System.out.println("l3="+l3);
}

 

문자와 문자열

문자 char 부호 없는 2byte 정수 0~65535 (아스키코드) 한 글자 데이터로 ' ' 선언
문자열 string     복수개의 글자로 구성된 자료 (기본타입X)
" " 로 묶어 선언
public static void main(String[] args) {
char c1 = 65;
System.out.println(c1);
char c2 = 66;
System.out.println(c2);
char c3 = '가';
System.out.println((int)c3);
char c4 = 'a';
char c5 = (char)(c4+1);
System.out.println(c5);
String s1 = "abcdef";
}
더보기
A
B
44032
b

실수타입

float 4 byte 부호 1bit, 지수 8bit, 가수 23bit
(실수형 기본 타입)  double 8 byte 부호 1bit, 지수 11bit, 가수 52bit

                                                          float 타입은 데이터 끝에 f (F) 추가

public static void main(String[] args) {
float f1 = 3.141592f;
double d1 = 3.141592;
if(f1==d1) {
System.out.println("같은값");
}else {
System.out.println("다른값");
}
}
더보기
다른값

정확도가 다르기 때문에 (double이 더 높음) 결과값이 다르게 나온다

논리타입

true 1byte 조건문과 제어문의 실행 흐름을 변경하는데 사용
false
public static void main(String[] args) {
boolean flag = false;
System.out.println("flag="+flag);
flag = (1<2);
System.out.println("flag="+flag);
}
더보기
flag=false
flag=true

제어문자 ( escape 문자)

\n 개행 \\ 역슬래시 문자 출력
\r 개행 \" 큰따옴표를 출력
\r\n 개행 \' 작은따옴표를 출력
\t 수평탭    
public static void main(String[] args) {
String s2 ="강감찬";
String s3 ="이순신";
System.out.println(s2+"\t"+s3);
System.out.println(s2+"\n"+s3);
System.out.println(s2+"\r\n\\\""+s3);
System.out.println("\""+s2+"\"\t\""+s3+"\"");
}​
더보기
강감찬   이순신
강감찬
이순신
강감찬
\"이순신
"강감찬" "이순신"

리터럴 

2진수 8진수 10진수 16진수

'JAVA > JAVA BASIC' 카테고리의 다른 글

[JAVA] 반복문 - for문  (0) 2024.03.11
[JAVA] 조건문  (0) 2024.03.08
[JAVA] 연산자  (0) 2024.03.07
[JAVA] 타입 변환 & 시스템 입출력  (0) 2024.03.06
[JAVA] 단축키, 기본 설정  (0) 2024.03.04