11장. 기본 API 클래스.

Slides:



Advertisements
Similar presentations
멘토링 2 주차 장 프로그래밍을 위한 자바의 자료형  값이 변하지 않는 상수  메모리 기억공간인 변수.
Advertisements

Unlocking Android 인텐트 (Intent) 2 Unlocking Android 인텐트 클래스 활용 3.
2013학년도 3-1 정보컴퓨터공학부 컴퓨터 소프트웨어 설계 및 실험
Vision System Lab, Sang-Hun Han
자바 키워드 & 문자열 다루기 인터넷 프로그래밍 강의자료 3 (1, 3반) 한용재
제 7주 2015년 1학기 강원대학교 컴퓨터학부 담당교수: 정충교
기초적인 자바 클래스들 JDK 라이브러리에 대하여 문자열 관련 클래스들의 사용 방법 날짜/시간 관련 클래스들의 사용 방법
22강 API - I - JAVA필수 API - String의 이해 - String의 문제점
제 6 장 패키지 개념과 자바 기본 패키지 java applet awt beans io lang math net nio rmi
어서와 Java는 처음이지! 제2장 자바 프로그래밍 기초.
컴퓨터 응용 및 실습 Part1. OOP&Java Programming data type Review
어서와 Java는 처음이지! 제2장 자바 프로그래밍 기초.
어서와 Java는 처음이지! 제4장 배열.
제14장 원격 메소드 호출 김 기 환. 조 명 휘.
Java Presentation 중간 시험2 풀이
4부 클래스 라이브러리 “4부에서는 자바 언어의 API인 클래스 라이브러리에 관해 설명합니다
윤 홍 란 제3장 클래스와 객체의 사용-1 윤 홍 란
2주 실습강의 Java의 기본문법(1) 인공지능연구실.
Chapter 02 자바 기본구조 자바 프로그래밍의 기초적인 문법을 소개
표준 API(클래스라이브러리)의 기본 클래스 활용
2강. JAVA 프로그래밍이란?-II & 변수 JAVA 프로그램 환경설정과 실행 방법 변수란?
명품 JAVA Essential.
정적 메소드와 정적 변수 상수 래퍼 클래스 포매팅
명품 JAVA Essential.
3. 자바에서 지원하는 패키지 자바에서 기본적으로 제공하는 패키지.
Power Java 제4장 자바 프로그래밍 기초.
[INA470] Java Programming Youn-Hee Han
8장 자바 입출력.
Department of Computer Software MyongJi University
13.5 GregorianCalendar 클래스 13.6 Vector 클래스와 Enumeration 인터페이스
JAVA 프로그래밍 6장 객체지향프로그래밍의 핵심.
Power Java 제10장 배열.
Choi, Namseok Java 기초 (Java의 제어문과 배열) Choi, Namseok
Lesson 5. 레퍼런스 데이터형.
Java Programming Language (4)
Chap09 패키지와 주요 클래스 9.1 패키지 개요와 패키지의 사용 9.2 java.lang 패키지의 개요
명품 Java Programming.
제 11 장 java.lang 패키지 제 12 장 문자열 제 13 장 유틸리티 제 14 장 입출력 제 15 장 네트워킹
Power Java 제7장 클래스와 객체.
3 장 Visual Basic 2010 기본 문법 3.1 변수 3.2 데이터 형식 3.3 연산자 3.4 제어문
제 2 장 변수와 상수.
Power Java 제20장 패키지.
김준현.
자바 5.0 프로그래밍.
정보컴퓨터공학부 컴퓨터 소프트웨어 설계 및 실험
12장 문자열 12.1 문자열의 개요 12.2 String 클래스 12.3 StringBuffer 클래스.
23강 API - II - 약방의 감초 Random 클래스 - Scanner 및 Sysout - Wrapper 클래스의 이해
Arrays 요약.
컴퓨터의 기초 제 2강 - 변수와 자료형 , 연산자 2006년 3월 27일.
03. 안드로이드를 위한 Java 문법 제목. 03. 안드로이드를 위한 Java 문법 제목.
15장. 컬렉션 프레임워크.
인터넷응용프로그래밍 JavaScript(array).
제 2장 어휘구조와 자료형 토 큰 리 터 럴 주 석 자 료 형 배 열 형.
Java의 정석 제 2 장 변수(Variable) Java 정석 남궁성 강의
제1장 자료구조를 배우기 위한 준비.
4장 - PHP의 표현식과 흐름 제어-.
컴퓨터공학실습(I) 3주 인공지능연구실.
Java의 정석 제 4 장 조건문과 반복문 Java 정석 남궁성 강의
Power Java 제11장 상속.
8 기본 내장 객체.
Java 3장. 자바의 기본 구조 I : 변수, 자료형, 연산자 public class SumTest {
자바 5.0 프로그래밍.
C# 10장. 참조형.
Chap. 8 자바 가상 머신의 클래스 로더 사용 PS Lab. 이지연.
제 14 장 응용 계층과 클라이언트-서버 모델 클라이언트-서버 모델 14.2 동시성 14.3 프로세스 14.4 요약.
명품 JAVA Programming.
Choi Younghwan CSE HUFS
자바 가상 머신 프로그래밍 Chapter 3. 메소드 작성하기 Pslab 오민경.
PHP 기초문법 PHP를 공부하는데 있어 가장 기초가 되는 PHP기초문법에 대해서 배워 봅니다.
Chapter8 : 인터페이스와 패키지 8.1 인터페이스 개요와 인터페이스 정의 8.2 인터페이스의 사용
Presentation transcript:

11장. 기본 API 클래스

1절. 자바 API 도큐먼트 2절. java.lang과 java.util 패키지 3절. Object 클래스 4절. Objects 클래스 5절. System 클래스 6절. Class 클래스 7절. String 클래스 8절. StringTokenizer 클래스

9절. StringBuffer, StringBuilder 클래스 10절. 정규 표현식과 Pattern 클래스 11절. Arrays 클래스 12절. 포장(Wrapper) 클래스 13절. Math, Random 클래스 14절. Date, Calendar 클래스 15절. Format 클래스 16절. java.time 패키지

1절. 자바 API 도큐먼트 자바 API란? API 도큐먼트 (p.454~456) 자바에서 기본적으로 제공하는 라이브러리(library) 프로그램 개발에 자주 사용되는 클래스 및 인터페이스 모음 API 도큐먼트 (p.454~456) 쉽게 API 찾아 이용할 수 있도록 문서화한 것 HTML 페이지로 작성되어 있어 웹 브라우저로 바로 볼 수 있음 http://docs.oracle.com/javase/8/docs/api/

2절. java.lang과 java.util 패키지 자바 프로그램의 기본적인 클래스를 담은 패키지 포함된 클래스와 인터페이스는 import 없이 사용 주요 클래스

3절. Object 클래스 자바의 최상위 부모 클래스 자바의 최상위 부모 클래스 다른 클래스 상속하지 않으면 java.lang.Object 클래스 상속 암시 Object의 메소드는 모든 클래스에서 사용 가능

3절. Object 클래스 객체 비교(equals() 메소드) 기본적으로 == 연산자와 동일한 결과 리턴 (번지 비교) 논리적 동등 위해 오버라이딩 필요 논리적 동등이란? 같은 객체이건 다른 객체이건 상관없이 객체 저장 데이터 동일 Object의 equals() 메소드 재정의하여 논리적 동등 비교할 때 이용

3절. Object 클래스 객체 해시코드(hashCode()) (p.461~463) 객체 해시코드란? 객체 식별할 하나의 정수값 객체의 메모리 번지 이용해 해시코드 만들어 리턴 개별 객체는 해시코드가 모두 다름 논리적 동등 비교 시 hashCode() 오버라이딩의 필요성 컬렉션 프레임워크의 HashSet, HashMap, Hashtable 과 같은 클래스 는 두 객체가 동등한 객체인지 판단할 때 아래와 같은 과정을 거침

3절. Object 클래스 객체 문자정보(toString()) 객체를 문자열로 표현한 값 일반적으로 의미 있는 문자정보가 나오도록 재정의 Date 클래스- 현재 시스템의 날짜와 시간 정보 리턴 String 클래스 - 저장하고 있는 문자열 리턴 System.out.pritnln(Object) 메소드 Object의 toString()의 리턴값 출력

3절. Object 클래스 객체 복제(clone()) 원본 객체의 필드 값과 동일한 값을 가지는 새로운 객체 생성하는 것 복제 종류 얕은 복제(thin clone): 필드 값만 복제 (참조 타입 필드는 번지 공유) 깊은 복제(deep clone): 참조하고 있는 객체도 복제 Object의 clone() 메소드 동일한 필드 값 을 가진 얕은 복제된 객체 리턴 java.lang.Cloneable 인터페이스 구현한 객체만 복제 가능 깊은 복제 - clone() 메소드 재정의하고 참조 객체도 복제해야

3절. Object 클래스 객체 소멸자(finalize()) GC는 객체를 소멸하기 직전 객체 소멸자(finalize()) 실행 Object의 finalize() 는 기본적으로 실행 내용이 없음 객체가 소멸되기 전에 실행할 코드가 있다면? Object의 finalize() 재정의 될 수 있으면 소멸자는 사용하지 말 것 GC는 메모리의 모든 쓰레기 객체를 소멸하지 않음 GC의 구동 시점이 일정하지 않음

4절. Objects 클래스 Objects 클래스 Object의 유틸리티 클래스

4절. Objects 클래스 객체 비교 (Objects.compare(T a, T b, Comparator<T> c)) a, b 두 객체를 비교자(c)로 비교해 int값 리턴 Comparator<T> 인터페이스 제너릭 인터페이스 타입 T 타입의 객체를 비교하는 compare(T a, T b) 메소드 가짐 비교 예제 p.474~476

4절. Objects 클래스 동등 비교(equals()와 deepEquals()) 두 객체의 동등 비교 Objects.equals(Object a, Object b) deepEquals(Object a, Object b) 비교할 객체가 배열일 경우 항목 값까지도 비교

4절. Objects 클래스 해시코드 생성(hash(), hashCode()) Objects.hash(Object… values) 매개값으로 주어진 값들 이용해 해시 코드 생성하는 역할 Arrays.hashCode(Object[]) 호출해 해시코드 얻어 리턴 클래스의 hashCode()의 리턴값 생성할 때 유용하게 사용 Objects.hashCode(Object o) o.hashCode() 호출하고 받은 값 리턴 매개값이 null 이면 0 리턴

4절. Objects 클래스 널 여부 조사(isNull(), nonNull(), requireNonNull()) Objects.isNull(Object obj) obj가 null일 경우 true Objects.nonNull(Object obj) obj가 not null일 경우 true requireNonNull()

4절. Objects 클래스 객체 문자정보(toString()) 객체의 문자정보 리턴 첫 번째 매개값이 not null - toString ( )으로 얻은 값을 리턴 null이면 “null” 또는 두 번째 매개값인 nullDefault 리턴

5절. System 클래스 System 클래스 용도 프로그램 종료(exit()) 운영체제의 기능 일부 이용 가능 프로그램 종료, 키보드로부터 입력, 모니터 출력, 메모리 정리, 현재 시간 읽기 시스템 프로퍼티 읽기, 환경 변수 읽기 프로그램 종료(exit()) 기능 - 강제적으로 JVM 종료 int 매개값을 지정하도록 - 종료 상태 값 정상 종료일 경우 0, 비정상 종료일 경우 0 이외 다른 값 어떤 값 주더라도 종료 만약 특정 상태 값이 입력되었을 경우에만 종료하고 싶다면? 자바의 보안 관리자 설정

5절. System 클래스 쓰레기 수집기 실행 요청(gc()) (p.482~484)

5절. System 클래스 현재 시각 읽기 현재 시간을 읽어 밀리 세컨드(currentTimeMillis() -> 1/1000초) 와 나노세컨드(nanoTime()->1/109초) 단위의 long값 리턴 주로 프로그램 실행 소요 시간 구할 때 이용

5절. System 클래스 시스템 프로퍼티 읽기(getProperty()) 시스템 프로퍼티란? 대표적인 키와 값 JVM이 시작할 때 자동 설정되는 시스템의 속성값 대표적인 키와 값 시스템 프로퍼티 읽어오는 법

5절. System 클래스 환경 변수 읽기(getenv()) 운영체제가 제공하는 환경 변수 값 (문자열) 을 읽음

6절. Class 클래스 Class 클래스 Class 객체 얻기(getClass(), forName()) 클래스와 인터페이스의 메타 데이터 관리 메타데이터: 클래스의 이름, 생성자 정보, 필드 정보, 메소드 정보 Class 객체 얻기(getClass(), forName()) 객체로부터 얻는 방법 문자열로부터 얻는 방법 리플렉션 (p.491~493) 클래스의 생성자, 필드, 메소드 정보를 알아내는 것

6절. Class 클래스 동적 객체 생성(newInstance()) (p.493~496) 실행 도중 클래스 이름이 결정될 경우 동적 객체 생성 가능

7절. String 클래스 생성자 byte[] 배열을 문자열로 변환하는 생성자 키보드로부터 읽은 바이트 배열을 문자열로 변환 파일의 내용을 읽거나, 네트워크를 통해 받은 데이터는 보통 byte[] 배열이므로 이것을 문자열로 변환하기 위해 사용

7절. String 클래스 String 메소드 문자열의 추출, 비교, 찾기, 분리, 변환등과 같은 다양한 메소드 가짐 사용 빈도 높은 메소드

7절. String 클래스 문자 추출(charAt()) 문자열 비교(equals()) 매개 값으로 주어진 인덱스의 문자 리턴 문자열 비교할 때 == 연산자 사용하면 원하지 않는 결과 발생!

7절. String 클래스 바이트 배열로 변환(getBytes()) 시스템의 기본 문자셋으로 인코딩된 바이트 배열 얻기 특정 문자셋으로 인코딩 된 바이트 배열 얻기 [참고] 디코딩

7절. String 클래스 문자열 찾기(indexOf()) 문자열 길이(length()) – 공백도 문자에 포함 매개값으로 주어진 문자열이 시작되는 인덱스 리턴 주어진 문자열이 포함되어 있지 않으면 -1 리턴 특정 문자열이 포함되어 있는지 여부 따라 실행 코드 달리할 때 사용 문자열 길이(length()) – 공백도 문자에 포함

7절. String 클래스 문자열 대치(replace()) 첫 번째 매개값인 문자열 찾음 두 번째 매개값인 문자열로 대치 새로운 문자열 리턴

7절. String 클래스 문자열 잘라내기(substring()) substring(int beginIndex, int endIndex) 주어진 시작과 끝 인덱스 사이의 문자열 추출 substring(int beginIndex) 주어진 인덱스 이후부터 끝까지 문자열 추출

7절. String 클래스 알파벳 소∙대문자 변경 (toLowerCase(), toUpperCase())

7절. String 클래스 문자열 앞뒤 공백 잘라내기(trim())

7절. String 클래스 문자열 변환(valueOf()) 기본 타입의 값을 문자열로 변환

8절. StringTokenizer 클래스 문자열 분리 방법 String의 split() java.util.StringTokenizer 클래스 이용 String의 split() 정규표현식을 구분자로 해서 부분 문자열 분리 배열에 저장하고 리턴

8절. StringTokenizer 클래스 StringTokenizer 클래스

9절. StringBuffer, StringBuilder 클래스 문자열 결합 연산자 + String 은 내부의 문자열 수정 불가 -> 대치된 새로운 문자열 리턴

9절. StringBuffer, StringBuilder 클래스 StringBuffer, StringBuilder (p.514~516) 버퍼(buffer:데이터를 임시로 저장하는 메모리)에 문자열 저장 버퍼 내부에서 추가, 수정, 삭제 작업 가능 멀티 스레드환경: StringBuffer 사용 단일 스레드환경: StringBuilder 사용

10절. 정규 표현식과 Pattern 클래스 정규 표현식(Regular Expression) 작성 방법 문자열이 정해져 있는 형식으로 구성되어 있는지 검증할 때 사용 Ex) 이메일, 전화번호, 비밀번호 등 문자 또는 숫자 기호와 반복 기호가 결합된 문자열

