标识符
作用:
常量、变量、方法、类和包等的名称
命名规则:
必须以字母、_下划线、美元符$开头。
其它部分可以是字母、下划线“_”、美元符“$”和数字的任意组合
大小写敏感,长度无限制。
不可以是Java的关键字。
注意:
Java不采用通常语言使用的ASCII字符集
Java采用unicode这样的标准的国际字符集。因此,这里的字母的含义:英文、汉 字等等。(不建议大家使用汉字来定义标识符!)
关键字/保留字
Java的关键字对java的编译器有特殊的意义,他们用来表示一种数据类型,或者表示程序的结构等。 保留字是为java预留的关键字,他们虽然现在没有作为关键字,但在以后的升级版本中有可能作为关键字。 识别java语言的关键字,不要和其他语言如c/c++的关键字混淆。 const和goto是java的保留字。
字符集简介
ASCII
英文字符集1个字节
ISO8859-1
西欧字符集1个字节
BIG5
台湾的大五码,表示繁体汉字2个字节
GB2312
大陆使用最早、最广的简体中文字符集2个字节
GBK
GB2312的扩展,可以表示繁体中文2个字节
GB18030
最新GBK的扩展,可以表示汉字、维吾尔文、藏文等中华民族字符2个字节
Unicode
国际通用字符集2个字节
Java基本数据类型
Java是一种强类型语言
- 常量是有数据类型的
- 变量都必须声明其数据类型
常量和变量
- Java是一种强类型语言,每个变量都必须声明其类型。
- Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域
- 变量在使用前必须对其声明, 只有在变量声明以后,才能为其分配相应长度的存储单元,声明格式为:typevarName[=value] [{,varName[=value]}] ;
注意事项:
- 每个变量都有类型,类型可以是基本类型,也可以是引用类型。
- 变量名必须是合法的标识符。
变量声明举例:
- double salary;
- boolean done;
- long earthPopulation ;
- int age ;
可以在一行中声明多个变量:
- int i ,j; // both areintegers–不提倡这种风格,逐一声明每一个变量可以提高程序可读性。
- 可以将变量的声明和初始化放在同一行中,例如:int age = 18; float e = 2.718281828f;
整形数据类型
整形数据类型一共有四种,按照保存的范围由小到大分别是:duet、short、int 、long ,在Java里面任何一个的整形常量其默认的类型都是int型,声明long型常量可以后加‘I’或‘L’(建议使用大写,小写容易误认为数字1)
浮点型数据类
浮点型数据类型,FLOAT 数据类型用于存储单精度浮点数或双精度浮点数。浮点数使用 IEEE(电气和电子工程师协会)格式。浮点类型的单精度值具有 4 个字节,包括一个符号位、一个 8 位 二进制指数和一个 23 位尾数。由于尾数的高顺序位始终为 1,因此它不是以数字形式存储的。此表示形式为 float 类型提供了一个大约在 -3.4E+38 ~ 3.4E+38 之间的范围
取值范围
指数和尾数
由于指数是以无符号形式存储的,因此指数的偏差为其可能值的一半。对于 float 类型,偏差为 127;对于 double 类型,偏差为 1023。您可以通过将指数值减去偏差值来计算实际指数值。
存储为二进制分数的尾数大于或等于 1 且小于 2。对于 float 和 double 类型,最高有效位位置的尾数中有一个隐含的前导 1,这样,尾数实际上分别为 24 和 53 位长,即使最高有效位从未存储在内存中也是如此。
浮点包可以将二进制浮点数存储为非标准化数,而不使用刚刚介绍的存储方法。“非标准化数”是带有保留指数值的非零浮点数,其中尾数的最高有效位为 0。通过使用非标准化格式,浮点数的范围可以扩展,但会失去精度。您无法控制浮点数以标准化形式还是非标准化形式表示;浮点包决定了表示形式。浮点包从不使用非标准化形式,除非指数变为小于可以标准化形式表示的最小值。
字符数据类型
- 单引号用来表示字符常量。例如‘A’是一个字符,它与“A”是不同的,“A”表示含有一个字符的字符串。
- char 类型用来表示在Unicode编码表中的字符。
- Unicode编码被设计用来处理各种语言的所有文字,它占2个字节,可允许有65536个字符;ASCII码占1个字节,可允许有128个字符(最高位是0),是Unicode编码表中前128个字符。
- Java语言中还允许使用转义字符‘\’ 来将其后的字符转变为其它的含义,char c2 = '\n';//代表换行符
- char类型在内存中存储的是该字符的Unicode编码值,所以char类型可以当做int类型来处理
布尔数据类型
boolean类型有两个值,true和false
boolean 类型用来判断逻辑条件,一般用于程序流程控制
final 常量
使用final修饰的变量,只能被初始化一次,变成了常量。
final常量是有名称的
命名规则(规范)
所有变量、方法、类名:见名知意
变量、方法名:首字母小写和驼峰原则–run(), runRun(),ageageNewmonthSalary
常量:大写字母和下划线:MAX_VALUE
类名:首字母大写和驼峰原则:Man, GoodMan
运算符
Java语言支持如下运算符:
算术运算符:+,-,*,/,%,++,
赋值运算符=扩展赋值运算符:+=,-=,*=,/=
关系运算符:>,<,>=,<=,==,!=
逻辑运算符:&&,||,!
位运算符:&,|,^,~ ,>>,<<,>>>
条件运算符?:
算术运算符
二元运算符类型提升:
整数运算:
- 如果两个操作数有一个为Long, 则结果也为long
- 没有long时,结果为int。即使操作数全为shot,byte,结果也是int.
- 浮点运算:如果两个操作数有一个为double,则结果为double.
- 只有两个操作数都是float, 则结果才为float.
赋值运算符
基本赋值运算符:=
扩展赋值运算符:算术运算符和赋值运算符结合
关系运算符
关系运算符用来进行比较运算
关系运算的结果是布尔值:true/false
注意 :区分==和=
不等于是!=不是<>
逻辑运算符
逻辑运算符与布尔操作数一起使用,组成逻辑表达式
逻辑表达式的结果是布尔值
&和&&的区别
“&”:无论任何情况,“&”两边的表达式都会参与计算。
“&&”: 当“&&”的左边为false,则将不会计算其右边的表达式。即左false则false
“|”和“||”的区别与“&”和“&&”的区别类似。
位运算符
- 位运算符是对操作数以二进制比特位为单位进行操作和运算,操作数和结果都是整型数。
- 如果操作的对象是char、byte、short,位移动作发生前其值会自动晋升为int,运算结 果也为int。
条件运算符
语法格式:x?y:z 唯一的三目运算符
执行过程:其中x 为boolean 类型表达式,先计算x 的值,若为true,则整个三目运算的结果为表达式y 的值,否则整个运算结果为表达式z 的值。
经常用来代替简单的if-else判断!
运算符的优先级
基本数据类型之间的转换
- 在赋值运算或算术运算时,要求数据类型相同,否则要进行类型转换
- 转换方式:自动转换,强制转换
- 除boolean类型外,所有的基本数据类型因为各自的精度不同,赋值时都要考虑这个问题
- 除boolean类型外,所有的基本数据类型包括:整型,浮点型,字符型。