썬키 2021. 12. 2. 22:15

21.12.02
: API

①자바 API 도큐먼트
1. 자바 API
1)자바에서 기본적으로 제공하는 라이브러리이다.
2)프로그램 개발에 자주 사용되는 클래스 및 인터페이스의 모음을 말한다.

②java.lang과 java.util 패키지
1.java lang 패키지
1)자바 프로그램의 기본적인 클래스를 담고 있는 패키지
2)포함된 클래스와 인터페이스는 import 없이 사용할 수 있다.
3)주요 클래스 : Object, System, Class, String, StringBuffer, StringBuilder, Math, Wrapper

③Object 클래스
1.자바의 최상의 부모 클래스
1)다른 클래스를 상속하지 않으면 암시적으로  java.lang.Object 클래스를 상속
2)Object의 메소드는 모든 클래스에서 사용할 수 있다.

2.객체 비교(equals())

public boolean equals(Object obj){...}


1)기본적으로 == 연산자와 등일한 결과를 리턴(번지 비교)

Object obj1 = new Object();
Object obj2 = new Object();

boolean result = obj.equals(obj2);
boolean result = (obj1 == obj2)


2)논리적 동등을 위해 오버라이딩 필요
-논리적 동등 = 객체가 같건 다르건 상관없이 객체가 저장하고 있는 데이터가 동일
-Object의 equlas() 메소드는 직접 사용되기 보다는 재정의하여 논리적 동등 비교
할때 이용

④System 클래스
1.System 클래스 용도
1)운영체제의 기능을 일부 이용 가능
-프로그램 종료, 키보드로부터 입력, 모니터로 출력, 메모리 정리, 현재 시간 읽기
-시스템 프로퍼티 읽기, 환경 변수 읽기

2.프로그램 종료(exit())
1)강제적으로 JVM을 종료
-int 매개값을 지정하도록 되어 있는데, 이 값을 종료 상태값이라고 한다.
-만약 특정 상태값이 입력되었으 경우에만 종료하고 싶다면 자바의 보안관리자를 설
정한다.

3.현재 시간 읽기(currentTimeMillis(), nano Time())
1)현재 시간을 밀리세컨드(1/1000초)과 나노세컨드 단위의 long 값을 리턴한다.

long time = System.currentTimeMillis();
long time = System.nanoTime();



2)주로 프로그램 실행 소요 시간을 구할때 이용된다.


4.시스템 프로퍼티 읽기(getProperty())
1)시스템 프로퍼티
-JVM이 시작할 때 자동 설정 되는 시스템의 속성값

String value = System.getProperty(String key);



5.환경 변수 읽기(getenv())
1)운영체제가 제공하는 환경 변수의 값을 읽는다.

String value = System.getenv(String name);




⑤String 클래스
1.생성자
1)byte[] 배열을 문자열로 변환하는 생성자
2)키보드로부터 읽은 바이트 배열을 문자열로 변환

byte[] bytes = new byte[100];
int readByteNo = System.in.read(bytes);
String str = new String(bytes, 0, readByteNo-2);



3)문자열 찾기(indexOF())
-매개값으로 주어진 문자열이 시작되는 인덱스를 리턴한다.
-주어진 문자열이 포함되어 있지 않으면 -1을 리턴한다.

String subjucet = "자바 프로그래밍";
int index = subject.indexOf("프로그래밍");
if(문자열.indexOf("찾는문자열") != -1){
  //포함되어 있는 경우
}else{
//포함되어 있지 않은 경우
}



4)문자열 길이(length())

String subject = "자바 프로그래밍";
int length = subject.length();



5)문자열 대치(replace())
-첫번째 매개값인 문자열을 찾아 두번째 매개값인 문자열로 대치한 새로운 문자열을 
리턴

String oldStr = '자바 프로그래밍";
String newStr = oldStr.replace("자바", "JAVA");


6)문자열 잘라내기(substring())
-substring(int beginIndex, int endIndex)
:주어진 시작과 끝 인덱스 사이의 문자열을 추출
-substring(int beginIndex)
:주어진 인덱스 이후부터 끝까지 문자열을 추출

public class FileInfoTask {
	public static void main(String[] args) {
		//폴더를 구분하는 기호 역슬래시(\) 하나는 자바에서 특수문자로 처리하기 때문에
		//역슬래시(\\) 두개를 이용하여 폴더를 구분하도록 한다.
		
		String file = "C:\\temp\\movie.action\\hunter.11.mp4";
		
		
		//1. 드라이버명을 출력하시오. "C:"
		//substring(int beginIndex, int endIndex) 메소드를 이용한다.
		//beginIndex는 0, endIndex는 2로 설정하고 출력한다.
		String drive = file.substring(0,2);
		System.out.println("드라이버명: " + drive);
		
		//2. 폴더 정보를 가져오시오. "\\temp\\movie.action"
		//beginIndex는 2가 되고, endIndex는 20으로 설정하고 출력한다.
		int folderPoint = file.indexOf("\\");
		System.out.println(folderPoint);
		int filePoint = file.lastIndexOf("\\");
		System.out.println(filePoint);
		String folder = file.substring(folderPoint,filePoint);
		System.out.println("폴더 위치: " + folder);
		
		//3. 파일명 정보를 가져오시오. "hunter.11:
		//substring(int beginIndex, int endIndex)
		//beginIndex는 21가 되고, endIndex는 30으로 설정하고 출력한다.
		int exePoint = file.lastIndexOf(".");
		System.out.println(exePoint);
		System.out.println("파일명 정보: " + file.substring(filePoint +1, exePoint));
		
		//4. 확장명 정보를 가져오시오. "mp4"
		//-substring(int beginIndex)을 이용한 출력방법
		System.out.println("lastIndexOf를 이용한 출력: " + file.substring(exePoint+1));
	}
}