'Java'에 해당되는 글 84건

  1. 2015.01.28 Runtime : maxMemory()
  2. 2015.01.28 Runtime : gc()
  3. 2015.01.28 Runtime : freeMemory()
  4. 2015.01.28 Runtime : exec(String command)
  5. 2015.01.28 Runtime : exec(String[] command)
  6. 2015.01.28 Runtime : addShutdownHook(Thread hook)
  7. 2015.01.28 Runtime : availableProcessors()
  8. 2015.01.26 InputStream
  9. 2015.01.26 OutputStream
  10. 2015.01.26 Stream
2015. 1. 28. 22:02
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

package Runtime;

public class maxMemory {
    public static void main(String[] argv)throws Exception{
        long heapSize =Runtime.getRuntime().totalMemory();
        System.out.println("heapSize : "+ heapSize);
       
        long heapMaxSize=Runtime.getRuntime().maxMemory();
        System.out.println("heapMaxSize : "+ heapMaxSize);
       
        long heapFreeSize=Runtime.getRuntime().freeMemory();
        System.out.println("heapFreeSize : "+ heapFreeSize);
    }
}

'Java' 카테고리의 다른 글

Runtime : gc()  (0) 2015.01.28
Runtime : freeMemory()  (0) 2015.01.28
Runtime : exec(String command)  (0) 2015.01.28
Runtime : exec(String[] command)  (0) 2015.01.28
Runtime : addShutdownHook(Thread hook)  (0) 2015.01.28
Posted by af334
2015. 1. 28. 21:57
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

package Runtime;

public class gc {
    public static void main(String args[]){
        Runtime r=Runtime.getRuntime();
        long mem1, mem2;
        Integer someints[]=new Integer[10000];
       
        System.out.println("Total memory is :" + r.totalMemory());
       
        mem1=r.freeMemory();
        System.out.println("Initial free memory :"+mem1);
        r.gc();
        mem1=r.freeMemory();
        System.out.println("Free memory after garbage collection :"+ mem1);
       
        for(int i=0;i<someints.length;i++)
            someints[i]=null;
           
        r.gc();
       
        mem2=r.freeMemory();
        System.out.println("Free memory after collecting "+"discarded Integers "+mem2);
    }
}

'Java' 카테고리의 다른 글

Runtime : maxMemory()  (0) 2015.01.28
Runtime : freeMemory()  (0) 2015.01.28
Runtime : exec(String command)  (0) 2015.01.28
Runtime : exec(String[] command)  (0) 2015.01.28
Runtime : addShutdownHook(Thread hook)  (0) 2015.01.28
Posted by af334
2015. 1. 28. 21:41
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

package Runtime;

public class freeMemory {
    public static void main(String args[]){
        Runtime r=Runtime.getRuntime();
        long mem1, mem2;
        Integer someints[] =new Integer[10000];
       
        System.out.println("Total memory is :"+ r.totalMemory());
       
        mem1=r.freeMemory();
        System.out.println("Initial free memory :"+mem1);
        r.gc();
        mem1=r.freeMemory();
        System.out.println("Free memory after garbage collection :"+mem1);
       
        for(int i=0;i<someints.length;i++)
            someints[i]=null;
   
        r.gc();
       
        mem2=r.freeMemory();
        System.out.println("Free memory after collecting "+ "discarded Integers :"+mem2);
    }
}

'Java' 카테고리의 다른 글

Runtime : maxMemory()  (0) 2015.01.28
Runtime : gc()  (0) 2015.01.28
Runtime : exec(String command)  (0) 2015.01.28
Runtime : exec(String[] command)  (0) 2015.01.28
Runtime : addShutdownHook(Thread hook)  (0) 2015.01.28
Posted by af334
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

package Runtime;

public class exec {
    public static void main(String args[]){
        Runtime r=Runtime.getRuntime();
        Process p=null;
       
        String cmd[]={"leafpad","/Runtime.java"};
       
        try {
            p=r.exec(cmd);
        } catch (Exception e) {
                System.out.println("error executing "+ cmd[0]);
        }
    }
}

'Java' 카테고리의 다른 글

Runtime : gc()  (0) 2015.01.28
Runtime : freeMemory()  (0) 2015.01.28
Runtime : exec(String[] command)  (0) 2015.01.28
Runtime : addShutdownHook(Thread hook)  (0) 2015.01.28
Runtime : availableProcessors()  (0) 2015.01.28
Posted by af334
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