10절. 정규 표현식과 Pattern 클래스 Pattern 클래스 정규 표현식으로 문자열을 검증하는 역할 결과는 boolean 타입 !!!

11절. Arrays 클래스 Arrays 배열 조작 기능을 가지고 있는 클래스 - 배열 복사, 항목 정렬, 항목 검색 제공하는 정적 메소드

11절. Arrays 클래스 배열 복사 Arrays.copyOf(원본배열, 복사할 길이) 0 ~ (복사할 길이-1)까지 항목 복사 복사할 길이는 원본 배열의 길이보다 커도 되며 타겟 배열의 길이 copyOfRange(원본 배열, 시작 인덱스, 끝 인덱스) 시작인덱스 ~ (끝 인덱스-1)까지 항목 복사 System.arraycopy()

11절. Arrays 클래스 배열 항목 비교 배열 항목 정렬 배열 항목 검색 Arrays.equals(배열, 배열) - 1차 항목의 값만 비교 Arrays.deepEquals(배열, 배열) - 중첩된 배열의 항목까지 비교 배열 항목 정렬 Arrays.sort(배열)- 항목 오름차 순으로 정렬 기본 타입이거나 String 배열 자동 정렬 사용자 정의 클래스 배열은 Comparable 인터페이스를 구현해야만 정렬 배열 항목 검색 특정 값 위치한 인덱스 얻는 것 Arrays.sort(배열)로 먼저 정렬 Arrays.binarySearch(배열, 찾는 값) 메소드로 항목을 찾아야

