C 언어 , 자바 자료형 비교

 

1.  C 언어

 

구분

자료형

범위

바이트

정수형

char
unsigned char

-128 ~ 127
0 ~ 255

1(8)
1(8)

short
int
long
unsigned short
unsigned int
unsigned long

-32768 ~ 32767
-2,147,483,648 ~ 2,147,483,647
-2,147,483,648 ~ 2,147,483,647
0~65535
0~4,294,967,295
0~4,294,967,295

2(16)
4(32)
4(32)
2(16)
4(32)
4(32)

실수형

float
double

8.4X10-37 ~ 3.4X1038
2.2X10-308 ~ 1.8X10308

4(32)
8(64)

나열형

enum

정수를 대신하여 사용하는 별명, int형의 크기

무치형

void

실제 자료는 없음을 명시적으로 선언

 

 

2. 자바

 

이름

타입

저장 가능한 범위

크기(바이트)

int

정수

-2^31 ~ 2^31 - 1

4

char

문자

0 ~ 65536(?)

2

double

실수

-2^63 ~ 2^63 - 1

8

boolean

논리(참 or 거짓)

범위는 없구 true아니면false만 가능

1

long

정수

-2^63 ~ 2^63 - 1

8

float

실수

-2^31 ~ 2^31 - 1

4

byte

문자(?)

0 ~ 65536(?)

1

short

정수

-2^15 ~ 2^15 - 1

2

import java.io.File;
import java.awt.Image;
import javax.swing.ImageIcon;
import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;

public class Test {

    public static void main(String[] args) {
  // 방법1
  Image img = new ImageIcon(이미지경로).getImage();
  System.out.println( img.getWidth(null) + "," + img.getHeight(null) );

 

  // 방법2
  try
  {
   File file = new File(이미지경로);
   BufferedImage bi = ImageIO.read( file );
   System.out.println( bi.getWidth() + "," + bi.getHeight() );
  } catch( Exception e ) {
   System.out.println("이미지 파일이 아닙니다.");
  }
    }
}

 

Image 를 쓰는 방법과 BufferedImage 를 쓰는 방법이 있는데

둘다 결과는 똑같지만 후자를 쓰는 이유는...

JSP에서 전자를 쓰면 이미지 파일이 아닌 파일(avi나 exe 같은)은 한동안 파일 락이 걸려서

삭제나 이동이 불가하였고 flush 도 해봤지만 똑같은 증상이 발생하였습니다.

반면 후자는 아무 문제 없었습니다. JAVA 로 실행시에는 문제가 발생하진 않습니다.

문제의 원인과 해결 방법을 아시는 분은 댓글 부탁드립니다.

'Dev > JAVA' 카테고리의 다른 글

Spring framework 설치  (0) 2012.11.25
자바 데몬(daemon) 만들기  (0) 2011.06.09
Java Simple Daemon  (0) 2011.06.05
자바 이미지 리사이즈(썸네일)  (0) 2011.04.06

+ Recent posts