您的位置:首页 > 编程语言 > Java开发

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

2011-12-02 00:25 323 查看
第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=true;
boolean 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)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: