[Java 基础]02_基本数据类型

Java数据类型划分

Java的两大数据类型:

  • 内置数据类型
  • 引用数据类型 

[Java 基础]02_基本数据类型

 

Java内置数据类型

Java内置数据类型取值范围

JAVA基本数据类型

序号

类型

默认值

大小/

1

byte

(byte)0

8

2

short

(short)0

16

3

int

0

32

4

long

0L

64

5

float

0.0f

32

6

double

0.0d

64

7

char

\u0000

16

8

boolean

FALSE

1

对于数值类型的基本类型的取值范围,我们无需强制去记忆,因为它们的值都已经以常量的形式定义在对应的包装类中了。请看下面的例子:
public  class PrimitiveTypeTest {
     public  static  void main(String[] args) {
         //  byte        System.out.println("基本类型:byte 二进制位数:" + Byte.SIZE);
        System.out.println("包装类:" + Byte. class.getName());
        System.out.println("最小值:Byte.MIN_VALUE=" + Byte.MIN_VALUE);
        System.out.println("最大值:Byte.MAX_VALUE=" + Byte.MAX_VALUE);
        System.out.println();

         //  short        System.out.println("基本类型:short 二进制位数:" + Short.SIZE);
        System.out.println("包装类:" + Short. class.getName());
        System.out.println("最小值:Short.MIN_VALUE=" + Short.MIN_VALUE);
        System.out.println("最大值:Short.MAX_VALUE=" + Short.MAX_VALUE);
        System.out.println();

         //  int        System.out.println("基本类型:int 二进制位数:" + Integer.SIZE);
        System.out.println("包装类:" + Integer. class.getName());
        System.out.println("最小值:Integer.MIN_VALUE=" + Integer.MIN_VALUE);
        System.out.println("最大值:Integer.MAX_VALUE=" + Integer.MAX_VALUE);
        System.out.println();

         //  long        System.out.println("基本类型:long 二进制位数:" + Long.SIZE);
        System.out.println("包装类:" + Long. class.getName());
        System.out.println("最小值:Long.MIN_VALUE=" + Long.MIN_VALUE);
        System.out.println("最大值:Long.MAX_VALUE=" + Long.MAX_VALUE);
        System.out.println();

         //  float        System.out.println("基本类型:float 二进制位数:" + Float.SIZE);
        System.out.println("包装类:" + Float. class.getName());
        System.out.println("最小值:Float.MIN_VALUE=" + Float.MIN_VALUE);
        System.out.println("最大值:Float.MAX_VALUE=" + Float.MAX_VALUE);
        System.out.println();

         //  double        System.out.println("基本类型:double 二进制位数:" + Double.SIZE);
        System.out.println("包装类:" + Double. class.getName());
        System.out.println("最小值:Double.MIN_VALUE=" + Double.MIN_VALUE);
        System.out.println("最大值:Double.MAX_VALUE=" + Double.MAX_VALUE);
        System.out.println();

         //  char        System.out.println("基本类型:char 二进制位数:" + Character.SIZE);
        System.out.println("包装类:" + Character. class.getName());
         //  以数值形式而不是字符形式将Character.MIN_VALUE输出到控制台        System.out.println("最小值:Character.MIN_VALUE="
                + ( int) Character.MIN_VALUE);
         //  以数值形式而不是字符形式将Character.MAX_VALUE输出到控制台        System.out.println("最大值:Character.MAX_VALUE="
                + ( int) Character.MAX_VALUE);
    }
}

运行结果

基本类型: byte 二进制位数:8
包装类:java.lang.Byte
最小值:Byte.MIN_VALUE=-128
最大值:Byte.MAX_VALUE=127

基本类型: short 二进制位数:16
包装类:java.lang.Short
最小值:Short.MIN_VALUE=-32768
最大值:Short.MAX_VALUE=32767

基本类型: int 二进制位数:32
包装类:java.lang.Integer
最小值:Integer.MIN_VALUE=-2147483648
最大值:Integer.MAX_VALUE=2147483647