12절. 포장(Wrapper) 클래스 포장(Wrapper) 객체란? 기본 타입의 값은 외부에서 변경 불가 기본 타입(byte, char, short, int, long, float, double, boolean) 값을 내부에 두고 포장하는 객체 기본 타입의 값은 외부에서 변경 불가

12절. 포장(Wrapper) 클래스 박싱(Boxing)과 언박싱(Unboxing) 박싱 하는 방법 생성자 이용 valueOf() 메소드 이용

12절. 포장(Wrapper) 클래스 언박싱 코드 각 포장 클래스마다 가지고 있는 클래스 호출 기본 타입명 + Value()

12절. 포장(Wrapper) 클래스 자동 박싱과 언박싱 자동 박싱 - 포장 클래스 타입에 기본값이 대입될 경우 발생 자동 언박싱 - 기본 타입에 포장 객체가 대입될 경우 발생

12절. 포장(Wrapper) 클래스 문자열을 기본 타입 값으로 변환 포장값 비교 parse + 기본타입 명  정적 메소드 포장 객체는 내부 값을 비교하기 위해 ==와 != 연산자 사용 불가 값을 언박싱해 비교하거나, equals() 메소드로 내부 값 비교할 것

13절. Math, Random 클래스 Math 클래스 (예제는 p.533~536 참고) 수학 계산에 사용할 수 있는 정적 메소드 제공

