전체 글 441

[Java] JVM의 메모리구조(가비지 컬렉션)/ 자바 메모리 구조

shs2810.tistory.com/5?category=670113 가비지 컬렉션(Garbage Collection)??? 자바 공부하면서, 앞에서도 메모리 구조 정리하면서 가비지, 가비지 이야기가 많은데,, 정확히 어떤 동작을 하는지, 어떤 것을 처리하는지 몰라서 찾아보았습니다. 1. 가비지 컬렉션 (Garbage Collec shs2810.tistory.com shs2810.tistory.com/4?category=670113 JVM 메모리 구조 JVM 메모리 구조는 어떤가... 1. JVM 메모리 구조 Method Area Heap Stack PC 레지스터 Native Method Stacks 1. Permanent Generation 2. New / Young Generation 3. Old Ge..

Java 2020.12.17

리스트와 배열의 차이

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

힙정렬 코드

자료구조와 알고리즘 입문 - 자바편에 힙정렬이 나왔다. 하노이의 탑도 이해가 잘안갔고, 특히 재귀적 호출이 너무 복잡했다. 그래서 일부는 직접 그림판에 그림을 그려서 영상으로 찍어서 내가 하는말을 들어가면서 이해했는데, 글쎄,,, 힙정렬이 좀 이해가 잘안간다. 이해가 안가는건 일단 외우라고 했으니... 일단은 외워야 겠지... 이게 안좋은 방법인건 알고 있다. 근데 일단은 머릿속에 집어넣고 그 다음에 이해해야겠다. 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

[Java] Java 꿀팁모음

자바에서는 문자를 비교할 때 ==을 쓰면 주소를 비교하지만 mysql 다운받을때 mysql for excel을 체크해서 다운받아야만 엑셀 파일 읽을 수가 있다. JDBC 프로그래밍 WITH MYSQL 2020.11.06 자바 jdbc프로그래밍할때 mysql 연동해주는데. mysql 한동안 사용안하다가 사용하니까 연결할 수 없음. cannot connect to server가 떴음. 그냥 서비스에서 mysql80 다시 시작하기 눌러도 서비스 재시작할 수 없음이라고 뜸. 인터넷에 검색하니까. 이게 mysql 프로세스를 강제종료를 자주 했을때 발생하는 현상이라고 함. 혹은 이 문제이거나 아니면 my.ini 파일이 손상되었을때 발생한다고 함. my.ini 파일과 관련된 해결방법은 1. my.ini파일이 utf-..

Java 2020.11.19

[Python3] 파이썬 무료 공부 자료 wiki docs

wikidocs.net/book/4542 위키독스 온라인 책을 제작 공유하는 플랫폼 서비스 wikidocs.net wikidocs.net/book/2165 위키독스 온라인 책을 제작 공유하는 플랫폼 서비스 wikidocs.net wikidocs.net/book/4223 위키독스 온라인 책을 제작 공유하는 플랫폼 서비스 wikidocs.net wikidocs.net/book/2965 위키독스 온라인 책을 제작 공유하는 플랫폼 서비스 wikidocs.net wikidocs.net/book/1530 위키독스 온라인 책을 제작 공유하는 플랫폼 서비스 wikidocs.net wikidocs.net/book/4673 위키독스 온라인 책을 제작 공유하는 플랫폼 서비스 wikidocs.net wikidocs.net/b..

반응형