▣ print 메서드 : 줄바꿈하지않고 출력하는 메서드
System.out.print(" ");
※변수
: 데이터를 저장하기 위해서 메모리에 공간을 만들고 이 공간에 이름을 부여한 것
(=데이터를 담기위한 그릇)
▶ 변수 값 할당
1. 변수선언 후 값 할당
- 선언 후 세미콜론 잊지않기
int a;
a = 23;
2. 선언 및 할당
int a = 23;
3. 여러개 동시에 선언 및 할당
- int 한번만 쓰고 선언,선언 형태로 쓰기
int a=10, b=20;
4. 여러개 분리해 선언 및 할당
- 선언 한꺼번에 하고 아래서는 변수 값 설명만 하면됨
int a,b;
a=10;
b=20;
5. 변수끼리 할당
- 변수값 설정하지 않고 선언만 하는것 가능 !
int a=10, b;
b=a;
* 주의 : 값변경은 가능하지만, 재선언은 불가하다
int a=10; (a=55;) (int a = 55;) => 같은 이름의 변수를 다시 선언할 수 없다
// 재선언 시 cmd 창 에러문:
error: variable a is already defined in method main(String[])
※자료형 (=데이터타입)
: 변수 공간을 얼마나 확보할 것인지 크기와 종류를 정하는 것
- 변수를 만들 때 어떠한 데이터가 들어가며 메모리는 몇 바이트나 차지하는지를 명시해주기도 함
▶ 기본 자료형
1. 숫자형
- 정수
| byte | 1 byte | -128~127 | |
| short | 2byte | 대략 +-32,000 | |
| int | 4byte | 대략 +-21억 | |
| long | 8byte | 대략 +-922경 | * 선언 시 뒤에 L을 붙여야함 |
- 결과값은 계산식에서 가장 큰 자료형으로 변환되어 나온다.
따라서 연산 시에는 변수의 모든 타입을 가장 큰 자료형으로 일치시켜 계산한다
- ex ) int*int*int*int= 결과값 > int 의 경우, garage 값이 나오게 된다
계산식에서 int 가 가장 큰 자료형이기 때문에 결과값도 int 로 출력되는데,
실제 결과값은 int (21억) 보다 크기때문에 에러가 발생하는것.

// error: incompatible types: possible lossy conversion from int to byte
이런경우 연산 값 중 하나를 더 큰 자료형인 long으로 변환한다.
- ex) long ab = (long)a*sh*i; // long*short*int=> long* long* long=>long
2. 숫자형 / 실수형
: 정밀도에 따라 결정
| float | 4byte | 소수이하 7 자리까지 유효 | 뒤에 f or F 를 붙여줘야 함 |
| double | 8byte | 소수이하 15 자리까지 유효 | 기본적으로 double 로 인식 |
- 정수를 포함한 모든 실수를 다룰 수 있다
- 값의 표현범위보다 정밀도를 우선시하여 선택해야 함
3. 문자형
Char a = 'A';
- *작은 따옴표로 감싸야 함
- 따옴표 안에는 문자에 해당하는 '유니코드' 값이 들어간다
- 따옴표 안에는 문자 '하나'만 저장 가능하다.
- 두개 이상 들어갈 시 에러발생
- 2byte
*유니코드 : 문자 하나를 2바이트로 표현하는 문자체계로, 세계의 모든언어 표현가능
4. 논리형
- true, false 가 들어감
- 다른프로그램에서 true =1 / false=0 으로 호환해서 쓰기도 하지만,
자바의 논리형은 0,1로 호환되지않는다
boolen
int i =5, j=9;
boolean b = i > j; //false, 따라서 b=false
System.out.println("i="+i+", j=" +j);
System.out.println("i > j : "+b);
i=5, j=9
i>j : false
5. 참조형
- "문자열" 자료형
- 숫자형과 함께 양대산맥으로 사용됨
- 선언 시 "큰따옴표" 로 감싸준다
String name = "홍길동";
- 문자열을 넣기위해 string 이라는 참조형을 사용함
★자료형 표현법 한눈에 보기

※ 자료형(data type)의 분류
▶값타입 (Value Type)
- 메모리의 스택에 저장됨
▶참조타입 (Reference Type)
- 실제값은 다른곳에 있으나 값이 존재하는 주소를 가지고와서
나중에 그 주소를 참조해서 값을 가져올 수 있는것
- 메모리의 힙에 실제값 저장
참조값을 갖는 변수는 스택에 저장
- 클래스형 중 대표적으로 string 이 있음
* 메모리
- 물리적 메모리 X , 가상메모리 O
- 변수는 모두 메모리에 저장된다
1. 메서드 영역
- (static영역)
2. 힙 영역
- (heap) 덩치가 큰 데이터 보관
- 메모리구조 : FIFO (First In First Out - 처음으로 들어온게 처음으로 나간다)
= 임이의 메모리에 데이터를 자유롭게 저장하고 제거
참조는 데이터가 저장되어있는 힙의 주소를 기억하고 있다가,
직접 데이터가 있는 곳에 접근
3. 스택 영역
- 잠깐 사용하고 삭제할 데이터 저장공간
- 메모리 구조 : LIFO (Last In First Out - 마지막으로 들어온게 제일먼저 나간다)
= 데이터가 아래서부터 쌓였다가
제거될때는 맨 위의 데이터부터 차례대로 제거됨
※ Escape Sequence
: 문자열안에서 특별한 의미로 해석되는 문자
\n : 개행 (줄바꿈, Enter)
\t : 탭(Tab)
\" : 큰 따옴표
\\ : 역슬래쉬
▽사용예시
System.out.println("그는 말했다.\"나는 java 가 재밌어!\"\n그는 말했다\t나도 java가 재밌어! " ); //한줄로 입력하기
System.out.println("\n그는 말했다.\"나는 java 가 재밌어 !\""); // 두줄로 나눠서 깔끔하게 입력하기
System.out.println("그는 말했다.\t나도 java가 재밌어!");
'JAVA' 카테고리의 다른 글
| [JAVA] for 무한루프 / scope / (0) | 2022.02.14 |
|---|---|
| [JAVA] 중첩if / switch 문 / 반복문_for (0) | 2022.02.14 |
| [JAVA] 연산자 / 제어문 (0) | 2022.02.10 |
| [JAVA] 형변환 (0) | 2022.02.09 |
| [JAVA] JAVA 실행과정 이해하기 / 자바코드의 구조 (0) | 2022.02.07 |