패키지
- 클래스의 묶음
- 서로 다른 패키지에 동일한 이름의 클래스 사용 가능
- 각 계층은 도트 (.)로 구분
- 접근지정자
- public : 어디서든 가능
- default : 같은 패키지면 가능
- private : 불가
- 클래스 경로명 : 패키지이름 + 클래스 이름
java.util.Scanner 패키지명.클래스명
자바 표준 패키지
모듈
- 여러개의 모듈로 분할됨
- 모듈 적용 필수 아님 (우리는 사용 x)
주요 패키지들
java.base 모듈
- java.lang
- 문자열, 수학, 표준 입출력 (String, System, Math)
- 패키지명 없이 사용 가능
- java.util
- 날짜, 시간, 벡터, 해시맵 (Scanner, Collection, Callender)
- java.io
java.desktop 모듈
- java.awt : 기본 GUI
- java.swing : 추가 GUI
패키지에 포함된 클래스 사용 방법
1. 패키지명 포함한 클래스 이름 사용
java.util.Scanner s;
s= new java.util.Scanner(System.in);
2. 소스 맨 앞에 import 선언문 사용
import java.util.Scanner;
Scanner s;
s= new SCanner(System.in);
import <패키지경로.클래스명>; //온전하게 선언해주자
import <패키지경로.*>; //바람직하지 않다
단축키 : ctrl + shift + o
패키지 선언
package 패키지명;
- 각 패키지명은 .으로 구분
- . 으로 구분된 패키지명은 별도의 서브 디렉토리에 나누어 저장
- java.util.Scanner -> java/util/Scanner.class
- 패키지 경로가 같으면 동일 디렉토리 존재
사용자 패키지의 생성
- 디폴트 패키지 (따로 지정 x)
- 이클립스에서 패키지 생성
자바 기본 API 클래스
java.lang.Object 클래스
- 기본 클래스
- boolean, int, String
Wrapper 클래스
- 기본 자료형을 객체로 나타내기 위한 클래스
- 문자열을 기본 자료형으로 변환
- 예: 정수 10을 객체로 나타내는 Integer 객체



java.lang.String 클래스
String 클래스의 객체 생성 방법
암시적 생성
- 이미 같은 문자열이 등록되어 있다면 그 문자열의 참조 변수 넘겨 받음
- == 연산자로 문자열 비교 가능하지만 바람직하지 않다!!
String s = "Hello";
명시적 생성
String s2 = new String("hello");
- 항상 heap 영역에 새로 생성
- == 연산자로 비교 가능
s1.equals(s2) 사용하자!! 중요!!
문자열의 비교
- boolean equals(String another)
- int compareTo(String another)
- 이 문자열이 another 보다 먼저 나오면 음수 반환
- 반대면 양수 반환
- 같으면 0 반환
java.lang.StringBuffer 클래스
- 가변 문자열
- 객체 생성시 여유 공간 할당 받을 수 있음
- StringBuffer 객체는 편집 가능
- string 객체가 아니기에 끝나고 toString 메소드 통해 string 객체로 반환
StringBuffer s1 = new StringBuffer("hi");
s1.append("!!");
String s2 = s1.toString();





