
오늘부로 본격적인 Java 강의의 시작이다.

운영체제에 따라 코드가 다르게 동작하는 문제!
자바파일(.java) -> javac -> 바이트파일 (.class)
바이트파일((.class) -> JVM -> 프로그램 실행
의 방법으로 플랫폼의 독립성 보장
| 개념 | 비유 | 설명 |
|---|---|---|
| 클래스 | 설계도 | 객체를만들기 위한 정의 |
| 객체 | 설계도를 기반으로 만을어진 존재 | 클래스에서 만들어진 존재 |
오래동안 선호되어 온 프로그래밍 언어
방대한 생태계, 다양한 오픈소스 라이브러리,프레임워크
쉽게 접근할 수 있는 학습자료(공식문서, 블로그, 서적등등)
| 구분 | 종류 | 특징 |
|---|---|---|
| RAM | 주 기억장치 | 휘발성, 빠름 |
| HDD/SSD | 보조 기억장치 | 영구저장, 느림 |

| 규칙 | 나쁜 예시 | 좋은예시 |
|---|---|---|
| 소문자만 활용(권장) | chapTer1 | chapter1 |
| 숫자로 시작 금지 | 1chapter | chapter1 |
| 특수문자 사용금지 | chapter#1 | chapter1 |
| 예약어 사용금지 | class, publuc, static |
| 규칙 | 나쁜 예시 | 좋은 예시 |
|---|---|---|
| 대문자로 시작 | myNewClass | MyNewClass |
| 스네이크케이스 | My_new_class | MyNewClass |
| 숫자로 시작 금지 | 1MyNewClass | MyNewClass |
| 특수문자 사용 금지 | My#New#Class | MyNewClass |
| 예약어 사용 금지 | class, public, static |

| 규칙 | 나쁜 예시 | 좋은 예시 |
|---|---|---|
| 숫자로 시작할수 없음 | 1stCar | car1 |
| 공백 사용 불가 | my car | mycar |
| 예약어 사용불가 | int, class, true | |
| 특수문자 사용가능 | _ , $ |
1. 변수 선언

int a;
int b;
2. 변수에 값 할당
a = 1;
b = 2;
3. 선언과 동시에 값 할당
int c = 3;
4. 기존 변수에 데이터 재할당(reassign)
c = 4;
c = 5;
c = 6;
-> 최종값: c = 6
5. 변수에 변수를 할당
int d = 1;
int e = d;
d = 10;
System.out.printl("e = " + e);
출력값: 1
| 자료형 | 종류 | 범위 | 바이트 | 비트 |
|---|---|---|---|---|
| boolean | 논리형 | true / false | 1 | 8 |
| char | 문자형 | 0 ~ 65535 유니코드 값 | 2 | 16 |
| byte | 정수형 | -128 ~ 127 | 1 | 8 |
| short | 정수형 | -32,768 ~ 32,767 | 2 | 16 |
| int | 정수형 | -2,147,483,648 ~ 2,147,483,647 | 4 | 32 |
| long | 정수형 | -9,233,372,036,854,775,808 ~ 9,233,372,036,854,775,807 | 8 | 64 |
| float | 실수형 | 약 소수점 6~7자리까지 | 4 | 32 |
| double | 실수형 | 약 소수점 15~17자리까지 | 8 | 64 |
| 형 변환 종류 | 형 변환 방식 | 자동 형 변환 여부 | 설명 |
|---|---|---|---|
| 다운 캐스팅(Down Casting) | 명시적(Explicit | X | 큰 상자 -> 작은 상자 |
| 업캐스팅(Up Casting) | 묵시적(Implicit) | O | 작은상자 -> 큰 상자 |
double bigBox = 10.111;
int smallBox = (int) bigBox; // ✅ int <- double 명시적변환
System.out.println(smallBox); // ✅ 출력: 10 !데이터손실발생!
int smallBox = 10;
double bigBox = smallBox; // ✅ double <- int 자동형 변환
System.out.println(bigBox); // ✅ 출력: 10.0
1. 문자열 표현
2. 정수 표현
3. 논리 표현
문자열 표현
//문자열 표현
String stringBox = "문자열을 표현할 수 있습니다.";
//문자 vs 문자열
char a = 'a'; //문자
String str = "abc"; //문자열
정수 표현
int intBox = 1;
long longBox = 1;
논리 표현
boolean booleanBox = false;
_), $만 사용할 수 있다. < - 정답{
int number = 10;
int number = 20; // 오류! 같은 블록에서 같은 이름의 변수 선언 불가
}
{
int number = 10;
number = 20; // 올바른 코드 (값만 변경)
}
a. int num = 10;
b. double price = 19.99;
c. String name = 'Steve';
d. boolean isAvailable = "true";
e. char grade = 'AB';


System.out.println("Hello Java!"); // ‼️ System 도 객체
Scanner <변수이름> = new Scanner(System.in);
객체 변수명 키보드로 입력받기

import java.util.Scanner;
public class ScannerPractice {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("좋아하는 문장을 입력하세요: ");
String sentence = scanner.nextLine(); // ✅ 데이터 전달
System.out.println("좋아하는 문장: " + sentence);
}
}
import java.util.Scanner;
public class ScannerPractice {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("정수를 입력하세요: ");
int num1 = scanner.nextInt();
System.out.print("실수를 입력하세요: ");
double num2 = scanner.nextDouble();
System.out.print("큰 정수를 입력하세요: ");
long num3 = scanner.nextLong();
System.out.println("입력한 정수: " + num1);
System.out.println("입력한 실수: " + num2);
System.out.println("입력한 큰 정수: " + num3);
}
}
System.out.println("Java\nis\nfun!");
Java
is
fun!