基本类型: long 二进制位数:64
包装类:java.lang.Long
最小值:Long.MIN_VALUE=-9223372036854775808
最大值:Long.MAX_VALUE=9223372036854775807

基本类型: float 二进制位数:32
包装类:java.lang.Float
最小值:Float.MIN_VALUE=1.4E-45
最大值:Float.MAX_VALUE=3.4028235E38

基本类型: double 二进制位数:64
包装类:java.lang.Double
最小值:Double.MIN_VALUE=4.9E-324
最大值:Double.MAX_VALUE=1.7976931348623157E308

基本类型: char 二进制位数:16
包装类:java.lang.Character
最小值:Character.MIN_VALUE=0
最大值:Character.MAX_VALUE=65535

 

内置数据类型的转换

自动转换

一般情况下,定义了某数据类型的变量,就不能再随意转换。但是JAVA允许用户对基本数据类型做有限度的类型转换。

如果符合以下条件,则JAVA将会自动做类型转换:

(1)由“小”数据转换为“大”数据

显而易见的是,“小”数据类型的数值表示范围小于“大”数据类型的数值表示范围,即精度小于“大”数据类型。

所以,如果“大”数据向“小”数据转换,会丢失数据精度。比如:long转为int,则超出int表示范围的数据将会丢失,导致结果的不确定性。

反之,“小”数据向“大”数据转换,则不会存在数据丢失情况。由于这个原因,这种类型转换也称为转换 

这些类型由“小”到“大”分别为:( byte short char) < int < long < float < double。 

这里我们所说的“大”与“小”,并不是指占用字节的多少,而是指表示值的范围的大小。

 

(2)转换前后的数据类型要兼容
由于 boolean 类型只能存放 truefalse,这与整数或字符是不兼容的,因此不可以做类型转换。


(3)整型类型和浮点型进行计算后,结果会转为浮点类型

long x = 30;
float y = 14.3f;
System.out.println("x/y = " + x/y);

运行结果

x/y = 1.9607843

可见 long 虽然精度大于 float 类型,但是结果为浮点数类型。

 

强制转换

在不符合自动转换条件时或者根据用户的需要,可以对数据类型做强制的转换。

转换方式为:在数值的前面用一个括号"()"把要强制转换的类型标注出来。

float f = 25.5f;
int x = ( int)f;
System.out.println("x = " + x);


变量和常量

变量

变量来源于数学,是计算机语言中能储存计算结果或能表示值抽象概念。

打个比方,一部电影中有形形色色的角色,每个角色都有各自的名字。而变量在Java程序中就相当于各个“角色”,变量同样也有变量名,以相互区分识别。

变量可以用以存放数据,且数据可以变化,在使用变量前必须声明它的数据类型。 

int num = 3;

这行代码的意思是:定义一个int型的变量,变量名为num,它存放的数值为3。

Java中主要有如下几种类型的变量

  • 局部变量
  • 类变量(静态变量)
  • 成员变量(非静态变量)

这里暂不详细说明各种变量。

 

常量

与变量相反,常量是数值不能变化的一个固定值

在Java中用final标志,声明方式和变量类似: 

final  double PI = 3.1415927;
虽然常量名也可以用小写,但为了便于识别,通常使用大写字母表示常量。


字符串常量

和其他语言一样,Java的字符串常量也是包含在两个引号之间的字符序列。下面是字符串型字面量的例子: 

"Hello World"
"two\nlines"
字符串常量和字符常量都可以包含任何Unicode字符。例如:
char a = '\u0001';
String a = "\u0001";
 

转义字符

Java语言支持一些特殊的转义字符序列:

符号

字符含义

\n

换行 (0x0a)

\r

回车 (0x0d)

\f

换页符(0x0c)

\b

退格 (0x08)

\s

空格 (0x20)

\t

制表符

\"

双引号

\'

单引号

\\

反斜杠

\ddd

八进制字符 (ddd)

\uxxxx

16进制Unicode字符 (xxxx)

 

参考资料

Java编程思想

Java开发实战经典

http://www.w3cschool.cc/java/java-basic-datatypes.html

你可能感兴趣的:(java 基础)