浪潮优派培训Java笔记:第2章 数据类型

第2章 数据类型

Java中的数据类型划分简单数据类型复合数据类型

2.1 基本数据类型

八种基本类型:分为4组

1.        整型:短整型(short)、整型(int)、长整型(long)、字节型(byte)。这些都是有符号的整数值。

2.        浮点型:单精度浮点型(float)、双精度浮点型(double)。

3.        布尔型(boolean):有两种值 “真”、“假”。

4.        字符型(char):代表数字或字母等字符集的符号。

2.1.1 整型

整型的长度和取值范围

整数类型

位数

值的范围(符号位占1位)

byte

8位(1个字节)

-128到127 (-2 -- 2 -1)

short

16(2个字节)

-32768到32767 (-2 -- 2 -1)

int

32(4个字节)

-2 -- 2 -1

long

64(8个字节)

 

1.        Java语言的整型都是有符号的。

2.        Java语言的整型变量默认为int型。

3.        long型常量一般以“l”或“L”结尾。例如:long a= -100L;

4.        只要整数表达式中包含byte/short/int和字面量(如2),都被升级为int类型。例如:

byte a= 2; //这句没错

a=a+2;  //这种写法错误,应改成:a=(byte)(a+2);进行强制类型转换。同理short

5.        八进制整数:以0(零)开头,如012表示十进制数10。

6.        十六进制整数:以0x(零x)或0X开头,如0x123表示十进制数291。

7.        整数类型不依赖于操作系统,在任何平台都有相同的长度和属性。

2.1.2浮点型

浮点型的长度和取值范围

浮点类型

位数

值的范围

float

32(4个字节)

 

double

64(8个字节)

 

1.        在数字后面带有F或f(float)、D或d(double),或者一个数字包括小数点或指数部分,则该数字为浮点类型。

2.        十进制数形式:由数字和小数点组成,如0.123, 1.23, 123.0

3.        科学计数法形式:如:123e3或123E3,其中e或E之前必须有数字,且e或E后面的指数必须为整数。

4.        float型的值,必须在数字后加“f”或“F”,如1.23f。例如:float a=1.2;这种写法是错误的,应该写成 float a=1.2f;或float a=1.2F;

5.        当声明浮点型的变量时,默认为double型。所以变量都用double型。

6.        当精度比较高,数值比较大时用double,而且double在CPU上处理速度更快,所以Sin()等函数返回的都是double型。

7.        浮点型也是平台无关性的。在任何操作系统上都有相同的长度和取值范围。

     float f=900.09f;//正确

     float f=900.09;//错误,字面量自动扩展为double

     float f1=5;//正确,为什么?(5字面量是int型的,int型可以自动转换为float型的)。

       【练习题】Whichthree are valid declaraction of a float?

   A.float foo=-1;       B. float foo=1.0;      C. float foo=42e1;

   D.float foo=2.02f;    E. floatfoo=3.03d;    F. float foo=0x0123;

【Answer】:A,D,F 【分析】:B错误,因为1.0在Java中是double类型的,C,E错误同样道理,都是double类型的。

2.1.3 字符型

1.        Java语言里char的表示范围为0到65536,包含了ASCII码(表示范围为0到127)。

2.        字符常量是用单引号括起来的一个字符,如'a','A';

3.        字符型变量: 类型为char,它在机器中占16位 ,其范围为0~65535。

字符型变量的定义如:char c='a';  /*指定变量c为char型,且赋初值为'a'*/

2.1.4 布尔型

1.        在Java中,布尔型数据只有两个值true和false,且它们不对应于任何整数值(不对应0或1!

2.        布尔型变量的定义如:boolean bl1=trueboolean bl2=false;

3.        boolean值只能做布尔运算

4.        Java中整型的1和0不能作为布尔值,而有些语言如C,C++,JavaScript是可以的。

===========================================================================

下面是总结变量声明的方式:

public class DataType {

    public static void main(String[]args){

       int x,y;   // 定义x,y两个整型变量

       x = 12;

       y = 300;

       float z = 1.234f; // 指定变量z为float型,且赋初值为1.234

       double w = 1.234;

       boolean state = true;

       char c ;

       c = 'A';

       String str;

       str = "byte";

       String str1 ="HI";

       }

}

 Java中,单个字符用单引号,字符串用双引号。

2.1.5简单数据类型中各类型数据间的优先关系和相互转换

       1.不同类型数据间的优先关系如下:

       低------------------------------------------->高

       byte,short,char->int -> long -> float -> double

       2.自动类型转换规则

       整型、实型、字符型数据可以混合运算。运算中,不同类型的数据先转化为同一类型,然后进行运算,转换从低级到高级;

   3.  强制类型转换

        高级数据要转换成低级数据,需用到强制类型转换。     如:

    int i;

    byte b=(byte)i; /* 把int型变量i强制转换为byte型 */

【习题】

l  一个函数定义的返回值是float,它不能在return语句中返回的值的类型是(  )

    A.char              B.float        C.long         D.double

    答案:D

2.1.6 常量和变量

     常量:用关键字final来实现。如:final int NUM=100; 注意:常量名全部大写!

     变量的初始化

      每个变量都必须有初始值;

      变量的初始化分显式和隐式

     显式是指由用户初始化或表达式赋值的初始化。如:局部变量

     隐式是指系统自动赋给缺省值。如:类变量、实例变量(类属性)、数组成员

     例:指出程序中的错误,并说明原因。然后修改程序。思考该题说明了什么问题。

  class AA {

    int num;

    void test() {

       int j;

       j = j + num;

    }

}

局部变量j未初始化;int j=0;

每个变量都必须有初始值,局部变量必须显示初始化,即由用户初始化或表达式赋值初始化。   类变量的初始化可以是隐式的,即系统自动赋给默认值。其中num是类变量,j是局部变量。

      关于变量作用域的说明:

       注意:在一个确定的域中,变量名应该是唯一。

       类变量:类变量在类中声明,而不是在类的某个方法中声明,它的作用域是整个类。

方法参数:方法参数传递给方法,它的作用域就是这个方法。

异常(Exception)处理参数:异常处理参数传递给异常处理代码,它的作用域就是异常处理部分。

2.2 复合数据类型

Java中的复合数据类型包括class、interface、数组(Array)。

发布了40 篇原创文章 · 获赞 39 · 访问量 13万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章