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

02_Java基础_数据类型及运算符

2011-11-19 10:31 369 查看
标识符

v 标识符是赋给类、方法或变量的名字。一个标识符可以是字母、数字、下划线、美元符号的任意顺序组合,但不能以一个数字开始。

注:Java是区分大小写的;


java字符集

v java使用Unicode标准字符集,最多可以识别65536个字符,Unicode字符集的前128个字符是ASCII码表.Unicode字符集覆盖了大部分国家的“字母表”的字母; 也就是说java类名变量名等可以是中文;因为中文也是Unicode字符集中的一个字符; 但不建议开发中用中文标识符。

§ 命名规范

驼峰式命名:userName userSex

类名首字母大写

变量、方法名开头字母小写

常量所有字母大写

包名全部小写

工程名首字母大写

常量与变量

v 常量就是一个保持不变的值

v 变量是Java程序的一个基本存储单元。变量由一个标识符,类型以及一个可选初始值组合定义。

在程序执行过程中常量值可变


变量内存的空间分配

v 程序要为每一项数据分配内存,通常使用变量来存储数据。使用变量可以引用存储在内存中的数据,并随时根据需要显示数据或执行数据操纵。

§ 需要多少内存

§ 数据被存储在哪里

v 操作系统负责集注变量在内存中的地址

v 要引用内存空间中的值,只需指定变量名

注释

v java中注释有三种:

§ //单行注释,简单的解释语句含义.

§ /* 多行注释,用来说明更多的内容,包括算法等.

……

*/

/** Java文档注释,可以通过javadoc生

* 成类和接口的HTML格式的帮助文档.

* 这种注释有其特殊的格式(参见相关文档)

*/

数据类型

v Java语言是强类型语言

§ 每个变量每个表达式都有类型

§ 参数传递都要进行类型相容性检查



v 分类

§ 基本数据类型(Primary Data Types)

§ 复合数据类型(Composite Data Types)

八大基本数据类型

v 逻辑型(或称布尔型)

§ 所占内存: 占1个字节

§ 常量: true , false

§ 变量: 使用boolean定义

v 整型

§ 整型即整数类型,整型有:byte ;short ; int ; long

v byte(字节型)

§ 所占内存: 占1个字节

§ 常量: 12、32(十进制); 033(八进制); 0x7F (十六进制)

§ 变量: 使用byte定义

v 对于byte型变量,内存分配给1个字节,1个字节由8位(bit)组成;位有两种状态分别用0,1来表示,这样计算机可以用二进制数来存储信息。

§ 例如: byte x=7; 内存储状态为: 0000111

最高位(左边的第一位)是符号位,0表示正数,1表示负数; 正数用原码表示;负数用补码(即加1取反)表示。

§ 例如: byte x=-8 内存储状态为: 11111000

得到-8的补码,首先得到7的原码,然后将7的原码中的0变成1, 1变成0就是-8的补码。

§ 因此byte型变量的取值范围是-27~27-1 (-128 ~ 127)

v short整型

§ 所占内存: 占2个字节

§ 常量: 12、32(十进制); 01133(八进制); 0x117F (十六进制)

§ 变量: 使用short定义:

取值范围为: -2^15 ~ 2^15-1

v int 整型

§ 所占内存: 占4个字节

§ 常量: 12、32(十进制); 01133(八进制); 0x117F (十六进制)

§ 变量: 使用int定义:

取值范围为: -231 ~ 231-1

v long 整型

§ 所占内存: 占8个字节

§ 常量: 12、32(十进制); 01133(八进制); 0x117F (十六进制)

§ 变量: 使用long定义:

取值范围为: -263 ~ 263-1
注: 对long型变量赋值时,数字后要大写或小写的 L

v 浮点型(即小数类型)分两种: float ; double

v float

§ 所占内存: 占4个字节

§ 常量: 3.14F、2.23f;

§ 变量: 使用float定义:

