标识符
v 标识符是赋给类、方法或变量的名字。一个标识符可以是字母、数字、下划线、美元符号的任意顺序组合,但不能以一个数字开始。
注:Java是区分大小写的;
java字符集
v java使用Unicode标准字符集,最多可以识别65536个字符,Unicode字符集的前128个字符是ASCII码表.Unicode字符集覆盖了大部分国家的“字母表”的字母; 也就是说java类名变量名等可以是中文;因为中文也是Unicode字符集中的一个字符; 但不建议开发中用中文标识符。
§ 命名规范
– 驼峰式命名:userName userSex
– 类名首字母大写
– 变量、方法名开头字母小写
– 常量所有字母大写
– 包名全部小写
– 工程名首字母大写
常量与变量
v 常量就是一个保持不变的值
v 变量是Java程序的一个基本存储单元。变量由一个标识符,类型以及一个可选初始值组合定义。
在程序执行过程中常量值可变
变量内存的空间分配
v 程序要为每一项数据分配内存,通常使用变量来存储数据。使用变量可以引用存储在内存中的数据,并随时根据需要显示数据或执行数据操纵。
§ 需要多少内存
§ 数据被存储在哪里
v 操作系统负责集注变量在内存中的地址
v 要引用内存空间中的值,只需指定变量名
注释
v java中注释有三种:
§ //单行注释,简单的解释语句含义.
§ /* 多行注释,用来说明更多的内容,包括算法等.
……
*/
* 成类和接口的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定义:
v int 整型
§ 所占内存: 占4个字节
§ 常量: 12、32(十进制); 01133(八进制); 0x117F (十六进制)
§ 变量: 使用int定义:
v long 整型
§ 所占内存: 占8个字节
§ 常量: 12、32(十进制); 01133(八进制); 0x117F (十六进制)
§ 变量: 使用long定义:
v 浮点型(即小数类型)分两种: float ; double
v float
§ 所占内存: 占4个字节
§ 常量: 3.14F、2.23f;
§ 变量: 使用float定义:
v 浮点型(double)
§ 所占内存: 占8个字节
§ 常量: 3.14D、2.23d、23.23;
§ 变量: 使用double定义:
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^y ) |
如果参加运算的两个操作数的相应位同号,则结果为 0,异号则为 1 |
左移 ( x<<2 ) |
左端(高位)移出部分舍弃,右端(低位)补0 |
右移 ( x>>2 ) |
右端(低位)移出部分舍弃,左端(高位)根据符号位补0或者1,无符号或正数补0,负数补1 |
v 位运算符将数字视为二进制值,并按位进行相应运算,运算完成后再重新转换为数字
一般来说,算术运算符优先级高于比较运算符高于逻辑运算符高于赋值运算符
要点补充:
其它运算符
. 调用类的静态变量和常量。对象的属性
new 实例化一个对象。对象分配到内存的堆区中。
() 调用类的静态方式,对象的方法。改变运算符的优先级
[] 数组,通过下标号来获取数组中的元素
instanceof 判断一个对象是否一个类的实例。