字符、数据类型、运算符,是构成语言基石,各个语言的不同首先就体现在这些地方。
1、标识符identifier
标识符是一串字符,用来指代某个东西,它有可能是一个变量、一个对象又或者是一个方法等等,因为可指代的东西特别多,所以标识符也是要有个命名规范。
(1)标识符由字母、数字、_和$组成,并且不能以数字开头;
(2)标识符是区分大小写的。
#建议的命名规范#
(1)类名:每个单词首字母要大写,如UserInfo;
(2)方法名和变量名:首个单词的首字母小写,其余单词首字母大写;
(3)常量:全部大写并且单词之间用_隔开;
(4)包名:所有字母均小写;
#保留字与关键字#
保留字(reserved words)是已定义过的字符,它们可能具有某些特定含义用途(关键字keyword),在语法中会发生作用,而另一些则不在语法中发生作用但仍具有意义而不能被用户定义使用。
2、常量、枚举常量与变量
常量
一旦初始化后,程序执行期间值不变并且不能修改,只能访问。
#常量的声明#
声明常量要使用关键字final
(1)final float PI=3.14F;
(2)final PI,PRICE,WEIGHT;
final PI=3.14F,PRICE=13.86F,WEIGHT=86F;
枚举常量
声明枚举常量使用关键字enum
enum Season{
男,女
}
变量
程序执行期间值可改变
String userName="你好"
Int userAge,userSex;
userAge=18,userSex="男";
#变量作用域#
根据变量定义的位置不同,变量的作用范围也不同,包括类变量、局部变量、方法参数变量和异常处理参数变量
3、基本数据类型
Java中的字符属于Unicode编码,并且Unicode字符集中前128个字符与ASCII码字符集兼容。
基本数据类型 | 占用空间 | |
整型 | byte 字节型 | 1个字节 |
short 短整型 | 2个字节 | |
int 整型 | 4个字节 | |
long 长整型 | 8个字节 | |
浮点型 | float 单精度 | 4个字节 |
double 双精度 | 8个字节 | |
boolean 布尔型 | 1个字节 | |
char 字符型 | 2个字节 |
转义字符 | 含义 |
\n | 换行 |
\t | Tab键 |
\b | 退格 |
\r | 回车 |
\f | 走纸换页 |
\\ | 反斜杠字符 |
\' | 单引号 |
\" | 双引号 |
\d | 八进制 |
\xd | 十六进制 |
\ud | Unicode字符 |
#数据类型转换#
自动类型转换:低优先级类型转换为高优先级类型。
byte> | short> | int> | long> | float> | double |
char> |
public class T8{
public static void main(String[] args){
int intVar=100;
float floatVar=128.5F;
int value=intVar+(int)floatVar
System.out.println("value="+value)
}
}
这里输出的value值为228,而非229,即上述代码将浮点数floatVar强制截断为整型数128。
4、运算符
类型 | 运算符 |
算数运算符 | + - * / %(取余) |
赋值运算符 | = |
关系运算符 | > < >= <= == != |
逻辑运算符 | && || ! |
位运算符 | & 按位与 |
| 按位或 | |
^ 按位异或 | |
~ 按位取反 | |
<< 左移位 | |
>> 右移位 | |
>>> 无符号移位 | |
自增减运算符 | ++ -- |
三元运算符 | 逻辑表达式?表达式1:表达式2 |
#位运算符#
该运算符将运算的数据先转为二进制,然后再进行运算。
>>:左边空位要根据原数的符号补位,负数补1,正数补0;
>>>:左边空位直接补0
#自增减运算符#
若运算符在前,则变量首先增减1然后运算,若放在后面,则先以原值参与运算,然后增减1。
5、数组
数组是用于存储相同类型的数据集合,一旦制定了数组类型,则只能存储该类型的数据。数组包括数值数组、字符数组、指针数组、结构数组等。
数组的特点:
(1)从0开始,并且长度一旦确定就不能改变;
(2)可创建数组的数组;
(3)数组可作为对象处理,数组对象含有成员变量length,用来表示数组长度。
(4)数组赋值时只能一个一个赋值,不能对整体赋值
静态赋值 static int a[5]={1,2,3,4,5}
动态赋值 static int a[]={1,2,3,4,5}
#数组声明中[]的位置#
在数组声明中,[]的位置有三个:
int[] a,b; 该语句同时声明了两个数组变量,都是int类型;
int []a,b; 该语句同时声明了一个int类型的数组a[]和一个int类型变量b;
int a,b[]; 该语句同时声明了一个int类型变量a和一个int类型数组b[];
#数组的操作#
属性:.length
方法:
(1)数组填充 Arrays.fill(数组名,值) 或 Arrays.fill(数组名,开始下标,结束下标,值)
(2)数组比较 Arrays.equals(数组1,数组2)
(3)数组排序 Arrays.sort(数组) 或 Arrays.sort(数组,开始下标,结束下标)
(4)搜索指定元素 Arrays.binarySearch(数组,指定元素) 或 Arrays.binarySearch(数组,开始下标,结束下标,指定元素)
(5)转换数组到字符串 Arrays.toString(数组类型,数组名)
(6)数组复制 System.arraycopy(数组a,开始下标,复制到数组b,开始下标,复制长度)
#创建多维数组#
int[][] a;
int[][] a={{3,4},{1,2,3}}; 该语句创建int类型的2列数据式数组a,其中第一列包含数据2个,a[0][2]是不存在的,第二列包含数据3个;
int[][] b=new int[3][4]; 该语句创建int类型的3×4的矩阵式数组b;
a是多维数组,a.length表示a的列数,a[1].length表示a第二列的元素个数。