>Java >java지도 시간 >Java의 데이터 유형 및 변수에 대한 심층 분석

Java의 데이터 유형 및 변수에 대한 심층 분석

高洛峰
高洛峰원래의
2017-01-22 10:28:411299검색

Java 데이터형 변환(자동변환, 강제변환)
데이터형 변환은 자동변환과 강제변환으로 나누어진다. 자동 변환은 프로그램 실행 중에 "조용히" 수행되는 변환으로, 사용자가 미리 선언할 필요가 없습니다. 일반적으로 낮은 자리 형식에서 높은 자리 형식으로 변환을 선언해야 합니다. 코드에서 변환 순서는 중요하지 않습니다.
자동 데이터형 변환

자동 변환은 낮은 것부터 높은 것 순으로 변환합니다. 다양한 유형의 데이터 간의 우선순위 관계는 다음과 같습니다.
낮음----------------------------------- ------ -------->High
byte, short, char-> long -> double

서로 다른 유형의 데이터를 동일한 유형으로 먼저 변환한 후 작업을 수행합니다. 변환 규칙은 다음과 같습니다.

Java의 데이터 유형 및 변수에 대한 심층 분석

강제 데이터 유형 변환

강제변환 형식은 변환이 필요한 데이터 앞에 "( )"를 추가하고, 괄호 안에 변환할 데이터 타입을 추가하는 방식입니다. 일부 데이터는 변환 작업을 거친 후 정확도가 떨어지지만 일부는 더 정확해집니다. 다음 예에서는 이 문제를 설명할 수 있습니다.

public class Demo {
  public static void main(String[] args){
    int x;
    double y;
    x = (int)34.56 + (int)11.2; // 丢失精度
    y = (double)x + (double)10 + 1; // 提高精度
    System.out.println("x=" + x);
    System.out.println("y=" + y);
  }
}

실행 결과:

x=45
y=56.0

위의 프로그램 세그먼트를 주의 깊게 분석하세요. 34.56 이전에 int의 강제 유형 변환이 있었기 때문에 34.56이 34가 되었습니다. 마찬가지로 11.2는 11이 되므로 x의 결과는 45입니다. x 앞에 더블 타입 캐스팅이 있어서 x 값이 45.0이 되고, 10의 앞부분도 강제로 더블 타입이 되어서 역시 10.0이 되므로 y의 최종 값은 56이 됩니다.

Java 데이터 유형 및 변수 정의
Java는 강력한 유형의 언어이므로 변수 선언 시 데이터 유형을 지정해야 합니다. 변수의 값은 일정량의 메모리 공간을 차지합니다. 다양한 유형의 변수는 다양한 크기를 차지합니다.

Java에는 정수형 4개, 부동 소수점형 2개, 문자형 1개, 부울형 1개 등 8개의 기본 데이터 유형이 있습니다. 아래 표를 참조하세요.

Java의 데이터 유형 및 변수에 대한 심층 분석

정수 데이터의 경우 일반적으로 int 유형이 사용됩니다. 하지만 히로시마와 나가사키에 투하된 원자폭탄이 방출한 에너지를 표현한다면 긴 활자를 사용해야 합니다. byte 및 short 유형은 차지하는 저장 공간의 양을 제어해야 하는 저수준 파일 처리 또는 대규모 배열과 같은 특정 응용 프로그램에서 주로 사용됩니다.

Java에서는 정수 데이터의 길이가 플랫폼과 관련이 없으므로 소프트웨어를 한 플랫폼에서 다른 플랫폼으로 포팅할 때 프로그래머에게 발생하는 많은 문제를 해결합니다. 반면, C/C++ 정수 데이터의 길이는 플랫폼과 관련이 있으며, 프로그래머는 다양한 플랫폼에 적합한 정수 유형을 선택해야 합니다. 이로 인해 64비트 시스템에서 안정적으로 실행되는 프로그램이 32비트 시스템에서 손상될 수 있습니다. 과다.

