김미썸코딩

11/16 - Java (6) : java.lang (String , Math, Wrapper, System), java.util (Date, Calendar) 본문

빅데이터 플랫폼 구축을 위한 자바 개발자 양성과정

11/16 - Java (6) : java.lang (String , Math, Wrapper, System), java.util (Date, Calendar)

김미썸 2020. 11. 16. 19:09
728x90

복습 & 개념정리

 

*프로젝트(이클립스일 경우) 

package / import

       클래스명

               상속

               인스턴스

       *문법

*API -  내장 클래스

       용도별로 패키지화

       *java.lang

                 - 기본 자료형과 연관된 패키지

                 - import 하지않음 (이외에는 다 import함)

 

           Object      - 모두 프로퍼티가 없음

                 equals()

                 toString()

                 -------------- override - 객체내용비교, 내용값출력

                 hashcode()

                 getClass()

                 모두 override를 전제로 만들었고 위는 객체비교 아래는 내용값 출력

           String        

 

 

 

 

 

 

 

 

2. String   클래스  

▷ p514

String은 불변성이다. String 타입 객체는 문자열을 참조한다. 문자열은 String 객체로 생성, 변수는 String 객체를 참조한다.

추가/수정을 하게 되면 그 값이 변경되는 것이 아니고 추가/수정된 새로운 String객체가 생성되고 그 객체를 가리키는 것이 된다.

C++에선 string을 배열로 취급하여 접근이 가능하지만 

Javascript와 Java에선 String클래스를 제공함으로서 참조형태가 되고, 여러가지 메소드를 활용해서 연산이 가능하다.

 

 

2-1. String의 문자열 비교  

1) 참조값, new 연산자

  • 문자열 리터럴이 동일하다면 동일한 String 객체를 공유하도록 되어있다.

출처:https://kephilab.tistory.com/36

 

  • new 연산자를 사용해서 직접 String 객체를 생성 할 수 있다. (서로 다른 객체)                                                                                    (new 연산자는 힙 영역에 새로운 객체를 만드는 객체 생성 연산자)

출처:https://kephilab.tistory.com/36

 

 

  • 문자열 비교에는 꼭 equals()를 써라 아니면 참조값을 비교한다. ( str1 == str2 는 참조값 비교 )

 

 

 

 

 

 

 

2-2. StringBuffer, StringBuilder 클래스

String객체를 수정할때 새로운 객체를 생성하여 메모리를 낭비하는 것을 보완하기 위한 클래스이다.

StringBuffer는 구버전, StringBuilder는 신버전으로 보면 된다.

두개다 하는 일이 같아서 생성방법도 같다. 메소드가 같다.

 * 버퍼 : 내부 임시공간. 댐같은 것이다.  계속 데이터가 들어와도 일정량을 유지해준다.

StringBuffer생성 방법 3가지가 있다.

StringBuffer sb1 = new StringBuffer();
StringBuffer sb2 = new StringBuffer(100); // 크기 할당
StringBuffer sb3 = new StringBuffer("Hello World"); // 문자열 할당

 

 

1) StringBuffer 객체 저장공간

기본 내부 저장 공간은 16이지만 고정이아니고 문자를 넣으면 계속 늘어난다.

문자열 크기+기본크기16을 한 크기가 된다.

StringBuffer 객체 저장공간

 

2) StringBuffer , StringBuilder 메소드

  • append("안녕") : 문자열 뒤에 '안녕' 붙인다.
  • insert( 3, "추가" ) : 문자열의 3자리에 '추가'를 추가한다.
  • delete(0,4) : 문자열의 0번째 자리부터 4개의 문자를 삭제한다.
  • reverse() : 문자열을 뒤집는다.

StringBuffer, StringBuiler 메소드

 

 

 

  예제 )  hong gil dong을 입력받아서 Hong Gil Dong으로 출력하기

 

1) 절차적 프로그래밍 

절차적 프로그래밍

→  args[]사용하여 문자열을 입력받고 향상된 for문과 substring을 사용한 것이 포인트다.

 

이렇게 public static void main 아래에 찍는것을 절차적 프로그래밍이라고 한다.

 

 

2) 구조적 프로그래밍 - C

구조적프로그래밍

 

 

3) 객체지향 프로그래밍 - C++

객체 지향 프로그래밍

 

 

 

 

 

 

 

 

 

 

3. Math 클래스   

▷ p533

 

3-1. Math 클래스 메소드 종류

 

3-2.  Math.random()

▷p536

 

 

 

 

 

 

 

 

4. Wrapper(포장) 클래스  

▷ p527

  • 기본자료형을 객체로 감싼다. 기본타입의 값을 내부에 두고 포장한다.
  • 포장하고 있는 기본 타입 값은 외부에서 변경할 수 없다. 만약 내부의 값을 변경하고 싶다면 새로운 포장 객체를 만들어야 한다.
  • 객체와 일반변수를 왔다 갔다 할 수 있는것이 Wrapper다.

4-1. Boxing , Unboxing

//Boxing
Integer obj1 = new Integer(100);
Integer obj2 = new Integer("200");
Integer obj3 = Integer.valueOf("300");

//Unboxing
int value1 = obj1.intValue();
int value2 = obj2.intValue();
int value3 = obj3.intValue();

 

 

 

4-2. Auto Boxing , Unboxing

원래 boxing을 하려면

Integer i1 = new Integer(123);

이렇게 객체화라는 과정을 거쳐야 했는데 그걸 간편하게 하기 위한 것이다.

 

Integer i2 = 123;

위와 같이 Auto Boxing이 가능하다.

 

변수(int)와 객체(Integer)의 연산이 가능하다.

 

 

 

예제 ) 연산식 입력받아서 결과 출력하기 ex. "10 + 10" 입력시 20 출력

 

연산자 비교를 할때 equals()를 사용하는 것이 핵심이다.

 

 

 

 

 

 

 

5. System 클래스  

▷ p481

자바 프로그램은 운영체제상에서 바로 실행되는 것이 아니라 JVM 위에서 실행된다. 따라서 운영체제의 모든 기능을 자바 코드로 직접 접근하기란 어렵다. 하지만 java.lang 패키지에 속하는 System 클래스를 이용하면 운영체제의 일부 기능을 이용할 수 있다.

5-1. exit 메소드

 

 

 

5-2. 현재 시각 읽기 (currentTimeMillis(), nanoTime())

 

 

5-3. 시스템 프로퍼티 읽기

 

 

5-4. 환경변수 읽기

 

 

 

 

 

 

 

 

6. 배열 (참조 복사, 값 복사)

 

 

7. 객체  (참조복사, 값 복사)

▷ p466

나중에 함

 

 

 

 

8. 윈도우 프로그램 실행

* 프로세스

                프로그램 실행

                             - 랩일부와 cpu를 할당 받은 상태

                자바 라이브러리를 통해서 프로그램 실행이 가능하다.

 

 

 

 

 

여기까지가 java.lang 패키지이다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

java.util


▷ p539 

 

1. Date 클래스

 

 

2. Calendar 클래스

2-1. Calendar 클래스 메소드

 

 

 

2-2. 특정 날짜 요일 출력하기 ( Date 클래스 사용 )

 

 

 

 

 

 

 

활용) 주민번호 체크

 

728x90
Comments