package Runtime;

public class exec {
    public static void main(String args[]){
        Runtime r=Runtime.getRuntime();
        Process p=null;
       
        String cmd[]={"leafpad","/Runtime.java"};
       
        try {
            p=r.exec(cmd);
        } catch (Exception e) {
                System.out.println("error executing "+ cmd[0]);
        }
    }
}


---------------------------------------



package Runtime;

public class exec {
    public static void main(String args[]){
        Runtime r=Runtime.getRuntime();
        Process p=null;
       
        String cmd[]={"/root/firefox/firefox","daum.net"};
       
        try {
            p=r.exec(cmd);
        } catch (Exception e) {
                System.out.println("error executing "+ cmd[0]);
        }
    }
}




'Java' 카테고리의 다른 글

Runtime : freeMemory()  (0) 2015.01.28
Runtime : exec(String command)  (0) 2015.01.28
Runtime : addShutdownHook(Thread hook)  (0) 2015.01.28
Runtime : availableProcessors()  (0) 2015.01.28
URL : openStream()  (0) 2015.01.25
Posted by af334
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

package Runtime;

public class addShutdownHook {
    public static void main(String[] args)throws Exception{
        Object f=new Object(){
            public void finalize() {
                System.out.println("Running finalize");
            }
        };
        Runtime.getRuntime().addShutdownHook(new Thread(){
            public void run(){
                System.out.println("Running Shutdown Hook");
            }
        });

        f=null;
        System.gc();
       
        System.out.println("Calling System.exit()");
        System.exit(0);
    }
}

'Java' 카테고리의 다른 글

Runtime : exec(String command)  (0) 2015.01.28
Runtime : exec(String[] command)  (0) 2015.01.28
Runtime : availableProcessors()  (0) 2015.01.28
URL : openStream()  (0) 2015.01.25
URL : openConnection()  (0) 2015.01.25
Posted by af334
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

package Runtime;

public class availableProcessors {
    public static void main(String[] args){
        Runtime runtime=Runtime.getRuntime();
       
        int nrOfProcessors=runtime.availableProcessors();
       
        System.out.println("Number of processors available to the Java Virtual Machine: "+ nrOfProcessors);
    }
}

'Java' 카테고리의 다른 글

Runtime : exec(String[] command)  (0) 2015.01.28
Runtime : addShutdownHook(Thread hook)  (0) 2015.01.28
URL : openStream()  (0) 2015.01.25
URL : openConnection()  (0) 2015.01.25
URL : getAuthority()  (0) 2015.01.25
Posted by af334
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

InputStream은 모든 입력 스트림 서브 클래스들의 슈퍼 클래스이다.



InputStream 메소드들


int available()

read() 메소드를 호출하였을 때 호출한 스레드의 블록 없이 현재 입력 스트립에서 읽어들일 수 있는 바이트의 수를 반환한다.(또는 skip() 메소드가 호출되었을 때 건너뛸 수 있는 바이트 수), 이 메소드는 I/O 에러가 발생하면 IOException을 던진다. 이 메소드를 오버라이드한 서브 클래스에서 스트림의 전체 크기를 반환하지 않을 수도 있으므로 이 메소드의 반환값으로 스트림의 모든 데이터를 저장하는 버퍼를 할당해서는 안된다.


void close()

현재 입력 스트림을 닫고 스트림과 연관되어 있는 시스템 리소스를 해제한다. 이 메소드는 I/O 에러가 발생하면 IOException을 던진다(InputStream에서 Closeable을 구현하기 떄문에 입력 스트림과 함께 try-with-resources 문을 사용할 수 있다)


void mark (int readlimit)

입력 스트림의 현재 위치를 마크(mark)한다. reset() 메소드가 호출되면 마지막에 마크된 위치로 현재 위치가 옮겨지며 이후에 읽기 작업을 수행하면 옮겨진 위치부터 바이트를 읽어들인다. readlimit 인자는 현재 지정한 마크가 무효화되기 전에 읽어들일 바이트의 수가 지정되며 입력 스트림에 통지된다. 지정한 바이트의 개수를 다 읽어들이기 전에 스트림은 마크된 위치를 재설정할 수 없다.


boolean markSupported()

현재 입력 스트림이 mark()와 reset() 메소드를 지원하면 true를 반환하고 아니면 false를 반환한다.


int read()

