전체 글 476

[기술서적] 객체지향의 사실과 오해- 조영호 <북리뷰>

자바프로그래밍을 공부하던 중에 너무 따분해서 집어든 책이다. 사실 자료구조와 알고리즘을 자바코드로 공부하다가 뇌에 과부하가 걸려서 잠시 여기로 도피했다. 그런데 좀 편하게 읽으려고 집었는데, 오히려 알고리즘을 생각할 때보다 더 골똘히 생각하는 시간을 가지게 된 것 같다. 앨리스가 나오는 재밌는 책이라고 누누히 들어서 그 명성은 알고 있었다. 객체지향이란 무엇인지에 대해서 잘 설명해주는 책이라고, 아주 많이 들었다. 이제야 읽게 되었는데, 이 책을 읽으면서 어린왕자가 떠올랐다. 어린왕자가 세계적 위치에 서게 된 것은 시간이 지날 수록 나이가 들수록 다시 읽어보면 감회가 새롭다는 것이다. 느껴지는 것도 다르고, 메시지를 다르게 보게 된다는 것이다. 아직 난 나이가 많이 들지 않았고, 아직 경험이 적지만, 이..

[Java] 자바 네트워킹 socket 기본 코드 - Server/Client code

클라이언트쪽 기본 코드 간단한 기본 예제이다. package sec07_exam02_data_read_write; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.InetSocketAddress; import java.net.Socket; public class ClientExample { public static void main(String[] args) { Socket socket = null; try { socket = new Socket(); System.out.println("[연결 요청]"); socket.connect(new InetSocketAddress("..

Java lang 2020.12.18

DoublyLinkedList 코드

package list.doublylinkedlist.implementation; //양방향성이 있는 이중연결시스트. 더 많은 메모리를 사용하는 것이 단점임. public class DoublyLinkedList { private Node head; private Node tail; private int size = 0; private class Node{ private Object data; private Node next; private Node prev; public Node(Object input) { this.data = input; this.next = null; this.prev = null; } public String toString() { return String.valueOf(this..

[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 lang 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 lang 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 lang 2020.12.12

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

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

Java lang 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 lang 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..

반응형