JAVA에서의 식별자란?
★ 클래스, 변수, 상수, 메소드 등에 붙이는 이름, 즉 변수명을 지칭함 |
식별자 원칙?
★ @, #, !와 같은 특수문자 사용 불가 |
★ 예외로 '_(언더바)', '$(달러)'는 사용 가능 |
★ 한글 사용은 가능하지만, 변수명은 영어로 하는 것이 좋음 |
★ 공백은 불가능함 |
★ 미리 정의된 키워드(예약어)는 식별자로 사용 불가 |
★ 첫글자로는 사용 불가능하지만, 숫자 사용은 가능함 |
자바의 예약어
자바의 데이터 타입
타입 | 크기 | 의미 |
boolean | true, false | 논리 타입 |
char | 1자리(2비트) | 문자 타입 |
byte | ![]() |
정수 타입 |
short | ![]() |
정수 타입 |
int | ![]() |
정수 타입 |
long | ![]() |
정수 타입 |
float | ![]() |
실수 타입 |
double | ![]() |
실수 타입 |
실수 형 타입을 사용할 때 주의할 점
import java.math.BigDecimal;
public class BigDecimalExample {
public static void main(String[] args) {
// BigDecimal 객체 생성
BigDecimal num1 = new BigDecimal("123.45");
BigDecimal num2 = new BigDecimal("67.89");
// 덧셈
BigDecimal sum = num1.add(num2);
System.out.println("덧셈: " + sum);
// 뺄셈
BigDecimal difference = num1.subtract(num2);
System.out.println("뺄셈: " + difference);
// 곱셈
BigDecimal product = num1.multiply(num2);
System.out.println("곱셈: " + product);
// 나눗셈 (소수점 처리)
BigDecimal quotient = num1.divide(num2, 2, BigDecimal.ROUND_HALF_UP);
// 두 번째 파라미터는 소수점 자리수, 세 번째는 반올림 방법
System.out.println("나눗셈: " + quotient);
}
}
★ float 또는 double과 같은 기본 부동소수점 자료형은 근사값을 사용하므로 금융 계산과 같은 정밀도가 중요한 연산에는 적합하지 않음 |
★ BigDecimal 클래스는 이러한 문제를 해결하기 위해 정확한 소수점 연산을 제공 |
★ BigDecimal 은 불변(immutable) 객체, 즉, 한번 생성되면 그 값을 변경할 수 없음 |
★ 문자열 생성자를 사용하는 것이 부동소수점 오류를 피하는 가장 안전한 방법 |
★ 기본 산술연산자를 직접 사용할 수 없으며, 대신 메서드를 사용함 |
JAVA에서의 String
참조형 데이터 타입 - 기본형 타입을 참조형으로
각, 기본형 타입은 매칭이 되는 참조형 타입이 존재한다. |
기본형 타입을 참조형 타입으로 바꿔서 사용해야 하는 경우가 존재하기 때문이다. |
참조형 타입을 사용해야 하는 경우
null 값을 다뤄야 할 때 | 기본형 타입은 null 값을 저장할 수 없습니다. 반면, 참조형 타입은 객체이므로 null을 할당할 수 있습니다. 예를 들어, Integer 객체는 null을 가질 수 있지만 int는 기본적으로 0으로 초기화됩니다. |
컬렉션에 저장할 때 | Java의 컬렉션 프레임워크(예: ArrayList, HashMap 등)는 참조형 타입만 저장할 수 있습니다. 그래서 기본형 타입을 컬렉션에 저장하려면 해당하는 래퍼 클래스(예: Integer, Double 등)를 사용해야 합니다. |
Java의 출력 함수
System.out.print(내용) | 괄호 안의 내용을 출력 |
System.out.println(내용) | 괄호 안의 내용을 출력 + 개행 |
System.out.printf("형식문자열", 값1, 값2, ....); | 형식 문자열에 맞게 각각의 값을 출력 |
JAVA에서 사용 가능한 형식 문자열
표현 | 의미 |
%d | 정수형 값을 10진수로 출력 |
%i | 정수형 값을 10진수로 출력 (기본적으로 %d와 동일) |
%f | 부동소수점(float) 숫자 출력 (소수점 이하 6자리까지 기본) |
%s | 문자열 출력 |
%c | 단일 문자 출력 |
%x | 정수형 값을 16진수로 출력 (소문자 알파벳 사용) |
%X | 정수형 값을 16진수로 출력 (대문자 알파벳 사용) |
%o | 정수형 값을 8진수로 출력 |
%e | 부동소수점 숫자를 지수 형식으로 출력 (소문자 e 사용) |
%g | 부동소수점 숫자를 자동으로 소수점 형식 또는 지수 형식으로 출력 |
%G | 부동소수점 숫자를 자동으로 소수점 형식 또는 지수 형식으로 출력 (대문자 사용) |
%ld | long 타입의 정수 출력 |
%lf | double 타입의 부동소수점 숫자 출력 |
%t | 날짜 및 시간 출력 (특정 언어에서 사용) |
%b | 불리언 값을 출력 (True/False 또는 1/0 등으로 표현) |
JAVA에서의 Input - Scanner
import java.util.Scanner;
Scanner scanner = new Scanner(System.in);
//Scanner 객체를 생성해 scanner 변수에 대입
String str = scanner.nextLine();
//Enter 키를 누르면 입력된 문자열을 읽음
System.in으로 키보드 입력을 받게 하고, 읽은 값을 다양한 타입(String, int, double, boolean, char 등)으로 변환하여 리턴해줌
Scanner 클래스 주요 메소드
System.out.println("공백으로 구분하여 이름/나이/키/결혼여부를 입력해주세요 >>");
Scanner scanner = new Scanner(System.in);
String name = scanner.next(); // 공백 이전까지 문자열 읽음
int age = scanner.nextInt(); // 공백 이전까지 정수 읽기
double height = scanner.nextDouble(); // 공백 이전까지 실수 읽기
boolean single = scanner.nextBoolean(); // 공백 이전까지 불리언 읽기
System.out.println("==== 입력 결과 출력 ====");
System.out.println("이름: " + name);
System.out.println("나이: " + age);
System.out.println("키: " + height);
System.out.println("결혼 여부: " + single);
scanner.close(); // scanner 닫
next() | 공백 이전까지의 입력 값을 return |
nextLine() | 엔터 이전까지의 문자열을 읽음 |
nextInt() | 공백 이전까지의 정수를 읽음 |
nextDouble() | 공백 이전까지의 실수를 읽음 |
nextBoolean(), nextFloat() 등등 다양한 변수별 메소드가 존재함 | |
단, Scanner를 사용했으면 close() 명령어를 이용해서 닫아주어야 한다. |
'국비지원 공부 정리 > Java' 카테고리의 다른 글
객체지향 프로그래밍과 객체 (0) | 2025.04.08 |
---|---|
JAVA 예외처리 (0) | 2025.04.08 |
자바의 반복문 (0) | 2025.04.05 |
Arrays 클래스와 ArrayList (0) | 2025.04.05 |
JAVA란? (0) | 2025.04.04 |