1. 패키지와 라이브러리
1-1. 패키지
- 패키지 > 클래스에 대한 묶음 단위
- 클래스를 용도별이나, 기능별로 그룹화 한 것을 말한다. 소스코드는 폴더로 분류된 형태로 존재하게 된다.
- 서로 다른 패키지에 속해있다면 다른 클래스와 이름이 동일하더라도 충돌이 발생하지 않는다.(서로 다른 폴더에는 이름이 같은 파일들이 존재할 수 있다.)
1-2. 패키지 추가하기
- 패키지 이름의 일반적인 정의 형식
- 회사 도메인 이름의 역순, 프로젝트 이름의 소문자
ex) 회사 도메인 : kh-academy.co.kr
kr.co.khacademy.myapp.board
kr.co.khacademy.myapp.admin
// 이렇게 패키지를 만들면 폴더가 kr폴더 내의 co폴더 내의 khacademy폴더 내의 myapp폴더 내의 board폴더가 만들어진다.
1-3. 패키지에 속해 있는 클래스에 대한 객체 생성
- 패키지 이름을 포함한 FullName 으로 사용해야 한다.
kr.co.khacademy.myapp.board.Article article = new kr.co.khacademy.myapp.board.Article(1, "게시판", "2024/07/04");
- 위의 번거로움을 피하기 위해 import를 사용한다.
import kr.co.khacademy.myapp.board.Article;
public class Main01 {
public static void main(String[] args) {
Article ar = new Article(1, "게시판", "2024/07/04");
}
}
1-4. ClassPath
- 컴파일이 완료된 *.class 파일들이 위치하는 경로
- 객체를 생성할 때 대상 클래스의 소스 없이도 컴파일된 결과물만 참조해서 객체 생성 및 메서드 호출 등이 가능해 진다.
2. Library
- *.jar
- 한 개 이상의 패키지들을 배포하기 용이하도록 압축한 형태
- 다른 프로그램에서 라이브러리 안에 포함된 기능을 활용할 수 있다.
2-1. Java 기본 API
- 우리가 사용하는 JDK안에는 이미 수많은 라이브러리가 포함되어 있고, 이 라이브러리 안에는 프로그램 개발에 필요한 패키지들이 기본적으로 포함되어 있다.
- 자바 프로그래밍은 이러한 라이브러리들의 기능을 활용하여 이루어 진다.
- 이렇게 프로그램 개발을 위하여 기본적으로 제공되는 기능들을 API라 한다.
3. Wrapper Class
3-1. Wrapper Class란
- java는 데이터를 관리하기 위하여 기본 데이터 타입을 지원하지만, 클래스를 통해서 만들어진 객체를 통한 데이터 관리도 가능하다.
- 어떤 상황에서는 기본 데이터 타입의 변수를 객체형태로 사용해야 하는 경우가 있는데, 이 때 기본형 타입을 객체로 포장할 필요가 있다.
- 포장 클래스(Wrapper Class)는 특정 기본형 타입을 나타내는 용도로 사용된다.
3-2. Wrapper 클래스의 의미
- 초창기 java언어는 기본 자료형의 연산보다도 Wrapper 클래스를 사용한 연산이 더 많이 이루어졌으나, java언어가 발전함에 따라서 기본 자료형과 Wrapper 클래스 간의 연산에 차이가 없어졌다.
- 최근의 java언어는 Wrapper 클래스와 기본 자료형을 구분하지 않고 사용하기 때문에 객체로서의 특별한 의미가 없어졌다고 볼 수 있다.
3-3. Wrapper 클래스의 객체 만들기
- 각각의 Wrapper 클래스의 객체는 자신과 대응되는 기본 자료형의 데이터를 파라미터로 전달받는다.
int num = 1;
Integer wrapper = new Integer(num);
3-4. Wrapper 클래스 형변환
- 기본 자료형과 Wrapper 클래스 간에는 서로 암묵적 형변환이 가능하다.
int num = 100;
Integer wrapper = num;
------------------------------
Integer wrapper = new Integer(100);
int num = wrapper;
3-5. Wrapper 클래스의 static 데이터
- 모든 Wrapper 클래스는 static 데이터 형태로 Wrapper 클래스에 대응되는 자료형에 대한 최소값과 최대값을 가지고 있다.
int max = Integer.MAX_VALUE;
int min = Integer.MIN_VALUE;
3-6. 문자열 데이터의 형변환 중요
- 1과 "1"의 차이
- 기본 자료형과 문자열 데이터 간의 연산에서는 기본 자료형 데이터가 문자열로 변환된 후, 문자열 간의 연산으로 처리된다.
int a= 1;
String b = "1";
System.out.println(a+b);
- 사용자 입력값에 대한 연산
- 모든 프로그램 플랫폼에서 사용자의 입력값은
String으로 처리된다.
- 만약, 인터넷 뱅킹에서 2개의 계좌로 송금할
금액을 각각 입력하였을 때, 총 금액을 계산한다면
다음과 같이 처리될 것이다.
String money1 = "5000";
String money2 = "3000";
String total = money1+money2;
- 문자열 데이터를 기본 데이터 형으로 변환하기
- Wrapper 클래스에는 기본 자료형의 모양을 띄고 있는 문자열 데이터를 실제 기본 자료형으로 변환시키는 기능이 포함되어 있다.
- java에서의 Wrapper 클래스의 가장 큰 의미는 바로 이 부분이다.
String money1 = "5000";
String money2 = "3000";
int m1 = Integer.parseInt(money1);
int m2 = Integer.parseInt(money2);
System.out.println(m1 + m2);
4. Math 클래스
4-1. 수학적 연산을 지원하는 클래스
- Math 클래스는 흔히 계산을 하는데 도움이 되는 많은 수의 기본적 수학 함수들을 제공한다.
- Math 클래스는 Java 표준 클래스 라이브러리의 java.lang 패키지에 정의되어 있다.
- Math 클래스의 모든 메서드들은 static 메서드로, 클래스의 객체를 생성하지 않고 그 메서드가 정의된 클래스 이름을 통해 호출할 수 있다.
+α. LTS(Long Term Support) : 장기 지원 버전
- 소프트웨어 업데이트의 유형과 빈도를 변경하여 소프트웨어 배포의 위험부담, 비용 및 급작스런 중단을 줄여 소프트웨어의 신뢰도를 향상시킨다.
- 기업에서는 LTS버전을 채택하므로써 사용하는 소프트웨어의 버전 업그레이드에 대한 부담을 줄이고 안정성을 높힐 수 있다.
- Java는 8, 11, 17, 21 버전이 LTS버전이다.