분류 전체보기 444

리스트와 배열의 차이

리스트와 배열의 차이 리스트에서 데이터를 삭제하면, 해당 데이터가 사라지면서 해당 데이터 뒤에 있던 데이터가 한칸 앞으로 전진하게 된다. 하지만 배열에서 요쇼를 삭제하면, 그냥 그 자리는 비어 있게 된다. (특정한 처리를 해주지 않는이상) 그러므로, 리스트는 데이터가 있는지 없는지를 체크하지 않아도 되는 장점이 있다. 하지만, 배열은 어딘가가 비어있을 수도 있으므로, 데이터가 있는지 없는지 확인해야 한다. 그만큼 리스트보다 더 많은 공간을 차지한다. 하지만 이게 오히려 장점이 될 수 있다. 요소의 자리 (즉 인덱스)값이 바뀌지 않으므로, 배열은 특정 값의 키 즉 인덱스를 유지할 수 있다. 하지만 리스트는 앞의 데이터가 삭제되면, 한칸씩 앞으로 자동으로 당기므로, 인덱스 값이 변한다. 그러므로, 배열에서만..

힙정렬 코드

자료구조와 알고리즘 입문 - 자바편에 힙정렬이 나왔다. 하노이의 탑도 이해가 잘안갔고, 특히 재귀적 호출이 너무 복잡했다. 그래서 일부는 직접 그림판에 그림을 그려서 영상으로 찍어서 내가 하는말을 들어가면서 이해했는데, 글쎄,,, 힙정렬이 좀 이해가 잘안간다. 이해가 안가는건 일단 외우라고 했으니... 일단은 외워야 겠지... 이게 안좋은 방법인건 알고 있다. 근데 일단은 머릿속에 집어넣고 그 다음에 이해해야겠다. package algorithm; public class heap { private void solve() { int[] array = {230,10,60,550,40,220,20}; heapSort(array); for(int v:array) { System.out.println(v); } ..

[Java] out of memory error 즉 OOME 에 대하여

stack 예외처리를 알아보던 중에 out of memory를 공부하게 되었는데 아주 잘 정리된 블로그를 발견했다. JVM까지 연결시켜서 설명해주는데 정말 내용이 좋다. 참고로 자료구조와 함께 배우는 알고리즘 입문(자바편)의 136페이지의 코드에서 OOME에 대해 나온다. 그 책도 읽어볼 만 하다. 간략하게 살펴보고 가겠다. OOME의 경우 특히나 대응을 하기가 쉽지 않다고 한다. 주로 개발이 대부분 완료되고 난 후에 사용자 테스트 쯤에 많이 발생하는 에러라고 한다. 그리고 주로 JVM Option 혹은 Dump 파일 분석을 통해 대응하게 된다고 한다. JVM Option Java의 장점은 JVM이 있는 곳이면 어디서든 동작하는 것인데 반면 디바이스 별로 동일한 성능은 보장되지 않는다고 한다. 그래서 O..

Java 2020.12.12

[Java] java 키워드 중 새로 배운것. assert, native, strictfp, volatile

자바 키워드를 나열해놓은 것을 따라 읽다가 처음 본게 있어서 적어본다. assert, native, strictfp, volatile 보통 널리 알려진 자바 기본 서적에서도 이걸 다루는 건 못봤다. 적어도 내가 읽은 책들에 한해서^^ native 같은 경우는 자바에서 다른 언어를 사용할 수 있게 만들어주는 키워드라고 한다. mommoo.tistory.com/71 여기에 진짜 잘 설명되어있음.. JVM은 만능이라고만 믿어왔는데, 운영체제에 깊게 접근하지 못해서 결국에는 운영체제에 깊은 접근이 가능한 언어를 사용하기 위해 JNI를 사용해서 native 키워드가 사용되는 것을 보면, 결국에 만능은 없는듯하다. JAVA - JNI 사용하기 오늘 포스팅은 Java JNI ( Java Native Interface..

Java 2020.12.12

[Java] Java JVM 메모리 구조와 이해

JVM은 운영체제와 상관없이 자바코드와 운영체제 사이에서 운영체제에 맞게 변경시켜준다. JVM은 시스템으로부터 프로그램을 수행하는데 필요한 메모리를 할당받고 용도에 따라 여러 영역으로 나눠서 관리한다. 그 영역이 메서드 영역, 힙 영역, 스택 영역이다. 1. 메서드 영역 JVM이 *.class 파일을 읽고 분석한 데이터를 여기에 저장한다. 2. 스택 영역 메서드 작업에 필요한 메모리 공간. 메서드가 호출되면 스택에 쌓이고 끝나면 스택에서 비워진다. 메서드 작업하는 동안 지역변수, 중간 결과등이 저장된다. 3. 힙 영역 인스턴스가 생성되는공간으로 객체에 대한 정보들이 저장된다. 아래 블로그에 잘 정리되어 있습니다. debugdaldal.tistory.com/156?category=925274 JVM(자바가..

Java 2020.12.10
반응형