본문 바로가기

stack7

stack, queue 사용 시 size()를 꼭 써줘야한다 stack 이 비었을 시 top, bottom은 -1이고, pop의 경우는 사용을 못하므로 항상 stack을 사용할때에는 스택이름.size() 를 통해서 스택의 크기를 확인 후 참조하도록 한다 따라서, 조건문 등에서 stack의 사이즈를 모르는데 bottom, top이나 pop 등을 사용하면 안된다 꼭 다음과 같이 사이즈를 적어서 사용하자 if( 스택이름.size() && 조건1) // 스택의 사이즈가 0이하면 false이므로 스택이 비지 않았을떄만 구현하게 한다 같은 원리로 queue 도 사용 시 사이즈를 체크하고 사용해야만 한다 2022. 6. 16.
[java] 메모리 영역 컴퓨터의 메모리 영역은 유저가 사용가능한 유저영역과 유저가 손대지 못하는 운영체제 쪽 부분인 커널영역으로 나누어져 있다 컴퓨터를 할때 우리가 이런 저런 프로그램을 사용하지만 사용하며 컴퓨터의 기본 필수 시스템을 건드리면 컴퓨터가 에러를 일으키고 고장나게 될 수 있으므로 컴퓨터 실행의 중요한 부분 (운영체제) 등을 따로 분리해 놓은 것이다 이 중 유저 영역은 4가지 영역으로 나뉜다 code 영역, data 영역, stack 영역, heap 영역 이다 아래에서 위의 4가지 영역들을 간단히 설명하겠다 code 영역 말그대로 텍스트인 코드를 저장하는 영역이다 변수들을 어떻게 사용할지에 대한 프로그램 명령들을 여기에 저장한다 data 영역 (내부에 bss 영역 포함) 전역 변수와 정적 변수가 저장되는 영역이다 프.. 2022. 4. 30.
[java] == 과 equals 의 차이 a와 b가 같다고 표현할때 == 를 써서 a == b 로 쓰곤하였다 하지만 같다는 표현에는 equals 도 사용된다 값이 같다는 것을 표현했지만 엄밀하게 말해서 프로그래밍에서는 값이 같다는 것은 2가지로 해석가능하다 데이터 공간에 쓰여진 데이터 값이 같다 데이터 주소 값이 같다 이 뜻의 차이로 인해서 == 과 equals 가 다르게 된다 == == 은 참조 주소가 없는 primitive type ( ex)int, boolean 등등 ) 끼리의 연산의 경우 데이터 자체의 값을 비교하지만 참조 주소가 있는 reference type ( ex) 문자열 String, 배열 array 등등) 의 연산의 경우 주소값을 비교한다 정확하게 말하자면 primitive type 의 경우 값이 같으면 주소값이 모두 같으므로.. 2022. 4. 27.