8진수에는 10진수 8에 해당하는 010과 같은 접두사가 있습니다. Java 7부터 시작하면 0b1001과 같은 접두사를 사용할 수 있습니다. 9자리 중 10진수 9자리에 해당합니다. 또한 Java 7부터는 영어 숫자를 쓰는 방식과 유사하게 밑줄을 사용하여 숫자를 구분할 수 있습니다. 예를 들어 1_000_000은 1,000,000, 즉 백만을 의미합니다. 밑줄은 코드를 더 쉽게 읽을 수 있도록 하기 위해 존재하며 컴파일러는 이를 제거합니다.

또한 C/C++와 달리 Java는 부호 없는 유형(unsigned)을 지원하지 않습니다.

float 형식의 유효 숫자는 최대 7자리이며, 유효한 숫자 길이에는 정수부와 소수부가 포함됩니다. 예:

float x = 223.56F;
float y = 100.00f;

참고: 각 부동 소수점 유형 뒤에 "F" 또는 "f" 기호가 있습니다. 이 기호는 부동 소수점 유형임을 의미합니다.

더블타입의 유효숫자는 최대 15자리입니다. float 유형과 마찬가지로 double 뒤에는 "D" 또는 "d" 플래그가 옵니다. 예:

double x = 23.45D;
double y = 422.22d;
double z = 562.234;

참고: 플래그가 없는 부동 소수점 데이터의 경우 시스템은 기본적으로 double 유형으로 설정됩니다.

대부분의 경우 double형을 사용하며, float의 정밀도는 수요를 충족시키기 어렵습니다.

다양한 데이터 유형 적용 예:

public class Demo {
  public static void main(String[] args){
    // 字符型
    char webName1 = '微';
    char webName2 = '学';
    char webName3 = '苑';
    System.out.println("网站的名字是:" + webName1 + webName2 + webName3);
     
    // 整型
    short x=22; // 十进制
    int y=022; // 八进制
    long z=0x22L; // 十六进制
    System.out.println("转化成十进制:x = " + x + ", y = " + y + ", z = " + z);
     
    // 浮点型
    float m = 22.45f;
    double n = 10;
    System.out.println("计算乘积:" + m + " * " + n + "=" + m*n);
  }
}

실행 결과:

网站的名字是:微学苑
转化成十进制:x = 22, y = 18, z = 34
计算乘积:22.45 * 10.0=224.50000762939453

실행에서 볼 수 있습니다. 부동 소수점 유형의 데이터에는 정수만 있고 소수는 없는 경우에도 콘솔에 출력할 때 시스템은 자동으로 소수점을 추가하고 모든 소수점 자리를 0으로 설정합니다.
부울 타입 설명

프로그래밍 경험이 있고 불리언 타입을 이해하고 있다면 다음 튜토리얼은 C 언어에 대한 기초만 있는 독자를 위한 것입니다. 부울 유형).

C 언어에서는 판단 조건이 true이면 1이 반환되고, 그렇지 않으면 0이 반환됩니다. 예:

#include <stdio.h>
int main(){
  int x = 100>10;
  int y = 100<10;
  printf("100>10 = %d\n", x);
  printf("100<10 = %d\n", y);
  return 0;
}

실행 결과:

100>10 = 1
100<10 = 0

그러나 Java에서는 조건이 true이면 true를 반환하고, 그렇지 않으면 Boolean 형식인 false를 반환합니다. 예:

public class Demo {
  public static void main(String[] args){
    // 字符型
    boolean a = 100>10;
    boolean b = 100<10;
    System.out.println("100>10 = " + a);
    System.out.println("100<10 = " + b);
     
    if(a){
      System.out.println("100<10是对的");
    }else{
      System.out.println("100<10是错的");
    }
  }
}

실행 결과:

100>10 = true
100<10 = false
100<10是对的

사실 true는 1과 같고 false는 0과 같지만 이름은 로 변경되고 그 자체로 데이터 유형이 됩니다.

Java의 데이터 유형 및 변수에 대한 더 자세한 분석을 보려면 PHP 중국어 웹사이트를 주목하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.