Java 기반 클라우드 융합 개발자 과정 - KH 정보교육원/플러스 알파

Api 사용해보기 ( Object, String, StringBuffer, StringBuilder, Math, Wrapper, Random )

giggs 2022. 5. 3. 15:43

 

 

Object Class

  • 사용해볼 메소드 
  • getClass()
  • hashCode()
  • toString()

 

 

 

1. getClass ( )

 

 

 

 

 


 

 

 

2. hashCode ( )

 

 

- new Person - p와 p2 - 객체는 해시 코드 다른 것 확인

- new String - s1과 s2 - 스트링 객체는 해시 코드 같은 것 확인

-String String 클래스에서 문자열 같다고 판단되면 해시 코드를 동일하게 변경해줌

 

 

 

해시 코드란?

  • 주소 값을 (항상 주소 값은 아닐 수 있음) 이용해서 연산하고 어떠한 값을 리턴해준다.
  • 객체의 ID값이구나 정도로 생각해보자
  • 데이터까지 같이 가지고 있어서 새로운 객체를 생성 – 주소 값이 다른 것이면
  • 서로 해시 코드 다르고 다른 것이라고 인식

 

 

 


 

 

 

 

 

3. toString ( )

 

 

 

 

 

 

 

  • 객체는 toString 생략해도 기본적으로 호출해줌
  • 객체의 기본 호출 메소드는 toString() 확인

 

 

 

 


 

 

 

String Class

  • 사용해볼 메소드 
  • charAt()
  • comparTo()
  • concat()
  • equals()
  • equalsIgnoreCase()
  • length()
  • replace()
  • substring()
  • toUpperCase()
  • toLowerCase()

 

다 실습해보았지만.. 많아서 몇 개만 추려서 작성!

 

 

 

1. charAt()

 

 

>int 타입의 매개변수를 받는구나 / 리턴 값으로 char를 받는구나- 체크

 

리턴 타입 : char - 파라미터 타입 : int

 


 

 

2. compareTo()

 

 

 

 

 

리턴 타입 : int - 파라미터 타입 : String

 

 


 

3. concat() 

 

 

 

 

리턴 타입 : String - 파라미터 타입 : String

 

 

 


 

 

 

4. substring()

 

 

 

 

리턴 타입 : String - 파라미터 타입 : int / int, int

 

 

>89번 Line - 파라미터는 비긴 인덱스를 매개변수로 가지고 갔다.

>90번 Line - 시작 지점 5부터 끝날 때까지 출력됨. 5 <= x < 끝까지

 

 

 

 


 

 

문자열 같은지 비교

  • equals  / 대소문자 비교
  • equalsIgnoreCase  / 대소문자 무시

 

 

문자열의 길이를 정수 값으로 리턴

  • String : . length( )
  • array : . length

 

 

대문자로 / 소문자로

  • .toUpperCase()
  • .toLowerCase()

 

 

 


 

 

 

 

StringBuffer / String Builder

 

 

 

1. String / StringBuffer / StringBuilder 메소드 만들기

 

스트링 버퍼 /빌더는 초기화시에 new 로 해줘야한다.

 

 

 


 

 

2. 스트링 버퍼와 빌더는 append 연산자 사용해야 한다.

  • 스트링처럼 + 연산자 못쓴다 –

 

 

. append ( String )

 

 

 

 


 

 

3. 출력 테스트

 

객체 생성시 new 생성자로 생성해주고 - 추가는 append(String)으로

 

 

 

 

 

 

 

개념 플러스

 

 

스트링과 vs 스트링 버퍼/빌더 차이점

>String 은 + 연산을 하면 새로운 애를 하나 더 만드는 개념

>StringBuffer와 Builder는 새로운 애를 만드는 것이 아닌

>기존에 있는 애한테 더해주는 것이다!

 

 

String Buffervs String Builder의 차이점

>thread safe - buffer 쓰레드로부터 안전하다

>thread unsafe builder 쓰레드로부터 안전하지 않다.

 

 

 

Thread ?

>그동안 코드 실행할 때 컴퓨터가 되어서 설명해볼게요 했었다.

>컴퓨터가 되어볼게요가 사실은 쓰레드가 되어서 한 줄 한 줄 실행하는 것!

>쓰레드는 일꾼이라 생각. 실제 일을 하는 애라고 생각

>지금까지는 쓰레드를 1개로 사용했었다.

>객체를 통해서 메소드를 호출한다 할 때 : 객체가 일을 하는 것이 아니라 쓰레드가 접근하고 사용하고 하는 것이다.

>쓰레드는 여러 개 사용 가능하다.

 

 

 

 

 

 

 

 

thread safe ?

  • t1은 출력하는 것이고 / t2는 +1 해줘 야하는데
  • 이 작업이 우리가 원하는 대로 실행 가능할지?
  • 알 수 없다.  /  2개다 동시에 접근 가능하므로
  • thread safe 하다는 의미는 ->
  • 쓰레드가 하나 접근하는 순간 lock을 걸어버리는 것!
  • 먼저 온 t1이 작업해제 - lock 풀어주면 그때 t2접근 가능

 

 

 

 

 


 

 

 

 

 

Math Class

  • 사용해볼 메소드 
  • abs()
  • ceil() / floor() / round()
  • random()

 

 

 

 

 

1. abs()

 

 

 


 

2. ceil() / floor() / round()

 

 


 

 

 

3. random()

 

 

 

 

 

 

 


 

 

 

 

 

 

Wrapper Class

  • 사용해볼 메소드 
  • Integer()

 

 

Integer()

 

 

 

 

 

 

 


 

 

 

Random Class

  • 사용해볼 메소드 
  • nextInt()

 

 

nextInt()

 

 

 

 

 

 


 

 

 

 



review


- 22. 04. 28 -
많은 api 클래스들의 메서드들을 사용해보았다.
아는 것도 있었고, 모르는 것도 많았다.

일단 어떤 기능이 있는지 알고 있는 것이 제일 중요하고
그 기능을 사용하려고 할 때는 메서드의
return타입과 파라미터 타입을 잘 확인한 후
맞게 사용해주면 될 것 같다.

이것저것 자주 사용해보고
꾸준한 공부가 필요할 듯!