본문 바로가기

java

[책소개] Java Performance Fundamental - 내용추가 (이미지 : http://wiki.ex-em.com/index.php/Java_Performance_Fundamental) 오랜만에 읽는 업무 관련 서적입니다. :) 그동안 전공 서적을 접어두고 가벼운 소설을 좀 읽다가 명상 책도 좀 읽고 미드를 보다가... 다시 업무 관련 서적을 집었습니다. 트위터에서 tohappy님이 트윗 하신 걸 보고 구입했지요 현재 3장을 다 읽고 4장을 읽으려고 하고 있는데요.. 내용이 재미있습니다. 대략적으로 알고 있던 내용도 있고 전혀 몰랐던 내용도 많은데요 아주 깊이 있게 들어가지 않고... fundamental이라는 제목에 맞게 적당한 수준에서 끊어주고 있는 것 같습니다. ibm jvm과 hotspot jvm에 대해서 동시에 다루고 있어서 양이 많다고 느끼시면 개인적으로.. 더보기
[JAVA] Pattern, Matcher 더보기
Java concurrency in practice. 요즘 읽고 있는 책입니다. "자바 병렬 프로그래밍" 이라는 제목으로 번역되어서 나왔구요 강철구님께서 번역해주신 책입니다. 루씬 인 액션 1판도 그랬지만, 이분의 번역은 정말 좋다고 생각합니다. ^^ (예전 신입때 같은 회사에서 거기다가 옆에서 같이 일 하시던 분이 이런 대단한 분이셨다니!!) 번역은 상당히 잘 되었다고 생각하구요... 스승이신 풍대리님이 읽고 계시길래 옆에서 보다가 재미있어 보여서 구입해서 따라보고 있습니다 -.- 지금의 저에게는 이해하기 조금 난해한 예제도 나오기는 하지만 내용 자체는 머리에 쏙쏙 들어옵니다. 지금...한.. 80페이지 가량 읽었는데요... 이정도만 읽으면서도.. 머리속으로 지금까지 짰던 코드들이 주마등처럼 흘러갑니다 -_-;;;; '정말 아무 생각없이 코딩해왔구나..... 더보기
head first java (헤드 퍼스트 자바) 얼마전 블로그 지인의 소개로 읽어보게 된 책입니다. 사실 지금의 제가 읽기에는 어떻게 보면 많이 쉬운 책일수도 있고 보통 초보자분들이 책 추천을 원하면 많이들 추천해주시는 "소설같은자바" , "플래시로 배우는..", "헤드퍼스트자바" 이 3권에 들어갈정도로 기초적인 내용도 있습니다. 굳이 이 시점에서 이 책을 한번 읽어보게 된 것은 머리속의 내용을 한번 정리해보고 싶었기 때문 입니다. 이 책은 처음 책을 펼쳐보면 굉장히 산만합니다. 지금까지 봐왔던 교재들하고는 많이 다르죠. 일단 이미지도 많고 사진도 많고... 그래서 저는 자바를 처음 접하는 분들에게는 이 책보다는 소설같은 자바를 먼저 권해 드리고 싶습 니다. 그 책과 이책으로 병행해서 보시면 좋을 것 같다는 생각이 드네요.. 제가 보기엔 두권의 책이 .. 더보기
패턴이라는 것.. 자바 공부를 할 때.. 몇 년 전입니다. 디자인 패턴 책을 본 적이 있습니다. 그때 책에 써있던 문구가.. "패턴은 커뮤니케이션을 위한 것.." 이라는 문구가 있었습니다. 자바에 대한 이해도가 부족했던 저로서는 저 문구가 이해 될리 없었고.. 패턴은 외워서 적용해야 하는 것. 이라고 생각 하고 있었죠... 그게 벌써 4년정도 된거 같습니다. 요새 루씬을 공부하면서 루씬 메일링 리스트에 가입을 해서 질문도 하고 답변도 하고 있습니다. 영어가 겁내 짧지만, 영어 공부도 할 겸... 루씬에 대한 레퍼런스가 적은 우리나라에서의 한계도 극복 할 겸.. 이래저래 좋다고 생각이 되는데요..아무튼 얼마전 메일링 리스트로 한 질문이 올라왔고 그것에 대한 답변을 하는 과정에서 "싱글턴 패턴을 적용해 보는 것이 좋겠다." .. 더보기
클래스의 업캐스트 - 혼동하지말자. 보통 개발 할 때 업캐스팅을 많이 사용한다. 인터페이스던 추상클래스던 .... 다형성을 위해서.. 아래의 예를 보자. public class Shape { public void draw() { ... } } public class Circle extneds Shape { public void draw() { ... } public void myDraw() { ... } } public class Test { public static void main(String args[]) { Circle c = new Circle(); c.draw(); c.myDraw(); Shape s; s = c; s.draw(); s.myDraw(); } } 보면 에러가 날까.. 아니면 정상적으로 작동할까.. 일반적으로 업캐스.. 더보기
상속과 생성자 자바에서 사용되는 상속에 대해서 정리 해본다. GrandFather Father Son 이 3가지의 클래스가 있고 각각 상위의 클래스를 상속받고 있다 라고 한다면 public GrandFather { ... } public Father extends GrandFather { ... } public Son extends Father { ... } Son son = new Son(); 이렇게 Son을 생성한다면 어떻게 될까나..~ 기본적으로 상속을 받은 후 하위의 클래스 인스턴스를 생성할때는 상위 클래스의 생성자를 호출해 주어야 한다. 위와 같은 경우에는 디폴트 생성자에서 그 역할을 해주기 때문에 오류가 나지 않는다. 즉 Son의 디폴트 생성자에서 Father의 디폴트 생성자를 호출하고 Father의 디폴트.. 더보기
jvm GC와 메모리 튜닝 JVM GC와 메모리 튜닝 자바스터디 네트워크 [www.javastudy.co.kr] 조대협 [bcho_N_O_SPAM@j2eestudy.co.kr] 모든 Java Application은 JVM(Java Virtual Machine)위에서 동작한다. 이 JVM이 동작하는데 있어서, 메모리의 구조와 특히 GC는 Application의 응답시간과 성능에 밀접한 관계를 미친다. 이번 강좌에서는 JVM 의 메모리 구조와 GC 알고리즘 (JDK 1.4.X에 포함된 새로운 알고리즘 포함) 그리고, JVM의 메모리 튜닝을 통한 Application의 성능향상방법에 대해서 알아보도록 하자. 1.GC란 무엇인가? GC는 Garbage Collection의 약자로 Java 언어의 중요한 특징중의 하나이다. GC는 Java.. 더보기
Collection 하나 더.. 여태 개발하면서 무지 많이 써오던 컬랙션들. 성능이나 별다른 고민없이 걍 대충 써왔던 것 같다. "켄트 벡의 구현 패턴"이란 책을 보다 보니 자세한 설명이 있어서 그 동안 알고 있던것과 더불어 정리해 두는 게 조을 것 같다. 1. 인터페이스 The core collection interfaces. Queue는 거의 사용하지 않고 책에 없으니까 생략 ^^ - 배열 가장 단순하지만 가장 유연하지 못한 컬렉션. 크기가 고정되어 있고 원소 접근 방법이 용이하면 빠르다. 단순한 연산의 경우 배열은 다른 컬렉션에 비해 시간, 공간 모든 면에서 효율적이다. 일반적으로 배열 접근(element[i])은 ArrayList를 사용했을 때(elements.get(i))에 비해 10배 이상 빠르다고 한다. 대부분의 경우 유연.. 더보기
[Java] Interface의 Upcasting TV들이 아주 작 작동하는 군요. 하지만 사용자는 인터페이스를 통해서 조작하고 있습니다. 물론 TV를 만들어지만 TV내부는 각 회사에서 알아서 하겠죠. 하지만 TV의 인터페이스가 같기 때문에 어느 회사의 제품이나 조작하기는 편할 것입니다. 데이터베이스의 드라이브도 이러한 방식으로 Sun사에서 Database의 interface를 정의해두고 그 interface에 의해서 만들도록 하는 것입니다. TVBoard s = new SSgTV(); TVBoard g = new LGgTV(); 이 두 줄을 유심히 봐 주시기 바랍니다. 일반적인 Upcasting의 개념이 그대로 interface에서도 적용되고 있습니다. 이것은 인터페이스 자체도 클래스이기 때문에 Upcasting을 적용할 수 있는 것입니다. 사용자 측.. 더보기