본문 바로가기

반응형

전체 글

(120)
String의 == 연산시 동작 해당 포스트 작성의 목적 String의 '==' 동등비교연산자의 동작원리에 대해서 알아본다. 리터럴 생성과 new연산자로 생성한 객체들에 대해서 '=='연산자를 사용할때, 결과가 어떤지, 동작을 어떻게 하는지에 대해서 알아본다. 이미 'equals()와 =='를 통해 알아본적 있으나, 중요한 내용이므로 복습 겸 알아보도록 하자. == 연산이란? 동등비교연산자로써, 비교하는 두 변수가 동일한지 true와 false로 반환해주는 연산자이다. 이때 두 변수가 기본자료형이라면 변수의 값을 비교, true/false로 알려주지만, 해당 변수의 타입이 참조 자료형이라면 해당 변수에 할당된 객체의 주소값 을 비교하게된다. 즉, 참조자료형의 값을 비교할때는 '==' 연산자를 쓰는것은 옳지 못하다. String에서의 '..
TodoList-002 공부 포스팅 GC로그 보는법 O O 상속과 Composition의 차이 List, ArrayList, LinkedList 구현체를 따로 쓰는 이유는 무엇인가? System 클래스 와 System.out.pritln(); 을 쓰면 안되는 이유 Static 변수 GC 참조를 해제하는법 O O 스트링 == 연산시 어떻게 동작하는지, 리터럴인지, new연산 생성에 따라 확인해보기 O O WeakReference/ SoftReference O O checked exception, uncheck exception try with resource 구문 SOLID원칙의 L을 무시하는 자바 API들은 무엇이고 왜? toString()은 언제써지나? 이펙티브 자바 인터페이스와 추상클래스의 선택 기준 인터페이스 디폴트메소드..
equals() 와 == 해당 포스트의 작성 목적 equals()의 메소드와 == 으로 비교시에 대한 명확한 차이점을 알고, 왜 그렇게 써야하는지에 대해 알아본다. == ==은 동등비교연산자로, 기본 자료형 변수들에 한해서, 변수의 값을 비교하고, 같으면 true, 다르면 false를 출력한다. 그렇기 때문에, 참조형 객체의 값을 비교할때는 == 을 쓰는것에 유의해야 한다. 단, String의 경우 리터럴 생성시와 new연산자 생성시에 따라 사용 가능할때가 있다. new연산자로 생성시 값이 같아도, 객체의 주소값은 다른 또다른 객체가 힙메모리에 생기기 때문에, 동등비교연산자로 비교해도 값은 무조건 다르다고 나온다. 그러나 리터럴 생성시, 힙메모리의 StringPool이라는 공간에 객체가 생성되고, 이후 StringPool에 있는..
Buffer VS Cache 해당 포스트의 작성 목적 캐시(Cache)를 공부하면서 유사하게 사용되는 버퍼에 대해서도 궁금해졌다. 특히 캐시(Cache)의 느린 속도의 장치 대신 데이터를 저장하다가, 이후 한시에 느린 속도의 장치로 저장해주는 기능이 버퍼의 기능과 매우 유사하게 느껴졌다. 그럼 결국 캐시가 버퍼의 역할을 모두 수행할 수있고, 둘은 차이가 거의 없다고 봐도 되지 않을까? 라는 생각과 함께, 둘의 명확한 차이와 쓰임새를 알기위해서 작성한다. Buffer VS Cache Cache 캐시(Cache)란 속도가 다른 두 기기간의 병목현상을 완화해주는 장치다. 고속의 기기에 대해서는, 미리 데이터를 받아둠으로써, 저속의 기기에 맞추지 않고 바로 데이터를 가져올수 있고, 반대로 저속의 기기에 대해서는 고속의 기기가 대신 받아 저..
캐시는 어느영역에서 사용되나? 캐시는 어느 영역에서 사용되나? 💡 캐시 메모리는 하드디스크와 메모리 사이에만 있는 것이 아니고, CPU와 메모리 사이에도 있고, 하드디스크와 케이블 사이에도 있으며, CD-ROM과 메모리 사이에도 있다. 속도차이가 나는 모든 장치에 있다고 생각하면 된다. 웹 캐싱 - 브라우저 캐싱 가장 쉽게 생각할 수 있고, 많이 접하는 것이 브라우저의 캐싱이다. 이전에 방문했던 페이지, 제목의 썸네일 등을 서버로 요청하지 않고, 브라우저에 캐싱을 해두면 사용자는 자신의 요청을 서버로부터 기다리지 않고, 바로 캐시메모리로 응답 받을 수 있어 웹 서핑이 빠르다고 느끼고, 서버는 불필요한 요청을 받지않아 과부하를 피할수 있다. 웹 캐싱 - 프록시(proxy) 웹 페이지를 캐싱하는 다른 방식으로 웹 브라우저와 서버 사이에 ..
캐시(Cache)란? 해당 포스트의 목적 F-LAB 멘토링의 과제로, 캐시란 정확히 무엇인지 알아보고자 한다. 현업에서 대충 들어서 어설프게 알고있는 오개념들을 정리하고, 앞으로는 명확히 알고 쓰는것을 목표로 한다. 캐시(Cache)란 무엇인지? Cache란 자주 사용하는 데이터나 값을 미리 복사해 놓는 임시 장소 를 가리킨다. Cache는 저장공간이 작고, 빠를 수록 비싸고, 싸고 느릴수록 저장공간은 더 커진다! https://mangkyu.tistory.com/69 Cache는 아래와 같은 경우에 사용하면 좋다. 반복적으로 동일한 결과를 돌려주는 경우(이미지나 썸네일) Cache 접근시간에 비해 원래 데이터에 접근하는 시간이 오래걸리는 경우(서버의 균일한 API데이터) Cache란 반복적으로 데이터를 불러오는 경우에, D..
TodoList-001 영역 공부 포스팅 heap/stack memory O O primitive/reference type O O equals(), == O O gc O cache O O String + 연산 O O
String 해당 포스트의 목적 F-lab멘토링 의 과제로, String의 +연산의 유의점에 대해 알아보려다 보니, String에 대해 전반적으로 이해를 해야 할 것 같아 String에 대한 이해를 목적으로 작성한다. String에 대한 전반적인 이해와 +연산의 유의점과 그에 따른 StrungBuffer와 StringBuilder에 대해서 알아보는것을 목표로 한다. String 객체 생성 String은 객체를 생성하는 방법이 new 연산자 외에, 기본 자료형처럼 "" 로 리터럴 생성이 가능하다. 이때 생성되는 방식에 따라, 저장되는 메모리 공간도 달라진다 . new 연산자 사용시, 기타 다른 참조 자료형들과 마찬가지로, Heap메모리에 객체가 생성되고, 해당 객체의 주소값을 변수에 할당한다. 그러나, 리터럴 생성시,..

반응형