[Java 문법 종합반]1주차 1장~5장 정리

기 원·2025년 2월 24일

Java 문법 종합반

목록 보기
1/9


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

1. Hello Java!

1. 플랫폼의 독립성

운영체제에 따라 코드가 다르게 동작하는 문제!

자바파일(.java) -> javac -> 바이트파일 (.class)
바이트파일((.class) -> JVM -> 프로그램 실행

의 방법으로 플랫폼의 독립성 보장

2. 객체 지향

개념비유설명
클래스설계도객체를만들기 위한 정의
객체설계도를 기반으로 만을어진 존재클래스에서 만들어진 존재

3. 거대한 생태계

오래동안 선호되어 온 프로그래밍 언어
방대한 생태계, 다양한 오픈소스 라이브러리,프레임워크
쉽게 접근할 수 있는 학습자료(공식문서, 블로그, 서적등등)

간단 퀴즈

  1. JAVA의 공식 슬로건은?
  • Write once, Run Anywhere!
    한번 작성하면, 어디서든 동작!

  1. 바이트코드(.class)는 어디에서 실행 될까?
  • JVM이 해석하고 실행

  1. Java 프로그램이 컴파일된 후 생성되는 파일의 확장자는?
  • .class

  1. Java를 만든 사람은?
  • James Gosling(제임스 고슬링)

2. 컴퓨터의 기억 방식

1. 컴퓨터의 주 기억장치 - RAM-Random Access Memory

  • 휘발성
  • 빠른 속도

2. 보조기억 장치 - HDD/SSD(Hard Disk Drive/Solid State Drive)

  • 비휘발성
  • 느린 속도
구분종류특징
RAM주 기억장치휘발성, 빠름
HDD/SSD보조 기억장치영구저장, 느림
  1. Byte, Bit
  • 1 Byte = 8 Bit
    1 Bit는 0 혹은 1을 저장

간단 퀴즈

  1. 1 Byte는 몇 bit
    8 bit
  2. 1 bit에 저장할 수 있는 데이터의 수
    2개
  3. 컴퓨터의 주 기억장치
    RAM(메모리)
  4. 휘발성 메모리의 특징
    전원이 꺼지면 데이터가 사라진다.

3. 자바 프로젝트 관리

1. 이름 규칙

  • 카멜케이스(camelCase)
    javatestbox => javaTestBox

  • 스네이크케이스(snake_case)
    javatestbox => java_test_box

2. 패키지(폴더) 규칙

규칙나쁜 예시좋은예시
소문자만 활용(권장)chapTer1chapter1
숫자로 시작 금지1chapterchapter1
특수문자 사용금지chapter#1chapter1
예약어 사용금지class, publuc, static

3. 클래스 이름 규칙

규칙나쁜 예시좋은 예시
대문자로 시작myNewClassMyNewClass
스네이크케이스My_new_classMyNewClass
숫자로 시작 금지1MyNewClassMyNewClass
특수문자 사용 금지My#New#ClassMyNewClass
예약어 사용 금지class, public, static

간단 퀴즈

  1. 올바른 자바 클래스 이름
    1. Car <- 정답
    2. myCar
    3. 2ndCar
    4. _Car
  2. 올바른 자바 패키지 이름?
    1. CamelCase
    2. snake_case
    3. kebab_scase
    4. ( . )을 이용한 계층 구조 <- 정답
  3. testpackage.Car 클래스를 Main 클래스의 main 메서드에서 활용하려 할때 올바른 improt 방법
    1. import testpackage.*;
    2. import Main.testpackage.Car;
    3. import testpackage.Car; <- 정답
    4. import Car;

4. 변수-데이터의 저장 공간

1. 변수(Variable): 데이터의 저장 공간

  • 도구를 활용하고 보관하기 위해 상자에 담아 관리하듯 데이터를 활용하고 보관하기 위해 변수에 담아 관리

2. 변수의 구조

  • [자료형], [변수이름], [세미클론]
    ex) int a;

3. 변수이름 규칙

규칙나쁜 예시좋은 예시
숫자로 시작할수 없음1stCarcar1
공백 사용 불가my carmycar
예약어 사용불가int, class, true
특수문자 사용가능_ , $

4. 변수 활용

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

5. 자료형(DataType): 메모리를 사용하는 단위

  • 문자열
  • 정수형
  • 문자
  • 실수형
자료형종류범위바이트비트
boolean논리형true / false18
char문자형0 ~ 65535 유니코드 값216
byte정수형-128 ~ 12718
short정수형-32,768 ~ 32,767216
int정수형-2,147,483,648 ~ 2,147,483,647432
long정수형-9,233,372,036,854,775,808 ~ 9,233,372,036,854,775,807864
float실수형약 소수점 6~7자리까지432
double실수형약 소수점 15~17자리까지864

6. 형변환(Casting) - 자료형을 변경할 수 있을까?

형 변환 종류형 변환 방식자동 형 변환 여부설명
다운 캐스팅(Down Casting)명시적(ExplicitX큰 상자 -> 작은 상자
업캐스팅(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

7. 실무에서 자주 활용되는 변수 종류

1. 문자열 표현
2. 정수 표현
3. 논리 표현

문자열 표현

//문자열 표현
String stringBox = "문자열을 표현할 수 있습니다."; 
  • 쌍따움표( " ) 안의 문자열 데이터 표현
//문자 vs 문자열
char a = 'a'; //문자
String str = "abc"; //문자열

정수 표현

int intBox = 1;
long longBox = 1;

논리 표현

boolean booleanBox = false;

간단 퀴즈

  1. 변수 이름으로 사용할 수 없는 것
  • true <- 정답
  • car123
  • myCar
  • _car
  1. 변수 이름을 만들 때 올바른 규칙
  • 변수 이름은 숫자로 시작할 수 있다.
  • 변수 이름에는 공백(띄어쓰기)이 포함될 수 있다.
  • 변수 이름에는 특수문자(@, #, !) 를 사용할 수 있다.
  • 변수 이름은 영문자, 숫자, 언더스코어(_), $만 사용할 수 있다. < - 정답
  1. 변수 이름으로 사용가능 한것
  • myVariable <- 정답
  • int
  • 1stPlace
  • hello-world
  1. 같은 이름을 가진 변수를 같은 중괄호 안에 생성가능한가
    X
{
    int number = 10;
    int number = 20;  // 오류! 같은 블록에서 같은 이름의 변수 선언 불가
}
{
    int number = 10;
    number = 20; // 올바른 코드 (값만 변경)
}
  1. 변수 선언이 잘못된 것
a. int num = 10;
b. double price = 19.99;
c. String name = 'Steve';
d. boolean isAvailable = "true";
e. char grade = 'AB';
  • c. String name = 'Steve'; -> 쌍따옴표 사용해야함
  • d. boolean은 true 문자열 저장 불가
  • e. char은 문자 한개만 저장 가능

5. 입출력 - 프로그램과 사용자간의 대화

1. 입출력 - 자바세상과 대화하는 방법

2. 출력(OutPut)

Print, println의 차이

3. 입력(Input) - 사용자 입력 받기

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

  1. 문자열 입력받기
  • scanner.nextLine()
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);
    }
}
  1. 숫자 입력받기
  • scanner.nextInt(), scammer.nextDouble(), scanner.nextLong()
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);
    }
}

간단퀴즈

  1. 다음 코드의 출력값
System.out.println("Java\nis\nfun!");
Java
is
fun!
profile
노력하고 있다니까요?

0개의 댓글