DAY_014[국비] 자바 웹프로그래밍 과정

Bona의 블로그 입니다.·2022년 10월 17일
0

국비과정

목록 보기
15/99

 🌞 Days 014 

  • String, Calendar, Date, Wrapper, BigInteger

  • 이해보다는 이런게 있구나를 알고 있다가 필요하면 다시 찾아보는 그런 메소드 들을 둘러보았다.



 🌳 String Class 

1. 가용한 HEAP공간에 "Hello"을 저장하고 주소를 참조변수에 저장

  • new를 사용하지 않고 새공간을 만든다는 점, Integer, Double 같이 기본자료형을 클래스로 생성한 것들에 공통으로 있는 기능
  • String에만 있는 단점
    : 같은 문자들로 새로운 참조변수를 생성하면, 새로운 공간이 할당되지 않고 (기존에 있는) 같은 글자들의 주소가 새로운 참조변수에 저장된다.
  • String 객체의 내용이 항상 새로운 공간에 만들어지려면 반드시 new키워드를 사용한다.

2. char 배열을 String으로 변환

  • String 변수명 = new String(char 배열);

3. String -> char

  • String변수 n의 9번째 글자를 char로 만들기 ⇒ n.charAt(8)

4. String 데이터들 간의 비교

  • String변수 s1과 s2를 비교 ⇒ s1.compareTo(s2)

  • 차례로 한 글자씩 같은 자리의 글자끼리 비교한다. 두 글자 간의 뺄셈의 결과를 얻어서 (아트키 코드로 연산) 어떤 것이 더 작은지 큰 지를 정한다.
    ex) 'A' - 'B' => -1 뒤에서 빼려는 글자가 크다

  • 앞쪽부터 비교해서 같은 글자는 지나치는 방식으로, 크기가 결정되면 뒤에 글자들은 비교하지 않는다.

5. concat 메서드

  • 전달인수 String을 메서드 호출 객체의 String에 이어 붙이는 연산

  • concat 메서드는 원본 s에 있는 문자열에 " world"를 이어붙이기하고 s1에 업데이트해서 저장하는 것이 아니라, 이어붙이기된 새로운 문자열 객체를 만들어서 새로운 레퍼런스 변수에 저장할 수 있게 리턴해준다.

6. String.contains(String)

  • 괄호 안의 문자열이 메서드 호출 객체가 갖고 있는 문자열의 일부로 포함되어 있다면 true를, 없으면 false 리턴

7. String.endsWith(String)

  • 메서드를 호출한 객체가 가지고 있는 문자열이, 괄호 안의 문자열로 끝난다면 true를 리턴

8. String 간의 비교

  • 대소문자 구분해서 비교 : String.equals(String);

  • 대소문자 구분하지 않고 비교 : String.equalsIgnoreCase(String);

9. String.indexOf('char');

  • 메서드 호출 객체의 문자열 중에 괄호 안에 있는 문자가 몇 번째로 위치하는 지를 구해준다.

  • 있으면 위치값(0부터 시작하는 정수), 없으면 -1

  • s.indexOf('e', 1) : 찾고자 하는 문자가 지정한 정수(0부터 시작)번째부터 시작해서 몇 번째 글자로 위치하는 지를 구해준다.
    예) 알파벳 'e'가 문자열 s의 1번째부터 찾아서 전체 글자의 몇 번째 글자인지 구함 => 1리턴

10. String.replace( s1, s2 );

  • s1을 s2로 대체하기 (한 글자, 문자열 둘 다 됨)

  • replace 메서드의 결과를 별도의 변수에 저장. 원래 원본은 보호

11. Strign.split(" ");

  • ""안의 내용을 기준으로 문자열을 분리 -> 문자열 배열로 만든다.

12. ★★★★★★★★ string.substring( n1, n2);

  • 원본에서 n1(0부터 시작)부터 n2-1번째(9-1)까지 추출

  • String 데이터 중 필요한 글자들만 추출

  • '.'도 글자수 포함

  • 매개변수를 숫자 하나만 넣으면 그 숫자 번째부터 끝까지 추출

13. String.valueOf(변수)

  • 다른 유형의 변수를 String으로 변환시키는 메서드



 🌳 Calendar Class 

 🌱 캘린더 1 : 개요 

  • Calendar : 싱글톤 방식의 클래스, 생성자가 private으로 접근 차단됨
    (외부에서 접근 금지 -> 외부에서 new Calendar() 사용안됨)

  • Scanner처럼 import해서 사용함.

  • 유일하게 실행된 new Calendar()는 클래스 내부에서 실행되어 클래스 내부에 단 하나만 존재 그리고 그 레퍼런스 변수가 가지고 있는 주소를 리턴하는 public static 형태의 getInstance메서드로 인스턴스의 주소를 리턴 받아 쓴다.

  • 이후 다시 getInstance() 메서드가 실행되도 현재 HEAP에 이미 있는 인스턴스의 주소가 리턴

  • 특별히 날짜 지정을 하지 않으면 현재 날짜는 오늘 날짜이다.

  • 공유된 인스턴스에서 현재 날짜에 관한 정보만 객체끼리 서로 다른 날짜를 따로 관리하고 많은 내용이 공유된다.

  • .get() : 전달인수의 정수가 무엇이냐에 따라 날짜 정보 중 필요한 정보를 추출해내는 메서드
    예) 1을 전달하면 연도를 추출


 🌱 캘린더 2 : 날짜 


 🌱 캘린더 3 : 시간 


 🌱 캘린더 4 : 날짜의 증감 


 🌱 캘린더 5 : 달력 만들기 



 🌳 Formatter 

 🌱 Date, SimpleDateFormat 

  • Date : 날짜 데이터 클래스, Calendar와는 다름

  • SimpleDateFormat
    : 날짜 서식 클래스, 날짜 데이터를 서식 데이터에 맞춰서 적용 후 출력


 🌱 양식 문자 0, # 



 🌳 Wrapper Class 

  • Wrapper class란?
    int, double, chat 등 기본 타입의 데이터를 객체로 표현해야 하는 경우가 있다.

  • 이 때, 기본 자료타입을 객체로 다루기 위해서 사용하는 클래스들을 래퍼 클래스(wrapper class)라고 한다.

  • 자바는 모든 기본타입은 값을 갖는 객체를 생성할 수 있다.
    이런 객체를 포장 객체라고도 하는데 그 이유는 기본 타입의 값을 내부에 두고 포장하기 때문이다.

  • 래퍼 클래스로 감싸고 있는 기본 타입 값은 외부에서 변경할 수 없다.
    만약 값을 변경하고 싶다면 새로운 포장 객체를 만들어야 한다.

 🔹 Integer 

  • Integer로 만든 예시코드



 🌱 BigIntegerClass 

  • BigInteger 클래스
    : int와 long형 자료로도 담아 낼 수 없이 큰 숫자를 다룰 수 있게 만든 클래스

  • 팩토리얼 계산



profile
제가 공부하고 공유하고 싶은 글을 올리고 있습니다.

0개의 댓글