13절. Math, Random 클래스 Random 클래스 Random 클래스로 부터 Random객체 생성하는 방법 boolean, int, long, float, double 난수 입수 가능 난수를 만드는 알고리즘에 사용되는 종자값(seed) 설정 가능 종자값이 같으면 같은 난수 Random 클래스로 부터 Random객체 생성하는 방법 Random 클래스가 제공하는 메소드

14절. Date, Calendar 클래스 Date 클래스 날짜를 표현하는 클래스 날짜 정보를 객체간에 주고 받을 때 주로 사용

14절. Date, Calendar 클래스 Calendar 클래스 달력을 표현한 추상 클래스 OS에 설정된 시간대(TimeZone) 기준의 Calendar 객체 얻기 다른 시간대의 Calendar 객체 얻기 날짜 및 시간 정보 얻기

15절. Format 클래스 형식(Format) 클래스 숫자 형식 클래스(DecimalFormat) 숫자와 날짜를 원하는 형식의 문자열로 변환 종류 숫자 형식: DecimalFormat 날짜 형식: SimpleDateFormat 매개변수화 된 문자열 형식: MessageFormat 숫자 형식 클래스(DecimalFormat) 적용할 패턴 선택해 생성자 매개값으로 지정 후 객체 생성

15절. Format 클래스 날짜 형식 클래스(SimpleDateFormat) 매개변수화 된 문자열 형식 클래스(MessageFormat)

