Loading...

JAVA / / 2022. 1. 27. 18:44

자바 35강. StringBuffer

반응형

 

이때까지 작업하던 작업환경이 아닌

새로운 환경을 만들어서

자바 고급과정을 배울 것이다.

 

자바 4강에서 vscode 세팅하며

작업환경 만드는 과정도 했었다.

 

똑같이 View -> Command Palette -> Java를 검색해

Java: Create Java Project를 눌러서

새 작업환경을 만들어준다.

 


패키지 만드는 방법!! 

신경 써서 만들자

 

사이트 이름이 metacoding.site 라면

패키지 이름은 site.metacoding이라고 거꾸로 타고 올라가게 만들어준다.

vscode에서 패키지 이름에 .을 붙이면 그냥 . 으로 인식해버린다.

여기선 역슬래시를 사용해야 한다.

 


 


os 명령어(shell)

파일명에 . 이 먼저 나오면 숨김 파일임을 뜻한다.

ex) .gitignore

 

gitignore 파일 안에 .zip 이라고 적어놓으면

작업 환경 안에 있는 zip 파일들은 git add 안되게 처리해준다.

lib/

lib폴더 아래 있는 것들 다 git add 안되게 처리해준다.

 


 

git 설정도 다시 해주자.

내 git hub에도 새로운 Repository를 생성해줘야 한다.

 

git init

깃 시작, 내가 지금 작업하는 영역을 지정하는 것 = 카메라를 켠 것

git add      git add .       git add 폴더

사진 찍은 것      전체 사진       그 폴더만 사진    

git commit

사진 저장하는 것

 

 

 


 

 

StringCollection을 배워보자.

 

긴 문자열을 저장할 때,

통신을 할 때와 같이 문자열을 차곡차곡 저장해야 할 때 StringBuffer 사용한다.

StringBuilder라는 클래스도 있는데 StringBuffer를 사용하자.

 

버퍼는 메모리 공간을 말한다.

즉 StringBuffer는 스트링을 저장하는 공간이다.

 

append( ) 메서드를 통해 문자열을 추가해준다.

append에 Ctrl + 클릭해보면 매개변수가 오브젝트 타입이다.

오브젝트는 모든 타입의 부모이므로 어떤 타입이든 다 받을 수 있다.

 

 

package site.metacoding.ex23;

public class StringCollectionEx01 {
    public static void main(String[] args) {
        StringBuffer sb = new StringBuffer();
        sb.append("http://apis.data.go.kr/1360000/VilageFcstInfoService_2.0/getUltraSrtNcst?");
        sb.append("serviceKey=서비스키값");
        sb.append("numOfRows=10&");
        sb.append("pageNo=1&");
        sb.append("dataType=JSON&");
        sb.append("base_date=20220126&");
        sb.append("base_time=1700&");
        sb.append("nx=97&");
        sb.append("ny=75");
    }
}

 

StringBuffer는 StringConstantPool을 안 쓴다.

가독성이 좋고, 메모리 공간의 효율이 좋다.

 

출력할 때는 sb.toString()을 쓰면

append 해서 넣은 문자열을 다 합쳐서 한 번에 보여준다.

 

StringBuffer와 StringBuilder의 차이가 뭘까?

화장실에서 손을 씻고 수건을 사용할 때 혼자 사용하면 그냥 닦으면 된다.

하지만 두 명이 동시에 접근하여 수건을 사용하려고 한다면

먼저 들어간 사람이 다 닦을 때까지 기다려야 한다.

 

무조건 혼자서 수건을 써야 할 때는 어떻게 해야 할까?

동기화를 해야 한다.

 

프로그래밍에서의 동기화는 일의 순서가 있다는 말이었다.

동기화를 하면 먼저 화장실에 사람이 들어가면 화장실이 lock 되어

먼저 들어간 사람의 일이 다 끝날 때까지

다음 사람은 들어갈 수 없다.

 

이게 StringBuffer이다.

 

StringBuilder를 사용하면 동시에 접근이 가능해서

자원을 해칠 가능성이 있다.

 

이 때문에 우리는 통신을 할 때,

다른 사람들이 접근하여 데이터가 섞이지 않고

데이터를 해치지 않기 위해 StringBuffer를 사용하자!

 

 

 

 

 

[출처]

 

https://cafe.naver.com/metacoding

 

메타코딩 : 네이버 카페

코린이들의 궁금증

cafe.naver.com

메타 코딩 유튜브

https://www.youtube.com/c/%EB%A9%94%ED%83%80%EC%BD%94%EB%94%A9

 

메타코딩

문의사항 : getinthere@naver.com 인스타그램 : https://www.instagram.com/meta4pm 깃헙 : https://github.com/codingspecialist 유료강좌 : https://www.easyupclass.com

www.youtube.com

 

 

반응형