현재 입력 스트림에서 한 바이트를 읽어 반환한다. 반환되는 값은 0-255 사이이며 스트림의 마지막에서 읽기를 시도하면 -1이 반환된다. 이 메소드는 I/O 에러가 발생 할 경우 IOException을 던진다.


int read(byte[] b)

현재 입력 스트림으로 부터 바이트들을 읽어 배열 인자 b에 저장한다. 반환되는 값은 실제 읽어들인 바이트의 수이다. 만일 스트림의 마지막에 도달했을 경우에는 -1을 반환한다. 읽어들인 바이트 수는 b의 길이보다 작거나 같다. 이 메소드는 인자 b가 null일 떄 NullPointerException 그리고 I/O에러가 발생하면 IOException을 던진다.


int read(byte[] b, int off, int len)

현재 입력 스트림에서 인자 off에 지정한 오프셋 위치에서부터 인자 len로 지정한 값보다 같거나 작은 개수의 바이트를 읽어 인자 배열 b에 저장한다. 실제로 읽어들인 바이트의 개수를 반환하거나 스트림의 끝이면 -1을 반환한다.

이 메소드는 인자 b가 null 이면 NullPointerException을, 인자off 또는 len이 음수이거나 len이 b.length - off 보다 큰 수로 지정이 되면 IndexOutOfBoundsException을 그리고 I/O 에러가 발생하면 IOException을 던진다.


void reset()

마지막으로 mark() 메소드가 호출된 곳으로 위치를 재설정한다. 입력 스트림에 마크된 적이 없거나 마크가 무효화되었을 경우 IOException을 던진다.


long skip(long n)

인자 n에 지정한 바이트 수만큼 입력 스트림을 건너 뛴다. n에 지정한 바이트 수보다 남은 입력 스트림 데이터가 적으면 입력 스트림의 마지막으로 건너뛴다. 실제 건너뛴 바이트의 개수가 반환된다. 인자 n이 음수로 지정이 되면 위치를 이동하지 않는다. 이 메소드는 입력 스트림이 건너띄기를 지원하지 않거나 I/O 에러가 발생하면 IOException을 던진다.



ByteArrayInputStream()과 같은 InputStream()의 서브 클래스들은 mark() 메소드를 통해 현재 읽기 위치를 스트림에 지정할 수 있으며 reset() 메소드를 호출에 마크했던 위치로 돌아가는 기능을 제공한다.


***

현재 사용하고 있는 스트림 서브 클래스가 mark()와 reset() 메소드를 지원하는지 알기 위해서는 markSupported() 메소드를 호출해야 한다는 것을 명심하자






'Java > Working-level Java' 카테고리의 다른 글

OutputStream  (0) 2015.01.26
Stream  (0) 2015.01.26
FileWriter : FIndAll  (0) 2015.01.22
Thread 3  (0) 2015.01.14
Thread 2  (0) 2015.01.14
Posted by af334
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

자바에서는 I/O스트림을 수행하는 OutputStream 과 InputStream 클래스를 제공한다. OutputStream은 모든 출력 스트림 서브 클래스의 슈퍼 클래스다.



OutputStream 메소드들


void close()

현재 출력 스트림을 닫고, 스트림과 연관되어 있는 리소스를 해제한다. I/O 에러가 발생하면 IOException을 던진다(OutputStream에서 Closeable을 구현하고 있기 때문에 출력 스트림과 함께 try-with-resources 문을 사용할 수 있다)


void flush()

현재 출력 스트림에 있는 바이트들을 플러쉬한다. 만일 최종 목적지가 파일과 같이 하위 플랫폼에 의해 제공되는 추상적인 디바이스이면 플러쉬를 하더라도 오직 하위 플랫폼의 추상 디바이스까지만 바이트들이 전달되고 하위 플랫폼이 제어하는 물리적인 디바이스(예를 들어 하드디스크) 까지 완전히 전해진다고 보증할 수는 없다.이 메소드는 I/O에러가 발생하면 IOException을 던진다.


void write(byte[] b)

byte 배열 인자 b의 내용을 출력 스트림으로 보낸다. 보내지는 바이트의 수는 b.length가 된다. 이 메소드는 b가 null일 경우 NullPointerException을, I/O에러가 발생하면 IOException을 던진다.


void write(byte[] b, int off, int len)

인자 off로 지정한 위치에서부터 인자 len에 지정한 개수만큼 인자 b의 byte 배열에서 바이트를 읽어 현재 출력 스트림으로 보낸다. 인자 b의 값이 null이면 NullPointerException을, 인자 off의 값이 음수이거나 값이 b.length보다 크면 java.lang.IndexOutOfBoundsException을 그리고 I/O 에러가 발생하면 IOException을 던진다


