전체 글
-
[NIO.2]ByteBufferJAVA/NIO2 2014. 2. 4. 17:29
버퍼는 근본적으로 데이터를 읽고 쓸 수 있는 배열이다. Buffer 인터페이스는 ByteBuffer, ChrBuffer, IntBuffer, ShortBuffer, LongBuffer, FloatBuffer, DoubleBuffer 을 제공한다.(보통 ByteBuffer 을 많이 사용한다.)또한 ByteBuffer 을 생성시 allocateDirect 를 이용하면 다이렉트 버퍼(힙이 아닌 일반 메모리로 접근)로 만들수 있다. ByteBuffer 속성필수 요소 - Limit : 버퍼에 쓸 때 얼마나 많은 데이터를 가질 수 있는지를 가르킨다. - Position : 얼마나 많은 데이터를 읽고 쓰는지 추적한다. - Capacity : 버퍼에 저장할 수 이있는 데이터의 최대 크기를 가르킨다.0 ≤ positio..
-
[NIO.2]SeekableByteChannelJAVA/NIO2 2014. 2. 4. 17:23
SeekableByteChannel 인터페이스는 채널에서 위치라는 개념을 구현하여 RAF를 지원 합니다. 채널에서 바이트 버퍼를 읽어올 수 있고, 바이트 버퍼를 채널에 쓸 수 있으며, 현재 위치 지정과 설정, 지원된 차원의 채널에 연결된 엔티티를 잘라내기를 할 수 있습니다. 다음은 이러한 기능을 지원 하는 메소드 입니다.postion() : 채널의 현재 위치를 반환한다.(정수) position(long) : 채널의 위치를 long 값으로 지정한다.(정수)truncate(long) : long 값의 채널에 연결된 엔티티를 잘라낸다.read(ByteBuffer) : 바이트를 채널에서 버퍼로 읽어 들인다.write(ByteBuffer) : 바이트를 채널에서 버퍼로 쓴다.size() : 이 채널의 연결된 엔티티..
-
[TIP]메모리 관련 옵션 설정설치&설정 관련/JAVA 2014. 2. 3. 13:19
java 를 이용해 실행하게 되면 몇가지 옵션이 있습니다. 다음은 메모리 관련된 java option 입니다. heap size 1G 할당-Xms1024m -Xmx1024m 동적인 호출에 대한 메모리 공간 1G 할당-XX:PermSize=1024m -XX:MaxPermSize=1024m System.gc() 무시-XX:+DisableExplicitGC UseAdaptiveSizePolicy 무시 옵션- UseAdaptiveSizePolicy란 java에서 new 영역의 사이즈를 동적으로 변경 하는 것으로 사용 하였을 경우 Full GC가 빈번하게 일어날수 있다. 물론 성능면에서는 좋다고 한다 JDK 1.4부터는 기본 값이 사용으로 되어 있음-XX:-UseAdaptiveSizePolicy GC 로그 관련-..
-
PolymorphismJAVA/in 기초 2014. 2. 3. 00:02
다형성이란 하나로 여러가지 일을 하는 것을 이야기 한다. 상속과 관련된 다형성의 기법들 - 인터페이스(interface) - 오버라이딩(Overriding) - 추상 클래스(Abstract Class) - 추상 메소드(Abstract Method) - 다운캐스팅(Downcasting) - 업케스팅(Upcasting)*예를 들자면, 객체지향을 이야기 한다. 객체(Object)는 모든 형태로 변환(캐스팅)이 가능 하다 Abstract Class & Abstract Method 추상 메소드 - 메소드 몸체가 없는 메서드를 추상 메서드라고 한다. - 메소드 선언부에 abstract 키워드를 사용해야 한다. //일반 메소드 public void sayHello(){} //추상 메소드 public abstract ..
-
Overloading, Constructor, Inheritance, Overriding, this, superJAVA/in 기초 2014. 2. 2. 20:57
Overloading오버로딩이란 하나의 메소드 이름에 여러 개의 메소드를 만들 수 있게 해주는 기법이다. 오버로딩의 정의 - 하나의 이름으로 여러개의 메서드를 만드는 기법 오버로딩 메소드를 만드는 규칙 - 반드시 매개변수의 개수나 매개변수의 형이 달라야 한다. 오버로딩을 사용하는 이유 - 해당 클래스의 메서드를 사용할 때 사용자의 편리를 위해서 - 매서드의 이름 하나로 여러 가지 작업에 대처할 수 있다. * 오버로딩은 컴파일러가 발전하면서 등장한 기술이다. 컴파일러 차원에서 메서드의 이름을 자동으로 바꾸어 주기 때문에 사용자가 펴리하게 이것을 사용하는 것이다. //원본 소스 int plus(int a, int b); float plus(float a, float b); double plus(double ..
-
[Intellij]Bitbucket git 연동 하기!설치&설정 관련/Intellij 2014. 1. 29. 18:53
이번 시간에는 intellij 라는 IDE 툴에 대해서 알아 보려고 합니다. 우선 기초 셋팅과 정보가 필요할 것이라 생각 합니다. 그에 대한 참조는 아래 글을 꼭 한번 읽어 보기를 추천 합니다. 김태기 님의 포스트 :인텔리J 시작하기 Part1 (Getting Start IntelliJ) -기본 설정편-인텔리J 시작하기 Part2 (Getting Start IntelliJ) -자바 프로젝트편-인텔리J 시작하기 Part3 (Getting Start IntelliJ) – SVN -인텔리J 시작하기 Part4 (Getting Start IntelliJ) -Git-위의 셋팅을 따르셨다면 현재 Git 을 로컬에 설치 하는 부분 까지 하셨을 것이라고 생각 합니다. 그럼 우선 IntelliJ를 실행 후 새로운 Pro..
-
[ERROR]inconvertible types 발생시 해결 방법설치&설정 관련/JAVA 2014. 1. 22. 17:06
다른 사람이 작업한 코드를 compile를 하던 중, inconvertible types 라는 오류가 발생 되었다. 대략적인 코드는 다음과 같다 //전역변수 List info ; //매소드에서 값 셋팅 //메소드1에서 사용 public void showMe(){ List shows = (List) info; for(ShowMe data : shows){ ..처리 } } //메소드2에서 사용 public void showYou(){ List shows = (List) info; for(ShowYou data : shows){ ..처리 } } 이 오류에 대하여 구글링한 결과다음과 같이 처리 하면 문제가 해결 된다. //전역변수 List info ; //매소드에서 값 셋팅 //메소드1에서 사용 public v..