手记

Java 基本数据类型

在Java 编程语言中涉及的都是以数据类型的操作,在JAVA语言中数据类型又分为两大数据类型:内置数据类型、引用数据类型。

数据类型在定义中以变量存在,变量就是申请内存来存储值。也就是说,当创建变量的时候,需要在内存中申请空间。

Java语言提供了八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型。

1.    内置数据类型

    1.   Byte

        a)     byte 数据类型是8位、有符号的,以二进制补码表示的整数;

        b)    最小值是 -128(-2^7);

        c)    最大值是 127(2^7-1);

        d)    默认值是 0;

        e)    byte 类型用在大型数组中节约空间,主要代替整数,因为 byte 变量占用的空间只有 int 类型的四分之一;

        f)      例子:byte a = 100,byte b = -50。

2.   Short

        a)     short 数据类型是 16 位、有符号的以二进制补码表示的整数

        b)    最小值是 -32768(-2^15);

        c)    最大值是 32767(2^15 - 1);

        d)     Short 数据类型也可以像 byte 那样节省空间。一个short变量是int型变量所占空间的二分之一;

        e)    默认值是 0;

        f)      例子:short s = 1000,short r = -20000。

3.    Int

    a)     int 数据类型是32位、有符号的以二进制补码表示的整数;

    b)    最小值是 -2,147,483,648(-2^31);

    c)    最大值是 2,147,483,647(2^31 - 1);

    d)     一般地整型变量默认为 int 类型;

    e)    默认值是 0 ;

    f)      例子:int a = 100000, int b = -200000。

4.   Long

    a)     long 数据类型是 64 位、有符号的以二进制补码表示的整数;

    b)    最小值是 -9,223,372,036,854,775,808(-2^63);

    c)    最大值是 9,223,372,036,854,775,807(2^63 -1);

    d)     这种类型主要使用在需要比较大整数的系统上;

    e)    默认值是 0L;

    f)      例子: long a = 100000L,Long b = -200000L。
"L"理论上不分大小写,但是若写成"l"容易与数字"1"混淆,不容易分辩。所以最好大写。

5.    Float

    a)     float 数据类型是单精度、32位、符合IEEE 754标准的浮点数;

    b)    float 在储存大型浮点数组的时候可节省内存空间;

    c)    默认值是 0.0f;

    d)     浮点数不能用来表示精确的值,如货币;

    e)     例子:float f1 = 234.5f。

6.   Double

    a)     double 数据类型是双精度、64 位、符合IEEE 754标准的浮点数;

    b)     浮点数的默认类型为double类型;

    c)     double类型同样不能表示精确的值,如货币;

    d)    默认值是 0.0d;

    e)     例子:double d1 = 123.4。

7.   Boolean

    a)     boolean数据类型表示一位的信息;

    b)     只有两个取值:true 和 false;

    c)     这种类型只作为一种标志来记录 true/false 情况;

    d)    默认值是 false;

    e)     例子:boolean one = true。

8.   Char

    a)    char类型是一个单一的 16 位 Unicode 字符;(Unicode编码)

    b)     最小值是 \u0000(即为0);

    c)     最大值是 \uffff(即为65,535);

    d)     char 数据类型可以储存任何字符;

    e)     例子:char letter = 'A';。

1.   对于数值类型的基本类型的取值范围,我们无需强制去记忆,因为它们的值都已经以常量的形式定义在对应的包装类中了,例如:

// char System.out.println("基本类型:char 二进制位数:" + Character.SIZE); System.out.println("包装类:java.lang.Character"); // 以数值形式而不是字符形式将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); }

2.   Float和Double的最小值和最大值都是以科学记数法的形式输出的,结尾的"E+数字"表示E之前的数字要乘以10的多少次方。例如:3.14E3就是3.14 × 103 =3140

3.    Char 是一个单一的 16 位 Unicode 字符,最小值是 \u0000(即为0)、最大值是 \uffff,它存储的字符和数字是对应的,在Unicode编码中charc1='a';//定义一个char类型

inti1 = c1;//char自动类型转换为int。

4.    Java中声明八进制,在 赋值数字前加0,如inti=012;输出10;

5.    声明十六进制,在赋值数字前加0x,如inti=0x12;输出18;

6.   低精度可以转高精度、高精度到低精度需要强制转换(直接去掉)。

7.    Character 可以对单个字符进行操作、大小写转换等

基本类型的相互转换:

1.   数字类型的高低:byte short int long float double 可以直接的相互转化(强转)

2.   其他类型的转换使用包装类:String类型转换成int类型:

int i = Integer.parseInt([String])、int i = Integer.valueOf(my_str).intValue();
int类型转换成String类型:
String s = String.valueOf(i); String s = Integer.toString(i); String s = "" + i;
 

string->byte
Byte staticbyte parseByte(String s) 

 

byte->string 
Byte staticString toString(byte b)

 

char->string 
Characterstatic String to String (char c)

 

string->Short 
Short staticShort parseShort(String s)

 

Short->String 
Short staticString toString(Short s)

 

String->Integer 
Integer staticint parseInt(String s)

 

Integer->String 
Integer staticString tostring(int i)

 

String->Long 
Long staticlong parseLong(String s)

 

Long->String 
Long staticString toString(Long i)

 

String->Float 
Float staticfloat parseFloat(String s)

 

Float->String 
Float staticString toString(float f)

 

String->Double 
Double staticdouble parseDouble(String s)

 

Double->String
Double staticString toString(Double)

3.   基本类型向包装类相互转换:

Integer a= new Integer(2);

反向:int b=a.intValue();

     boolean b=Boolean.valueOf(“123”).booleanValue()

float f=Float.valueOf(“123”).floatValue()

double d=Double.valueOf(“123”).doubleValue()

 long l=Long.valueOf(“123”).longValue()

char=Character.valueOf(“123”).charValue()

 

4.   在这八个类名中,除了Integer和Character类以后,其它六个类的类名和基本数据类型一直,只是类名的第一个字母大写即可注意:包装类不可以直接定义需要实例化去使用:   Float d =new Float(1.00);

Integer a  = newInteger(100);

5.   在数字过大时,编程时超过所占用的字节数就会数字溢出、造成负数、其他状况(就是只取最后面满足字节数的位数)

6.   占用字节数:

java中,只要是字符,不管是数字还是英文还是汉字,都占两个字节,都是一个char。char c1 = '中';char c2 = 'A'; char c3 = '1';确切说,Unicode编码是指一类编码的统称,而非某个具体编码。utf-8跟unicode是不一样的。

以utf8为例,utf8是一个变长编码标准,可以以1~4个字节表示一个字符,而中文占3个字节,ascII字符占1个字节。

因为java是以unicode作为编码方式的。unicode是一个定长的编码标准,每个字符都是2个字节,也就是1个char类型的空间。

                                            

 

原文出处

0人推荐
随时随地看视频
慕课网APP