1.关键字(keyword)
定义:被Java语言赋予了特殊含义,用做专门用途的字符串(或单词)。
特点:关键字都是小写字母。
2.标识符
Java中变量、方法、类等要素命名时使用的字符序列,称为标识符。
技巧:凡是自己可以起名字的地方都叫标识符。
标识符的命名规则(必须遵守的硬性规定
):
> 由26个英文字母大小写,0-9 ,_或 $ 组成 。
> 数字不可以开头。
> 不可以使用关键字和保留字,但能包含关键字和保留字。
> Java中严格区分大小写,长度无限制。
> 标识符不能包含空格。
标识符的命名规范(建议遵守的软性要求
,否则工作时容易被鄙视):
> 包名:多单词组成时所有字母都小写:xxxyyyzzz。
例如:java.lang、com.atguigu.bean
> 类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz
例如:HelloWorld,String,System等
> 变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写:xxxYyyZzz
例如:age,name,bookName,main,binarySearch,getName
> 常量名:所有字母都大写。多单词时每个单词用下划线连接:XXX_YYY_ZZZ
例如:MAX_VALUE,PI,DEFAULT_CAPACITY
3.变量
变量是程序中不可或缺的组成单位,最基本的存储单元。
变量的概念:
-
内存中的一个存储区域,该区域的数据可以在同一类型范围内不断变化
-
变量的构成包含三个要素:
数据类型
、变量名
、存储的值
-
Java中变量声明的格式:
数据类型 变量名 = 变量值(变量值是最重要的)
-
变量的作用:用于在内存中保存数据。
-
使用变量注意:
Java中每个变量必须先声明,后使用。
使用变量名来访问这块区域的数据。
变量的作用域:其定义所在的一对{ }内。
变量只有在其作用域
内才有效。出了作用域,变量不可以再被调用。
同一个作用域内,不能定义重名的变量。
Java中变量的数据类型分为两大类(面试考点):
-
基本数据类型:包括
整数类型
、浮点数类型
、字符类型
、布尔类型
。 - 引用数据类型:包括
数组
、类
、接口
、枚举
、注解
、记录
。变量的声明
格式:数据类型 变量名
变量的赋值
给变量赋值,就是把“值”存到该变量代表的内存空间中。同时,给变量赋的值类型必须与变量声明的类型一致或兼容。
变量赋值的语法格式:
变量名 = 值;
4.基本数据类型介绍
-
Java各整数类型有固定的表数范围和字段长度,不受具体操作系统的影响,以保证Java程序的可移植性。
-
定义long类型的变量,赋值时需要以"
l
"或"L
"作为后缀。 -
Java程序中变量通常声明为int型,除非不足以表示较大的数,才使用long。
-
Java的整型
常量默认为 int 型
。 -
float:
单精度
,尾数可以精确到7位有效数字。很多情况下,精度很难满足需求。 -
double:
双精度
,精度是float的两倍。通常采用此类型。 -
定义float类型的变量,赋值时需要以"
f
"或"F
"作为后缀。 -
Java 的浮点型
常量默认为double型
。
关于浮点型精度的说明:
并不是所有的小数都能可以精确的用二进制浮点数表示。二进制浮点数不能精确的表示0.1、0.01、0.001这样10的负次幂。
浮点类型float、double的数据不适合在不容许舍入误差
的金融计算领域。如果需要精确
数字计算或保留指定位数的精度,需要使用BigDecimal类
。
-
char 型数据用来表示通常意义上“
字符
”(占2字节) -
Java中的所有字符都使用Unicode编码,故一个字符可以存储一个字母,一个汉字,或其他书面语的一个字符。
-
字符型变量的三种表现形式:
形式1:使用单引号(' ')括起来的单个字符
。
例如:char c1 = 'a'; char c2 = '中'; char c3 = '9';
形式2:直接使用 Unicode值
来表示字符型常量:‘\uXXXX
’。其中,XXXX代表一个十六进制整数。
例如:\u0023 表示 '#'。
形式3:Java中还允许使用转义字符‘\’
来将其后的字符转变为特殊字符型常量。
例如:char c3 = '\n'; // '\n'表示换行符
-
char类型是可以进行运算的。因为它都对应有Unicode码,可以看做是一个数值。
-
boolean 类型用来判断逻辑条件,一般用于流程控制语句中:
-
if条件控制语句;
-
while循环控制语句;
-
for循环控制语句;
-
do-while循环控制语句;
-
-
boolean类型数据只有两个值:true、false,无其它。
-
不可以使用0或非 0 的整数替代false和true,这点和C语言不同。
-
拓展:Java虚拟机中没有任何供boolean值专用的字节码指令,Java语言表达所操作的boolean值,在编译之后都使用java虚拟机中的int数据类型来代替:true用1表示,false用0表示。——《java虚拟机规范 8版》
-
5.基本数据类型变量间运算规则(不包含boolean类型)
转换的方式有两种:自动类型提升
和强制类型转换
。
自动类型提升
规则:将取值范围小(或容量小)的类型自动提升为取值范围大(或容量大)的类型 。
当存储范围小的数据类型与存储范围大的数据类型变量一起混合运算时,会按照其中最大的类型运算。
当byte,short,char数据类型的变量进行算术运算时,按照int类型处理。
强制类型转换
规则:将取值范围大(或容量大)的类型强制转换成取值范围小(或容量小)的类型。
自动类型提升是Java自动执行的,而强制类型转换是自动类型提升的逆运算,需要我们自己手动执行。
转换格式:数据类型1 变量名 = (数据类型1)被强转数据值; //()中的数据类型必须<=变量值的数据类型
当把存储范围大的值(常量值、变量的值、表达式计算的结果值)强制转换为存储范围小的变量时,可能会损失精度
或溢出
。
String不是基本数据类型,属于引用数据类型
任意八种基本数据类型的数据与String类型只能进行连接“+”运算,且结果一定也是String类型
String类型不能通过强制类型()转换,转为其他的类型