본문 바로가기
백엔드/Java

<FAST CAMPUS>자바 웹개발-객체지향 프로그래밍

by 고구마는호박고구마 2021. 1. 19.

<객체지향 프로그래밍 48장~52장>

 

String, Wrapper 클래스

 

   String 클래스 선언하기 

    1. String str1 = new String("abc");  // 인스턴스로 생성됨

    2. String str2 = "abc";                 // 상수풀에 있는 문자열을 가리킨다.

힙메모리, 상수풀(str2 와 str3 는 상수풀이라는 주소를 공유) 다른 의미

 

    String은 immutable (불변한다.)

 

     한번 선언되거나 생성된 문자열을 변경할 수 없음.

     String 클래스의 concat() 메서드 혼은 "+"를 이용하여 String을 연결하는 경우 문자열은 새로

     생성 된다. 

   

연결하는 경우 그 주소값에 있던 값이 이어지는게 아니라 완전 다른 주소로 새로 생긴다는 의미 !  

 

       

다른 주소값. String의 해시코드는 문자열로 출력하게 해놔서 System에 있는 identitygHashCode메서드로 주소값을 확인해야 한다. 

 

    그러면 String을 계속 연결해서 쓸 경우 어떻게 하는게 좋냐?

     

    StringBuilder 와 StringBuffer 

    

    기본적인 char[] 배열을 멤버변수로 가지고 있는 클래스

    문자열을 변경하거나 연결하는 경우 사용하면 편리한 클래스 

 

     StringBuffer는 멀티 쓰레드프로그래밍에서 동기화가 보장된다.

     단일 쓰레드 프로그래밍에서는 StringBuffer를 사용하는것이 더 좋다.

 

같은 주소값 확인

 

 

 

    Wrapper 클래스 

       기본 자료형에 대한 클래스 

  

컬렉션 프레임 워크 ( 알고리즘을 구현되어있는 라이브러리 ) 

  -제네릭프로그래밍 

    변수의 선언이나 메서드의 매개변수를 하나의 참조 자료형이 아닌 여러 자료형을 변환

    될 수 있도록 프로그래밍 하는 방식.

   

 

 

1. 플라스틱 클래스 2. 파우더 클래스 2개의 클래스를 모두 받을수있는 프린터 클래스
같은 클래스에서 2개의 클래스를 받아서 사용이 가능해 진다. 

 

 

컬렉션 프레임워크

    - 프로그램 구현에 필요한 자료구조와 알고리즘을 구현해 놓은 라이브러리 java.util 패키지에

      구현되어  있음

    - 개발에 소요되는 시간을 절약하고 최적화된 라이브러리를 사용할 수 있음

      Collection 인터페이스Map 인터페이스로 구성됨

 

  Collection 인터페이스 

    하나의 객체의 관리를 위해 선언된 인터페이스로 필요한 기본 메서드가 신언되어 있음.

   

 

 Map 인터페이스 ( hash 맵, Tree맵 등)

    쌍으로 이루어진 객체를 관리하는데 필요한 여러 메서드가 선언되어 있음

    Map을 사용하는 객체는 key-value 쌍으로 되어 있고 key는 중복될 수 없음. 

 

  List 인터페이스

    Collection 하위 인터페이스

    객체를 순서에 따라 저장하고 관리하는데 필요한 메서드가 선언된 인터페이스

    배열의 기능을 구현하기 위한 메서드가 선언됨. ( ArrayList, Vector, LinkedList )

 

 

Stack과 Queue 구현 

   -Stack 구현하기 

    Last In First Out (LIFO) : 맨 마지막에 추가 된 요소가 가장 먼저 꺼내지는 자료구조

    ArrayList나 LinkedList로 구현 가능

    ex) 게임에서 무르기, 최근 자료 가져오기 등에서 구현

 

  -Queue 구현하기

    First In First Out (FIFO) : 먼저 저장된 자료가 먼저 꺼내지는 자료구조

    선착순, 대기열 등을 구현할 때 가장 많이 사용되는 자료구조

    ArrayList나 LinkedList로 구현 가능

 

 

 

마지막에 들어온게 나가야되서 len-1 (len 이 아닌 이유는 0부터 시작하기 때문에 1을 빼야 마지막)

댓글