16절. java.time 패키지 java.time 패키지 자바8부터 추가된 패키지 날짜와 시간을 나타내는 여러 가지 API가 새롭게 추가됨 날짜와 시간을 조작하거나 비교하는 기능이 추가됨 Date와 Calendar는 날짜와 시간을 조작하거나 비교하는 기능이 불충분

16절. java.time 패키지 날짜와 시간 객체 생성 날짜와 시간을 표현하는 5개의 클래스

16절. java.time 패키지 날짜와 시간에 대한 정보 얻기 LocalDateTime/ZonedDateTime isLeapYear()는 toLocalDate() 메소드로 LocalDate로 변환 후 사용 ZonedDateTime에서 제공하는 추가 메소드

16절. java.time 패키지 날짜와 시간을 조작하기 (p.566~559) 빼기와 더하기 빼기 – minus + 변수 (long) 의 형태 Ex) minusYears(long)  년 빼기 더하기 – plus + 변수 (long) 의 형태

16절. java.time 패키지 변경하기 with(TemporalAdjuster adjuster) 현재 날짜를 기준으로 상대적 날짜 리턴 TemporalAdjuster 객체는 아래 표에 있는 정적 메소드로 얻음

16절. java.time 패키지 날짜와 시간을 비교하기 Period: 년, 달, 일의 양을 나타내는 날짜 기준 클래스 Duration: 시, 분, 초, 나노초의 양을 나타내는 시간 기준 클래스

16절. java.time 패키지 Period와 Duration between() 메소드의 차이점 년, 달, 일, 초의 단순 차이를 리턴 ChronoUnit의 between() 전체 시간을 기준으로 차이를 리턴

16절. java.time 패키지 파싱과 포맷팅 파싱(Parsing) 메소드 (p.563~565) 파싱: 주어진 문자열로 날짜와 시간을 생성 포맷팅: 날짜와 시간을 형식화된 문자열로 변환 파싱(Parsing) 메소드 (p.563~565) 상황에 맞는 포맷 변환 같이 사용

16절. java.time 패키지 포맷팅(Formatting) 메소드 날짜와 시간을 포맷팅된 문자열로 변환