Java第二章:变量与运算符
一、关键字和保留字
1.关键字
定义:被Java语言赋予了特殊含义,用作专门用途的字符串(单词)
特点:关键字中所有字母都为小写
tips:本文不予展示关键字,可到官方网址查询
地址:https://docs.oracle.com/javase/tutorial/java/nutsandbolts/_keywords.html
2.保留字
现有Java版本尚未使用,但以后版本可能会作为关键字使用。自己命名时要避免使用这些保留字:goto、const。
二、标识符与命名规范
1.标识符
标识符:Java对各种变量、方法、和类等要素命名时使用的字符序列。
技巧:凡是可以自己起名字的地方都叫标识符。
命名规则:
- 由26个英文字母大小写,0-9,_或者$组成
- 数字不可以开头
- 不可以使用关键字和保留字,但能包含关键字和保留字
- Java中严格区分大小写,长度无限制
- 标识符不能包含空格
2.命名规范
包名:多单词组成时所有字母都小写:xxxyyyzzz(简称包小姐)
类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz
变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写:xxxYyyZzz
常量名:所有字母都大写。多单词时每个单词用下划线连接:XXX_YYY_ZZZ。
关键点:为了提高阅读性,起名要“见名知意”;另外,汉字虽然也能用,但是不要去用,人不可以,至少不能。
三、变量
1.变量的概念
内存中的一个存储区域,该区域中的数据可以再同一类型范围内不断变化;
变量是程序中最基本的存储单元。包含变量类型、变量名和存储的值。
2.变量的作用
用于在内存中保存数据
3.使用变量注意
1. Java中每个变量必须先声明,后使用
2. 使用变量名来访问这块区域的数据
3. 变量的作用域:其定义所在的一对{ }内
4. 变量只有在其作用域内才有效
5. 同一个作用域内,不能定义重名的变量
4.变量的声明、赋值
声明:<数据类型> <变量名称>
例如:int var;
赋值:<变量名称> = <值>;
例如:var = 10;
二者可以统一,即在声明的同时赋值:
<数据类型> <变量名> = <初始化值>
例如:int var = 10;
5.变量的分类
5.1按数据类型分类
整型:
- Java的整型常量默认是int,生命long型常量要在数字后加‘l’或者‘L’;
- int型通常来说已经够用了,特别大的数用long来表示
浮点型:
- 浮点型常量默认是double型,声明float型常量,要在数字后加‘f’或者‘F’
- float型为单精度,位数可以精确到7位有效数字,很难满足精度需求,通常用double类型
5.2按声明的位置不同
在方法体外,类体内声明的变量称为成员变量
在方法体内部声明的变量称为局部变量
二者在初始化值方面的异同:
同:都有生命周期
异:局部变量出形参外,需要显式初始化。
6.String类型
String类型变量的使用
- String属于引用数据类型,翻译为:字符串
- 声明String类型变量时,使用一对“ ”
- String可以喝8种基本数据类型变量做运算,且运算只能是连接运算: +
- 运算的结果仍然是String类型
class StringTest{
public static void main(String[] args){
//*********************************
//练习1
String s1 = "Hello World!";
System.out.println(s1);//类似于输出一个变量的值
/*双引号内可以只放一个字符,也可以不放,不放的话看做空字符*/
String s2 = "a";
String s3 = "";
//类似的 char c = ''; 则编译不通过
//*********************************
//练习2
int number = 1001;
String numberStr = "学号:";
String info = numberStr + number;// +:连接运算
boolean b1 = true;
String info1 = info + b1;// +:连接运算
System.out.println(info);//学号:1001
System.out.println(info1);//学号:1001true
//*********************************
//练习3
char c = 'a';//对应的ASCII码为:97
int num = 10;
String str = "hello";
System.out.println(c + num + str);//107hello
System.out.println(c + str + num);//ahello10
System.out.println(c + (num + str));//a10hello
System.out.println((c + num) + str);//107hello
System.out.println(str + num + c);//hello
//*********************************
//练习3
System.out.println("* *");//两个*中间隔了一个tab
System.out.println('*' + '\t' + '*');//93
System.out.println('*' + "\t" + '*');//* *,和第一个效果相同
System.out.println('*' + '\t' + "*");//51*
System.out.println('*' + ('\t' + "*"));//* *,和第一个效果相同
//发现:\t当做字符串输出时,认定为tab
//否则的话视为一个ASCII码对应的一个转义字符
}
}
/*
总结:只有当String类型的变量和8种基本类型数据做运算时,“+”才能看做连接符号,
其他情况下都算作加号,char类型也是如此
*/
老师在本章练习中提出一个习题
String str = 3.5f + “”;
System.out.println(str);
输出为"3.5",其实,输出的是3.5,这里的双引号表示这个3.5是字符串
Tips:char类型的几个小陷阱:
char c1 = 'a';
char c2 = '97'
//两者等价
char c3 = 5;
//ASCII码为5的字符
char c4 = '5';
//字符5