1.什么是标识符:标识符是程序员用于给变量、常量、类、函数(方法)、属性等命名的名字。
2.标识符命名规则
①标识符只能由数字、字母、下划线、“—”、美元符号“$”组成,不能含有其他符号。
②标识符不能以数字开头。
③java关键字和保留字不能作为标识符。
④标识符严格区分大小写。
⑤标识符理论上没有长度限制。
关键字指的是java官方已经使用过的特殊的拥有特殊含义的词。
例如说:public static void main class
关键字是编程语言事先定义的,有特殊意义的单词,关键字不能用作标识符
保留字指的是java官方虽然目前没有使用,但已经占有了,占有的目的是方便
未来使用,禁止用户使用。例如:goto
3.① 标识命名必须望文生义
例如: int age = 20;
String name = "张三";
反例: String aabb = "男";
望文生义,例如:Student表示学生,User 表示用户
② 遵循驼峰命名法
2.1 类名、接口名每个单词的首字母大写,之后其它字母全部小写;
例如:UserInfo
2.2变量名、方法名第一个单词的首字母小写,后面每个单词首字母大写;
例如:getName
3.3常量名全部大写,单词和单词之间使用“_”衔接,为了表示清楚含义,
不要怕单词长,例如 INT_MAX_VALUE 则表示 int 类型最大值
驼峰命名法:UserInterface
SE :SystemEnginer
变量
1.变量概念:其值可以改变的量。
变量本质是对内存空间的引用。将数据放到内存当中,给这块内存空间起一个名字,这就是变量。
这块空间有名字、有类型、有值,这也是变量必须具备的三要素
int age = 20;
2.变量的定义:
数据类型 变量名;
数据类型 变量名 = 值;
变量的赋值用=
1.定义一个变量而不赋值
int i;
i = 10;
2.变量的定义和赋值合并到一步完成
int i = 10;
3.一次可以定义多个相同类型变量
int j,k,l;
j = 10;
k = 20;
l = 30;
4.一次可以定义多个相同类型变量并且为最后一个变赋值
String a,b,c = "test";
3.变量分类:局部变量和成员变量(根据作用域划分,口诀:出了大括号就不认识了)
成员变量的默认值
3.1 成员(全局)变量
{} 大括号表示界限, { 左大括号表示开始,而 } 右大括号表示结束
3.2 局部变量
3.2.1 方法传入的值
3.2.2 方法内部定义的变量
3.2.3 块内部定义的变量
3.2.4 异常块内部定义的变量
4.在同一作用域不允许出现变量命名的冲突
5.不同作用域的就近原则
6.常量
数据类型分3种:
1.基本数据类型
1.1 整数类型
byte 字节 1个字节 8位 [-128,127]
short 短整型 2个字节 16位
int 整型 4个字节 32位
long 长整型 8个字节 64位
1.2 浮点类型
float 单精度 4个字节 32位
double 双精度 8个字节 64位
1.3 字符类型
char 字符型 2个字节 16位
1.4 布尔类型
boolean 布尔类型 1个字节 8位
2.引用(对象,类)类型
String 字符串类型
3.复合类型
数组类型
4.全局变量的默认值:
类型 默认值
4.1 byte 0
4.2 short 0
4.3 int 0
4.4 long 0L
4.5 float 0.0F
4.6 double 0.0D
4.7 char '' ascii: 0
4.8 boolean false
引用类型 null
数据类型转换
1.隐式(自动)转换
1.1 int 整数型 字面量没有超出 byte,short,char 的取值范围,
可以直接将其赋值给
byte,short,char 类型的变量
1.2 小转大
1.3 byte,short,char做计算时,先转成int再做计算
1.4 小与大做计算,结果一定是大类型
1.整数型字面量没有超出 byte,short,char 的取值范围,可以直接将其赋值给
byte,short,char 类型的变量
byte b = -1;// 1 是int 类型
byte b2 = 2;
byte b3 = 100;
byte b4 = 100;
short s = 9999;
char c = 1;
2.小转大也是隐式(自动)转换
int i = b;
s = b;
i = c;
//3. byte,short,char做计算时,先转成int再做计算
int k = b + b2;
int l = s + b;
//4.小与大做计算,结果一定是大类型
long l2 = 45;//8位
int i3 = 10;//4位
long l3 = l2 + i3;
任何类型与String做连接(+)运算时,结果一定是字符串
在代码中,如果直接写出整型数字,默认认为是int类型。
在代码中,如果直接写出带小数点的数字,默认认为是double类型。
2.显式(手动,强制)转换
大转小
long l2 = 45;
int i4 = (int)l2;
在值的前面写一对(),()的内部写上要转换的目标类型。
强制转换有可能损失精度
short s1 = 1; s1 = s1 + 1;有什么错?
char 类型变量能不能储存一个中文的汉字,为什么?
float f = 1.0 有什么错?