取值范围为: -10-38 ~ 10-38 ~ 1038
注: 对float型变量赋值时,必须数字后要大写或小写的 f

v 浮点型(double)

§ 所占内存: 占8个字节

§ 常量: 3.14D、2.23d、23.23;

§ 变量: 使用double定义:

取值范围为: -10-308 ~ 10-308 ~ 10308
注: 对double型变量赋值时,(可选)数字后要大写或小写的 d

v 字符型; java使用Unicode字符集;

§ 所占内存: 占2个字节

§ 常量: ‘a’、’A’、’\t’、’你’、’ぁ’、’?’

§ 变量: 使用char定义:

注:字符型用 单引号括起来

v 取值范围为: 对于char类型,内存分配2个字节,占16位,最高位不用来表示符号。char型变量取值为

0 ~ 216-1 (0 ~ 65535)


数据类型转换(隐式转换)

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

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

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

强制类型转换

v 通过使用转换可以将一个表达式强制转换成某一种类型,是一元运算符。

v 转换的通用语法是:

(type) cast

type 任意有效的 java 数据类型

v 数据类型转换必须满足如下规则:

§ 不能对boolean类型进行类型转换。

§ 不能把对象类型转换成不相关类的对象。

§ 在把容量大的类型转换为容量小的类型时必须使用强制类型转换。

§ 转换过程中可能导致溢出或损失精度

§ 浮点数到整数的转换是通过舍弃小数得到,不是四舍五入(int)23.7 == 23,(int)-45.89f== -45

字符型与int整型转换

v 字符型在计算机中是以二进制信息存储;存储的值是该字符在unicode字符集中的排序位置。

v 字符型是用2个字节存储,但它是无符号的;所以字符型范围比short范围大。字符型一般与int相互转化;

表达式

v 运算符和括号将操作数连接起来的、符合java语言语法规则的式子,称为表达式

v 运算符和操作数的有效组合

v 操作数可以是变量、常量或者函数

v 在程序执行的过程中,变量的实际值和表达式中出现的常量一起使用

v 表达式可分为:

§ 算术表达式

§ 关系表达式

§ 逻辑表达式

§ 函数表达式

v 运算符的优先级和结合方向

§ 按运算符的优先级高低次序执行。例如,先乘除后加减。

§ 如果在一个运算对象(或称操作数)两侧的运算符的优先级相同,则按java语言规定的结合方向(结合性)进行。

v 良好的源程序书写习惯:在表达式中,在双目运算符的左右两侧各加一个空格,可增强程序的可读性。

赋值运算符

v 赋值符号“=”就是赋值运算符,它的作用是将一个表达式的值赋给一个变量。

v 通用的形式:变量名=表达式

v 将同一个值赋给多个变量的操作叫做多重赋值

运算符

描述

按位与

( x & y )

如果两个操作数的相应位均为 1,则该位的结果值为 1

按位或

( x | y )

如果两个操作数的相应位有一个为 1,则该位的结果值为 1

按位取反

( ~x )


将操作数按位取反

(0 到 1 和 1 到 0)


按位异或

( x^y )

如果参加运算的两个操作数的相应位同号,则结果为 0,异号则为 1

左移

( x<<2 )

左端(高位)移出部分舍弃,右端(低位)补0

右移

( x>>2 )

右端(低位)移出部分舍弃,左端(高位)根据符号位补0或者1,无符号或正数补0,负数补1

v 位运算符将数字视为二进制值,并按位进行相应运算,运算完成后再重新转换为数字

一般来说,算术运算符优先级高于比较运算符高于逻辑运算符高于赋值运算符



要点补充:

其它运算符

. 调用类的静态变量和常量。对象的属性

new 实例化一个对象。对象分配到内存的堆区中。

() 调用类的静态方式,对象的方法。改变运算符的优先级

[] 数组,通过下标号来获取数组中的元素

instanceof 判断一个对象是否一个类的实例。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: