1. 오늘 학습 주제
Java의 가장 기초가 되는 문법 흐름을 정리했다.
리터럴과 변수부터 시작해서, 상수와 형변환, 연산자, 메서드 호출 방식, 그리고 package와 import를 통한 클래스 사용까지 전체적인 기본 구조를 익혔다.
- 리터럴과 자료형 이해하기
- 변수 선언과 초기화 방식 익히기
- final을 사용한 상수 선언 배우기
- 자동 형변환과 강제 형변환 이해하기
- 오버플로우가 발생하는 이유 확인하기
- 산술, 비교, 논리, 삼항 연산자 사용하기
- 메서드 호출 구조와 전달인자/매개변수 구분하기
- static 메서드와 일반 메서드 차이 이해하기
- package, import, Math, Random 사용법 익히기
2. 리터럴과 자료형
가장 먼저 Java에서 직접 값을 작성하는 방식인 리터럴을 학습했다.
정수, 실수, 문자, 문자열, 논리값이 각각 어떤 형태로 표현되는지 확인했다.
System.out.println(123);
System.out.println(1.23);
System.out.println('a');
System.out.println("안녕하세요");
System.out.println(true);
- 정수는 123처럼 작성한다.
- 실수는 1.23처럼 작성한다.
- 문자는 'a'처럼 작은따옴표를 사용한다.
- 문자열은 "안녕하세요"처럼 큰따옴표를 사용한다.
- 논리값은 true, false로 표현한다.
3. 변수와 초기화
변수는 데이터를 저장하기 위한 메모리 공간이며, 자료형에 맞게 선언해야 한다.
또한 변수를 선언한 뒤 처음 값을 넣는 과정을 초기화라고 한다.
int point = 100;
boolean isTrue = true;
String str;
- 변수는 자료형 변수명; 형태로 선언한다.
- 기본 자료형으로 정수, 실수, 문자, 논리형을 사용할 수 있다.
- 문자열은 기본 자료형이 아니라 String으로 다룬다.
- 선언과 동시에 값을 넣을 수도 있고, 나중에 초기화할 수도 있다.
4. 상수와 final
변하지 않는 값을 저장할 때는 final 키워드를 사용해 상수를 만든다.
상수는 한 번 값이 저장되면 다시 변경할 수 없다.
final int AGE = 20;
final int MAX_AGE = 50;
- 상수는 final 키워드로 선언한다.
- 초기화 이후에는 값을 다시 대입할 수 없다.
- 이름은 보통 모두 대문자로 작성하고, 단어 사이는 _로 구분한다.
5. 형변환과 오버플로우
Java에서는 자료형이 다른 값끼리 연산할 때 형변환이 일어난다.
작은 자료형에서 큰 자료형으로는 자동 형변환이 가능하고, 반대는 강제 형변환이 필요하다.
byte bnum = 1;
short snum = bnum;
long lnum1 = 8;
int inum1 = (int) lnum1;
- 작은 범위에서 큰 범위로는 자동 형변환이 된다.
- 큰 범위에서 작은 범위로는 (자료형)을 사용한 강제 형변환이 필요하다.
- 실수를 정수로 바꾸면 소수점 아래 값은 손실된다.
오버플로우도 함께 확인했다.
byte num1 = 127;
num1++;
System.out.println(num1); // -128
- 자료형이 표현할 수 있는 최대 범위를 넘으면 값이 순환한다.
- int 범위를 넘는 큰 계산은 결과가 잘못될 수 있다.
- 큰 수 연산은 계산 전에 long으로 바꿔야 안전하다.
6. 연산자
산술, 비교, 논리, 삼항 연산자를 예제를 통해 확인했다.
int result = ++firstNum * 3;
System.out.println(num1 == num2);
System.out.println(a < b && c > d);
String result2 = (num1 > 0) ? "양수다." : "양수가 아니다.";
- 산술 연산자로 +, -, *, /, %를 사용한다.
- 증감 연산자 ++, --는 위치에 따라 실행 시점이 달라진다.
- 비교 연산자는 결과를 true 또는 false로 반환한다.
- 논리 연산자는 여러 조건식을 결합할 때 사용한다.
- 삼항 연산자는 조건에 따라 두 값 중 하나를 선택할 때 사용한다.
문자열 비교 방식도 배웠다.
System.out.println(str1.equals(str4));
- 문자열은 ==보다 .equals()로 비교해야 한다.
- ==는 주소값 비교, .equals()는 실제 값 비교이다.
7. 메서드와 호출 흐름
메서드는 특정 작업을 수행하는 명령문의 묶음이다.
코드를 기능별로 나눌 수 있고, 호출 흐름도 더 명확하게 만들 수 있다.
public void methodA() {
methodB();
}
- 메서드는 반복되는 작업을 분리할 때 유용하다.
- 한 메서드 안에서 다른 메서드를 호출할 수 있다.
- 프로그램 실행 흐름을 단계적으로 나눠서 이해할 수 있다.
전달인자와 매개변수도 함께 학습했다.
app2.printUserInfo("판다", 45, 'M');
- 메서드를 호출할 때 넘기는 값은 전달인자(argument)이다.
- 메서드에서 받는 변수는 매개변수(parameter)이다.
- 타입, 개수, 순서를 맞춰서 전달해야 한다.
반환값도 확인했다.
public String createProfile(String name, int age) {
return name + "님의 나이는 " + age + "세 입니다.";
}
- void가 아닌 메서드는 반드시 값을 return 해야 한다.
- 반환값은 변수에 저장하거나 바로 사용할 수 있다.
8. static 메서드와 일반 메서드
메서드는 크게 일반 메서드와 static 메서드로 나눌 수 있다.
public int minNumberOf(int first, int second) { ... }
public static int maxNumberOf(int first, int second) { ... }
- 일반 메서드는 객체를 생성한 뒤 호출해야 한다.
- static 메서드는 클래스명으로 바로 호출할 수 있다.
- 같은 클래스 안에서는 static 메서드 호출 시 클래스명을 생략할 수도 있다.
System.out.println(Application3.sumTwoNumbers(10, 29));
9. package와 import
클래스가 서로 다른 위치에 있더라도 package와 import를 사용하면 필요한 클래스를 가져와 사용할 수 있다.
import com.ohgiraffers.section01.method.Calculator;
- package는 클래스를 논리적으로 구분하는 폴더 개념이다.
- import를 사용하면 긴 클래스 경로를 매번 쓰지 않아도 된다.
- 다른 패키지에 있는 클래스도 편하게 재사용할 수 있다.
10. Math와 Random API
기본 제공 API도 함께 연습했다.
Math 클래스와 Random 클래스를 사용해 수학 계산과 난수 생성을 해봤다.
System.out.println(Math.min(34, 46));
System.out.println(Math.PI);
System.out.println(Math.random());
Random random = new Random();
int randomNum = random.nextInt(10);
- Math는 자주 쓰는 수학 기능을 제공한다.
- Math.random()은 0.0 이상 1.0 미만의 실수를 반환한다.
- Random 객체를 사용하면 원하는 범위의 정수 난수를 만들 수 있다.
11. 오늘 학습 흐름 정리
11.1 Java 기본 문법
- 리터럴의 종류 확인
- 변수 선언과 초기화 학습
- 상수 final 사용법 익히기
- 자동 형변환, 강제 형변환 이해
- 오버플로우 발생 원리 확인
11.2 연산과 메서드
- 산술, 비교, 논리, 삼항 연산자 학습
- 문자열 비교 시 .equals() 사용 이유 이해
- 메서드 호출 구조와 반환값 학습
- static 메서드와 일반 메서드 차이 학습
11.3 클래스 활용
- package와 import 개념 정리
- Math, Random 같은 Java API 사용 연습
12. 오늘 배운 핵심 정리
- Java의 값은 리터럴 형태로 작성하며, 자료형에 따라 표현 방식이 다르다.
- 변수는 자료형에 맞게 선언하고 초기화해야 한다.
- 상수는 final로 선언하며 한 번 값이 정해지면 변경할 수 없다.
- 작은 자료형에서 큰 자료형으로는 자동 형변환이 가능하다.
- 큰 자료형에서 작은 자료형으로 바꿀 때는 강제 형변환이 필요하다.
- 자료형 범위를 넘는 연산은 오버플로우가 발생할 수 있다.
- 문자열 비교는 ==가 아니라 .equals()를 사용해야 한다.
- 메서드는 기능 단위로 코드를 분리하고 재사용성을 높여준다.
- 전달인자와 매개변수는 서로 다른 개념이다.
- static 메서드는 객체 생성 없이 클래스명으로 호출할 수 있다.
- package와 import를 사용하면 다른 클래스와 API를 효율적으로 사용할 수 있다.
- Math와 Random은 Java에서 자주 쓰이는 기본 API이다.
'TIL > [TIL]' 카테고리의 다른 글
| [TIL]2차원 배열, 배열 복사와 정렬, 클래스와 객체, 캡슐화 (0) | 2026.05.01 |
|---|---|
| [TIL]Java 제어문과 배열 (0) | 2026.04.30 |
| [TIL]Java Literal과 자료형 연산 이해 (0) | 2026.04.28 |
| [TIL]Mini Cart 프로젝트, json-server, API Layer 분리, Zustand persist (0) | 2026.04.28 |
| [TIL]React Query, json-server, Zustand persist, CRUD 테스트 (0) | 2026.04.24 |