22강 API - I - JAVA필수 API - String의 이해 - String의 문제점

Slides:



Advertisements
Similar presentations
폭력. 폭력이란 무엇인가 우상의 눈물 물리적인 폭력 ( 최기표 ) VS 지능적인 폭력 ( 임형우, 담임선생님 )
Advertisements

17 강. 인터페이스 – I - 인터페이스의 이해 - 인터페이스의 문법 - 다형성이란 ? Lecturer Kim Myoung-Ho Nickname 블스
1 박 2 일 !!! 인천마장초등학교 유수아. 1 박 2 일 멤버 인기순 위 1 위 이승기 2 위 엄태웅 3 위 은지원 4 위 김종민, 이수근 ※인터넷에서 본것이기 때문에 사람에따라 서 다를 수 있다. ※
석관중앙교회 5남전도회 석 관 중 앙 교 회 회원 소식 통권 05-04호 발행일 : 2005년 04월 회 장 : 장진호 집사
아름다운 이들의 행복한 길음안나의 집.
지역사회복지론 1조. 요양보호시설에 대해서 황성국 임재형 이동영
제 7주 2015년 1학기 강원대학교 컴퓨터학부 담당교수: 정충교
28강 JAVA 입출력(I/O) 알아보기 - 입출력(I/O) 이란? - JAVA 입출력 API(Input~, Output~)
11장. 기본 API 클래스.
I 문학의 개념과 역할 1. 문학의 개념 (1) 언어 예술로서의 문학 (2) 소통 활동으로서의 문학
4. 목적론적 윤리와 의무론적 윤리 01. 경험주의와 이성주의 01. 경험주의와 이성주의 02. 결과론적 윤리와 공리주의
4부 클래스 라이브러리 “4부에서는 자바 언어의 API인 클래스 라이브러리에 관해 설명합니다
16강. 자바 빈 빈 이란? 빈 만들기 빈 관련 액션 태그(useBean, getProperty, setProperty)
2강. JAVA 프로그래밍이란?-II & 변수 JAVA 프로그램 환경설정과 실행 방법 변수란?
JAVA 프로그래밍 6장 객체지향프로그래밍의 핵심.
23강. EL(Expression Language)
10강. AOP(Aspect Oriented Programming)-II
25강. Security-I 보안 관련 프로젝트 생성 보안 관련 라이브러리 추가 보안 관련 설정 파일 만들기
6강. DI설정 방법 XML파일을 이용한 DI설정 방법 JAVA를 이용한 DI설정 방법 XML과 JAVA를 같이 사용
5강. DI활용 의존 관계 DI사용에 따른 장점 Lecturer Kim Myoung-Ho Nickname 블스
11강. JSP 본격적으로 살펴보기-III request 객체의 이해 response 객체의 이해
29강. MVC패턴을 이용한 게시판 만들기-III
28강. MVC패턴을 이용한 게시판 만들기-II FrontController 만들기 Command 만들기
18강. 데이터 베이스 - II JDBC 살펴보기 Statement객체 살펴보기 Lecturer Kim Myoung-Ho
22강. 파일 업로드 - 파일 업로드 라이브러리 설치 - 파일 업로드 프로그래밍 Lecturer Kim Myoung-Ho
12강. 액션태그 액션태그란? forward, include, param 태그 살펴보기
9강. JSP 본격적으로 살펴보기-I JSP 태그의 개념 이해 JSP 동작 원리 JSP 내부 객체
20강. 커넥션풀 DAO, DTO PreparedStatement 커넥션 풀(DBCP)
27강. MVC패턴을 이용한 게시판 만들기-I MVC패턴의 이해 전체적인 컴포넌트 설계 DB(DataBase) 생성
21강. 스프링JDBC JDBC를 이용한 반복코드 줄이기 Spring빈을 이용한 코드 간소화
Power Java 제20장 패키지.
16강. 추상클래스 - III - 자동차 옵션 제작 프로그래밍 Lecturer Kim Myoung-Ho Nickname 블스
19강. 데이터 베이스 - III 회원가입 및 회원정보 수정 프로그래밍 Lecturer Kim Myoung-Ho
8강. Servlet 본격적으로 살펴보기-IV
1강_web과 html Web이란? HTML이란? CSS란? Lecturer Kim Myoung-Ho Nickname 블스
28강_맵(Map) 맵을 이용하기 위한 설정 위치 추적 Lecturer Kim Myoung-Ho Nickname 블스
11강. 스프링 MVC 기초 스프링 MVC 개요 스프링 MVC 구조 살펴보기 resources 폴더
2강. 스프링 프로젝트 만들기 이클립스에 스프링 프로그인 설치(STS) 처음 만들어 보는 스프링 프로젝트
25강. FrontController 패턴과 Command 패턴
23강. 트랜잭션(Transaction)-II
2강. 개발 환경 설정 JDK 설치 Path 설정 이클립스 다운로드 톰캣 설치 톰캣 환경 설정
3강. JSP 맛보기 JSP 문서 작성 하기 JSP 아키텍처 Lecturer Kim Myoung-Ho Nickname 블스
24강 API - III - Timer 클래스 - StringTokenizer 클래스 Lecturer Kim Myoung-Ho
13강. 쿠키 쿠키란? 쿠키 문법 Lecturer Kim Myoung-Ho Nickname 블스
10강_CSS 속성-I CSS3 단위 url() display 속성 visibility 속성 opacity 속성
23강 API - II - 약방의 감초 Random 클래스 - Scanner 및 Sysout - Wrapper 클래스의 이해
17강_스마트폰 레이아웃-I viewport header 제작 네비 제작 Lecturer Kim Myoung-Ho
1강. 웹프로그래밍 웹프로그래밍이란? JAVA웹 웹프로그램의 동작 필요한 학습 Lecturer Kim Myoung-Ho
개항기 조선과 동아시아 박 범 한국역사입문Ⅱ.
8강. 외부 파일을 이용한 설정 Environment 객체 프로퍼티 파일을 이용한 설정
1강. 스프링이란? 프레임워크 스프링(SPRING) 설치 Lecturer Kim Myoung-Ho Nickname 블스
7강_CSS 기본-II id(#) 와 class(.) tag,id, class 혼합 속성 선택자 후손 및 자손 선택자
11강_CSS 속성-II margin 및 padding 속성 box-sizing 속성 border 속성
12강_CSS 속성-III font-family , font-size 속성
도형의 닮음 Ⅵ-1 도형의 닮음 (1) 닮음과 닮은 도형 닮음
5강. 배열 배열이란? 배열의 문법 변수와 같이 이해하는 배열의 메모리 구조의 이해 레퍼런스의 이해 다차원 배열
대구의 부도심 대구의 주요축 동대구 부도심 4조 강민석 / 박성균 / 최은지/ 황재현/김예지.
7강. 객체지향 프로그램의 본질 메소드 프로그래밍의 한계 객체의 개념 및 클래스의 이해
17강. 스프링MVC 게시판-II 패키지, 인터페이스, 클래스 제작 Controller 제작 리스트 페이지 만들기
26강 JAVA Collections - I - 컬렉션이란? - JAVA도 결국 효과적인 데이터를 처리하기 위한 수단
13강. Form 데이터 HttpServletRequest 어노테이션 데이터(커맨드) 객체
27강_데이터베이스 SQLite CP(Content Provider) Lecturer Kim Myoung-Ho
22강. 트랜잭션(Transaction)-I
사도행전 13장 22절 말씀 –아멘 다 윗 을 왕 으 로 세 우 시 고 증 언 하 여 이 르 시 되 내 가 이 새 의 아 들
7강. 생명 주기(life cycle) 와 범위(scope)
6월 1주 주간메뉴표 NEW 엄마손 조식 쉐프 삼촌 중식 참새 방앗간 석식 ◎원산지 안내 : 쌀(국내산)
경찰행정과 세미나 결과를 공개해야한다. VS 비공개로 해야한다. 경찰의 근무성적평정 제도.
13강_이벤트 & 리스너(Listener) 이벤트 개요 커스텀 뷰의 콜백메소드를 이용한 이벤트 처리
자료구조 강의소개 정성훈 연락처 : 이메일 : 연구실 : 연219호 연락처 : 이메일 : 홈페이지: 정성훈.
11강. static - static의 이해 - static과 객체와의 관계 - static의 장점과 단점
Presentation transcript:

22강 API - I - JAVA필수 API - String의 이해 - String의 문제점 - StringBuffer와 StringBuilder의 등장 - 날짜(Calendar) API Lecturer Kim Myoung-Ho Nickname 블스 blogstudy@naver.com

22-1. JAVA필수 API 고수준언어 vs 저수준언어 이러한 클래스들을 이용해서 개발자들은 깊은 지식이 없이, 그냥 사용만 하면 되고, 이러한 기능들을 정의해둔 클래스들을 API(Application Programming Interface)라고 합니다. 그냥 쉽게 말하자면, API란, 누군가가 만들어 놓은 기능들이라고 생각하면 됩니다. 고수준언어 vs 저수준언어 다소 말이 유치하지만, 다들 이렇게 불러서 저도 이렇게 부릅니다. 고수준 언어란 주로 인간이 이해하기 쉬운 언어이고, 저수준 언어는 인간이 쉽게 이해하기 어려운 언어 입니다. 초등학교 5학년때 였습니다. 약 30년전일 입니다. 저는 컵퓨터 학원에 가서 컴퓨터를 처음 접하게 되었습니다. 그리고 한달 후 그만 뒀습니다. 이유는 그 당시에 학원의 수업내용은 지금의 JAVA와 같은 인간이 이해하기 쉬운 고수준의 언어가 아닌, 기계와 더 가까운 언어였습니다. 칼라 모니터도 아닌 흑백 모니터에 알 수 없는 프로그래밍이 돌아가고, 저는 도대체 뭘 하는지도 모르고 한달 이 지나갔습니다. 이처럼 예전에 아주 예전에는 인간이 이해하기 어려운 저수준의 언어가 많았습니다. 하지만, 요즘은 인간이 이해하기 쉬운 고수준의 언어가 많습니다. 물론 지금도 시스템 또는 하드웨어 개발자들은 저수준의 언어를 많이 사용 합니다. 우리는 지금 고수준의 JAVA를 배우고 있으니, JAVA API에서 제공하는 이해하기 쉬운 클래스들을 익혀 나가면 됩니다. 그리고 그 중에서도 자주 쓰이는 API만 익히고, 나머지는 프로젝트를 하면서 조금씩 익혀나가면 됩니다. 참고로 JAVA에는 3,000개가 넘는 클래스가 있습니다. 무슨 말인지 아시겠죠. 모두 알 수없다는 것입니다. 그때그때 조금씩 익혀나가면 됩니다.

String string = “HelloWorld~~”; 그 동안 여러 번 사용 하였던 String API에 대해서 알아보겠습니다. String은 분명 객체 자료형 입니다. 우리가 문자열을 사용하면서 아래와 같이 사용 하였습니다. String string = “HelloWorld~~”; 뭔가 이상한 점이 느껴 지시나요? String은 분명 대문자로 시작하므로, 기초데이터가 아닌 객체데이터 입니다. 하지만 뒤에 생성자(new)를 사용하지 않고 기초데이터를 만들 때 처럼 초기화 하고 있습니다. int i = 10; String의 경우만 특이하게 객체데이터 이지만, 기초데이터처럼 사용할 수 있게 하였습니다. 이유는 아마도 많이 쓰이는 객체라서 편하게 사용하라고 고슬린 형님이 그렇게 만든 거 같습니다. 그럼 아래의 두 경우 모두 사용할 수 있습니다. String string = “HelloWorld”; String string = new String(“HelloWorld~~”);

22-2. String의 이해 String의 주요 기능들(메소드) concat : 문자열 연결 substring : 문자열 자르기 length : 문자열 길이 toUpperCase : 대문자로 만들기 toLowerCase : 소문자로 만들기 charAt : 특정위치의 글자 찾기 indexOf : 특정문자열의 위치 equals : 문자열 비교 trim : 문자열 공백제거 replace : 특정문자 변경 repalceAll : 특정문자열 변경

X O A B C D E F A B C String1 + “DEF” String1 A B C A B C D E F Stirng클래스는 많이 쓰이고, 좋은 기능(메소드)를 많이 가지고 있습니다. 이렇게 좋은 클래스가 치명적인 단점이 있습니다. 바로 메모리를 과소비 하는 것 입니다. String객체의 경우 처음 초기화된 데이터에 변화가 생기면 기존 것을 재활용 하기보다는 새것을 찾습니다. 무슨 얘기인지 아래 그림을 보시면 이해가 쉽습니다. A B C + D E F X A B C String1 + “DEF” Stirng클래스의 대안으로 StringBuffer, StringBuilder 등장 O String1 A B C A B C D E F String1 + “DEF”

22-4. StringBuffer와 StringBuilder의 등장 Stirng클래스의 새로운 메모리를 생성하는 문제로 인해 속도가 느려지는 현상이 있습니다. 그래서 속도적인 측면에서 더욱 개선된 StringBuffer와 StringBuilder가 등장 합니다. StringBuilder 주요 기능(메소드) Append : 문자열 추가 insert : 특정 위치에 문자열 추가 delete : 문자열 삭제 deleteCharAt : 특정 문자 하나 삭제 StringBuffer와 StringBuilder는 약간의 차이가 있을 뿐 같다고 생각하시면 됩니다. StringBuffer와 StringBuilder는 동일하다고 생각 하면 됩니다. 단, StringBuffer가 StringBuilder보다 먼저 세상에 등장 한 클래스 입니다. 기능은 같고, 단지 StringBuilder가 속도 면에서 좀더 빠릅니다.

22-5. 날짜(Calendar) API 개발 테스트에 많이 쓰이는 System.currentTimeMillis() 날짜와 시간을 표현할 때 많이 쓰이는 Calendar클래스 입니다. (22_5_ex1_calendar) 개발 테스트에 많이 쓰이는 System.currentTimeMillis() System.currentTimeMillis()는 현재의 시간을 1/1,000초 단위로 표시합니다. 거의 속도 테스트 용도로 쓰입니다.