[SECTION02. 변수와 자료형]
int age;
String name;
메모리에 age, name이라는 저장 공간이 만들어짐.
public class Main {
public static void main(String[] args) {
int age; // 선언
age = 27; // 초기화
String name = "유프로"; // 선언과 초기화 동시에
System.out.println("나이: " + age);
System.out.println("이름: " + name);
}
}


X 1age
O age1
X my age
O myAge
X int class;
studentName, totalCount
| 대분류 | 예 | 규칙 |
|---|---|---|
| 변수/메서드 | myName | lowerCamelCase |
| 클래스 | Person, UserAccount | UpperCamelCase |
| 상수 | MAX_VALUE | 전부 대문자 + 언더바 |
다음을 코드로 작성:
나의 이름은 유프로
나의 나이는 27세
나의 키는 173.5cm


자바에서 자료형은 크게 2가지:
자바가 자체적으로 제공하는 가장 작은 단위이고, 값 그 자체가 저장됨
| 타입 | 크기 | 값 예시 |
|---|---|---|
| byte | 1byte | 10 |
| short | 2byte | 1000 |
| int | 4byte | 100000 |
| long | 8byte | 100000L |
| float | 4byte | 3.14f |
| double | 8byte | 3.141592 |
| char | 2byte | 'A' |
| boolean | 1byte | true/false |
public class DataTypeExample {
public static void main(String[] args) {
byte b = 10;
short s = 300;
int i = 20000;
long l = 100000L;
float f = 3.14f;
double d = 10.123;
char c = 'A';
boolean bool = true;
System.out.println("byte 값: " + b);
System.out.println("short 값: " + s);
System.out.println("int 값: " + i);
System.out.println("long 값: " + l);
System.out.println("float 값: " + f);
System.out.println("double 값: " + d);
System.out.println("char 값: " + c);
System.out.println("boolean 값: " + bool);
}
주소(Reference) 값이 저장된다.
실제 데이터는 힙(Heap) 공간에 위치한다.
대표 예:
| 구분 | 기본 자료형 | 참조 자료형 |
|---|---|---|
| 저장되는 값 | 실제 값 | 주소값(Reference) |
| 저장 위치 | 스택(Stack) | 힙(Heap) |
| 예시 | int, double | String, 배열 |
public class DataTypeExample {
public static void main(String[] args) {
int a = 10;
double b = a;
System.out.println(b);
}
}
정수 → 실수 변환은 안전하기 때문에 자동 변환 가능
double a = 10.5;
int b = (int) a; // 10으로 변환
데이터 손실 가능 → 개발자가 명시적으로 변환해야 함
Scanner로 입력받으면 대부분 String
→ 숫자로 변환해야 할 때 필수
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// 이 친구를 이용하면 입력을 받을 수 있다
Scanner scn = new Scanner(System.in);
System.out.print("이름 입력:");
String name = scn.nextLine();
System.out.print("나이 입력:");
int age = scn.nextInt();
System.out.println("입력하신 이름은 " + name + "입니다.");
System.out.println("입력하신 나이는 " + age + "살입니다.");
}
}
package exam0415;
import java.util.Scanner;
public class Exam01 {
public static void main(String[] args) {
Scanner scn = new Scanner(System.in);
System.out.print("첫 번째 이름:");
String name1 = scn.nextLine();
System.out.print("두 번째 이름:");
String name2 = scn.nextLine();
System.out.print("세 번째 이름:");
String name3 = scn.nextLine();
System.out.println("제 이름은 " + name1 + "입니다.");
System.out.println("제 이름은 " + name2 + "입니다.");
System.out.println("제 이름은 " + name3 + "입니다.");
}
}
| 메서드 | 설명 |
|---|---|
| nextInt() | 정수 입력 |
| nextDouble() | 실수 입력 |
| nextLine() | 문자열 입력(줄 전체) |
| next() | 문자 하나 입력 |
숫자 입력 후 엔터(\n)가 버퍼에 남아 nextLine()을 건너뛴다.
해결 방법: scn.nextLine(); // 엔터 제거
다음 데이터를 올바른 자료형으로 변수에 저장하고 모두 출력하시오.