void write(int b)

바이트 인자 b를 출력 스트림으로 보낸다. b가 int 타입이기 때문에 하위 8비트만 전달되고 상위 24비트는 무시된다.




flush() 메소드는 애플리케이션 실행 도중 특정 간격으로 데이터를 수시로 저장을 해야하는 텍스트 에디터 같은 애플리케이션에 유용하게 쓰인다. 이 메소드는 바이트들을 물리적인 디스크가 아닌, 바로 아래의 하위 플랫폼까지만 전달한다는 것을 명심하자


***

close() 메소드는 자동적으로 출력 스트림을 플러쉬한다. 그러므로 애플리케이션이 종료되기 전에 close()를 호출하면 출력 스트림을 닫고 스트림에 있는 데이터를 자동적으로 플러쉬한다.

















'Java > Working-level Java' 카테고리의 다른 글

InputStream  (0) 2015.01.26
Stream  (0) 2015.01.26
FileWriter : FIndAll  (0) 2015.01.22
Thread 3  (0) 2015.01.14
Thread 2  (0) 2015.01.14
Posted by af334
2015. 1. 26. 15:33
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

File그리고 RandomAccessFile 클래스와 더불어 자바에서는 I/O 작업을 수행하기 위해 스트림(Stream)을 사용한다. 스트림은 임의의 길이를 가진 바이트들이 정렬되어 있는 시퀸스이다. 애플리케이션에서 바이트들을 파일 또는 화면과 같은 목적지로 전달할 때는 출력 스트림을 통해 전달되며 파일같은 소스에서 바이트들이 애플리케이션으로 전달될 때는 입력 스트림을 통해 전달이 된다.


application   ----write ---->   destination

output stream


source    ---read----> application

input stream



자바에서는 바이트 배열, 파일, 스크린 그리고 소켓과 같은 다양한 목적지를 사용할 수 있으며 바이트 배열, 파일, 키보드 그리고 소켓과 같은 다양한 소스를 사용할 수 있다.




스트림(Stream) 클래스 개요

java.io 패키지는 OutputStream 과 InputStream 추상 클래스의 후손인 몆가지  출력 스트림과 입력 스트림 클래스를 제공한다.



출력 스트림의 계층구조

OutputStream (abstruct)

ByteArrayOutputStream

FileOutputStream

FilterOutputStream

BufferedOutputStream

DataOutputStream

ObjectOutputStream

PipedOutputStream




입력 스트림 클래스 구조

InputStream (abstruct)

ByteArrayInputStream

FileInputStream

FilterInputStream

BufferedInputStream

DataInputStream

LineNumberInputStream

PushbackInputStream

ObjectInputStream

PipedInputStream

SequenceInputStream

StringBufferInputStream


LineNumberInputStream와 StringBufferInputStream은 문자 인코딩을 지원하지 않기 때문에 사용이 금지되었다. 이 사용 금지된 메소들 대신 LineNumberReader와 StringReader를 사용해야 한다.



***

PrintStream도 다른 언어의 문자 인코딩을 지원하지 않기 때문에 사용해서는 안되며 대신 PrintWriter를 사용해야 한다. 하지만 PrintStream은 System클래스의 out 과 err 클래스 필드 타입으로 너무나 광범위하게 사용되었기 때문에 사용 금지가 되지는 않았다.



java.io 패키지가 아닌 다른 자바 패키지에서도 몇가지 입/출력 스트림 클래스를 제공한다. 예를 들어 java.util.zip 패키지에서는 압축되지 않은 데이터를 압출하는 다섯 가지 출력 스트림 클래스를 제공하며 압축된 데이터를 압축 해제를 하는 다섯가지 입력 스트림을 제공한다.


CheckedOutputStream            

CheckedInputStream


DeflaterOutputStream           

DeflaterInputStream


GZIPOutputStream

GZIPInputStream


InflaterOutputStream

InflaterInputStream


ZipOutputStream

ZipInputStream




'Java > Working-level Java' 카테고리의 다른 글

InputStream  (0) 2015.01.26
OutputStream  (0) 2015.01.26
FileWriter : FIndAll  (0) 2015.01.22
Thread 3  (0) 2015.01.14
Thread 2  (0) 2015.01.14
Posted by af334