본문 바로가기

IO

(2)
자바 NIO 정리 #1 개요 ("JAVA는 느리다"라는 말이 생긴 이유와 개선책, 성능이 좋아지는 입출력 포인트 2가지) "자바는 느리다" - 어디가 느릴까? 진짜 느릴까? "자바는 느리다." 라는 말은 어느 정도 프로그래밍을 해온 개발자들이라면 들어봤을 법한 말이다.그런데 자바가 어디가 느리고 왜 느린지, 그리고 얼마나 느린지에 대한 답을 하는 개발자는 많지 않다.이번 포스트부터 4개 정도의 포스트로 연재할 내용은 자바는 어떠한 이유로 느리고 그것을 개선한 방법은 무엇인지에 대한 것이다.- 자바는 어디가, 왜 느릴까?일단 자바는 C/C++과 달리 포인터로 1. 직접 메모리를 관리하고 운영체제 수준의 2. 시스템 콜을 직접 사용할 수 없다. JVM이라는 프로세스 위에서 동작하는 추상화된 비교적 고수준의 언어이기 때문에 자바는 느리다.기타 GC(Garbage Collection)의 메모리 점유 문제등 느린 이유는 더 많이 있..
자바 IO에서는 생성자만 보면 된다! (상속, 바이트스트림, 문자스트림, 객체스트림) 자바 IO를 이해하기 전 "상속"을 명확히 이해하자. 자바에서 입출력(IO)을 이해하려면 "상속"을 명확하게 이해하고 있어야 한다.상속? 객체 지향 프로그래밍에서 클래스의 재사용을 위해서 자식클래스가 부모클래스의 메소드등을 물려받는 것 아닌가?오버라이딩, 오버로딩을 떠나서 단순하게는 맞지만 여기서 중요한 점은 생성자, 메소드의 파라미터를 보는 시각이 명확해야하는 점과 IO클래스들이 상속을 통해 클래스를 조립해서 입출력하는 방법을 다르게 하는 점이다.1public static void print(String str){...} 이 메소드를 어떻게 해석해야 할까?"print라는 메소드가 String클래스의 파라미터를 받는다."정확한 답은 아니다."print라는 메소드가 String클래스와 String클래스의 ..