2.1 关键字和保留字 (知道)
定义:被Java语言富裕了特殊含义,用做专门用途的字符串(单词)
特点:关键字中所有字母都为小写
官方地址:https://docs.oracle.com/javase/tutorial/java/nutsandbolts/_keywords.html
用于定义数据类型的关键字:
class/ interface/ enum/ byte/ short/ int/ long/ float/ double/ char/ boolean/void
用于定义流程控制的关键字:
if/ else/ switch/ case/ default/ while/ do/ for/ break/ continue/ return
用于定义访问权限修饰符的关键字
Private/ protected/ public
Java保留字:现有Java版本尚未使用,但以后版本可能会作为关键字使用,自己命名标志符时要避免使用这些保留字。goto/ const
2.2标志符
(1)标识符:Java对各种变量、方法和类等要素命名时使用的字符序列称为标志符
技巧:凡是自己可以起名字的地方都叫标志符
(2)规则:(记住)–(若不遵守,编译不通过,需严格遵守)
①由26个英文字母大小写,0-9,_或$组成
②数字不可以开头
③不可以使用关键字和保留字,但能包含关键字和保留字
④Java中严格区分大小写,长度无限制
⑤标志符不能包含空格
练习:miles, test, a++, --a, 4#r, $4, #44, apps, class, public, int, x, y, redius
蓝色是关键字
(3)规范:(若不遵守,编译通过,建议遵守)
包名:多个单词组成时所有字母都小写:xxxyyyzzz
类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz
变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写:xxxYyyZzz
常量名:所有字母都大写。多单词时每个单词用下划线连接:XXX_YYY_ZZZ
注:1. 命名时:‘见名知意’
2. java采用unicode字符集,因此标识符也可以使用汉字声明,但不建议用
2.3 变量(重点)
1.变量的概念
内存中的一个存储区域
该区域的数据可以在同一类型范围内不断变化
变量是程序中最基本的存储单元。包含变量类型、变量名和存储的值
2.变量的作用
用于内存中保存数据
3.使用变量注意:
Java中每个变量必须先声明,后使用
变量的作用域:其定义所在的一对 { } 内
变量只有在其作用域内才有效
同一个作用域内,不能定义重名的变量
4.变量
声明变量:
语法:<数据类型><变量名称>
例如:int var
变量的赋值
语法:<变量名称>=<值>
例如:var = 10
声明和赋值变量
语法:<数据类型><变量名>=<初始化值>
例如:int var = 10
5.变量的分类—按数据类型
对于每一种数据都定义了明确的具体数据类型(强类型语言),在内存中分配了不同大小的内存空间
6.变量的分类—按声明的位置的不同
在方法体外,类体内声明的变量称为成员变量
在方法体内部声明的变量称为局部变量
注意:二者在初始化值方面的异同:
同:都有生命周期
异:局部变量除形参外,需显式初始化。
7. 整数类型:byte、short、int、long (byte记住,其他可不记)
Java各整数类型有固定的表数范围和字段长度,不受具体OS的影响,以保证java程序的可移植性。
Java的整形常量默认为int形,声明long型常量需后面加’l’或‘L’
Java程序中变量通常声明为int型,除非不足以表示较大的数,才使用long
例子:
class VariableTest1{
public static void main(String[] args){
//1.整形:byte(1字节=8bit) \ short(2字节) \ int(4字节) \ long(8字节)
//①byte范围:-128~127
byte b1 = 12;
byte b2 = -128;
//byte b2 = 128; 编译不通过
System.out.println(b1);
System.out.println(b2);
//②声明long型变量,必须以’1’或‘L’结尾
//③ 通常定义整形变量时,使用int型
short s1 = 128;
int i1 = 1234;
long l1 = 341426783494L;
System.out.println(l1);
}
}
8.浮点类型:float \ double
与整数类型类似,Java浮点类型也有固定的表数范围和字段长度,不受具体操作系统影响
浮点型常量有两种表示形式:
十进制数形式:如:5.12 512.0f .512(必须有小数点) 科学计数法形式:如:5.12e2 512E2 100E-2
Float:单精度,尾数可以精确到7位有效数字。很多情况下,精度很难满足需求。
Double:双精度,精度是float的两倍。通常采用此类型
Java的浮点型常量默认为double型,声明float型常量,须后加‘f’ 或 ‘F’
(类型所占字节要知道)
例子:
class VariableTest1{
public static void main(String[] args){
//2. 浮点型:float \ double
//①float表示数值的范围比long还大
double d1=123.3;
System.out.println(d1 + 1);
//②定义float类型变量时,变量要以"f"或"F"结尾
float f1 = 12.3F;
System.out.println(f1);
//通常,定义浮点型变量时,使用double型
}
}
9.字符串
10. 了解:ASCII、Unicode 、UTF-8
码
10.布尔类型:boolean
举个例子:
强调:用 \
2.4 数据类型之间的运算规则
1.自动类型提升:
当容量小的数据类型的变量与容量大的数据类型的变量做运算时,结果自动提升为容量大的数据类型。(表示数的范围大小)
举例: byte + byte ,要用int 做运算
2.强制类型转换
自动类型转换的逆过程,将容量大的数据类型转换为容量小的数据类型。
使用时要加上强制转换符:(),
但可能造成精度降低或溢出,格外要注意。
注意:boolean类型不可以转换为其它的数据类型。
class VariableTest3 {
public static void main(String[] args){
double d1 = 12.9;
int i1 = (int)d1; //截断操作
System.out.println(i1);
//没有精度损失
long l1 = 123;
short s2 = (short)l1;
//精度损失举例2
int i2 = 128;
byte b = (byte)i2;
System.out.println(b);//-128
}
}
2种情况
1.编码情况
编译失败:过大的整数.若不加L,就是4字节
2.编码情况2:
整形常量,默认类型为int型
浮点型常量,默认类型为double型
class VariableTest4{
public static void main(String[] args) {
//1.编码情况
long l = 1234;
System.out.println(l); //通过:1234
//编译失败:过大的整数.若不加L,就是4字节
//long l1 = 123456789987654;
long l1 = 123456789987654L;
System.out.println(l1);
//************************************
//编码情况2:
//整形常量,默认类型为int型
//浮点型常量,默认类型为double型
byte b = 12;
//byte b1 = b + 1;//编译失败
//float f1 = b + 12.3;//编译失败
}
}
3.字符串类型:String
- 引用数据类型 翻译为:字符串
- 声明String 类型变量时,使用一对""
- String 可以和8种基本数据类型变量做运算,且运算只能是连接运算: +
4.运算结果仍然是String类型
/*
1. 引用数据类型 翻译为:字符串
2. 声明String 类型变量时,使用一对""
3. String 可以和8种基本数据类型变量做运算,且运算只能是连接运算: +
4.运算结果仍然是String类型
*/
class StringTest {
public static void main(String[] args) {
String s1 = "Hello World!";
System.out.println(s1);
String s2 = "a";
String s3 = "";
//char c = ''; //编译不通过,需要放字符串
//**********************************
int number = 1001;
String numberStr = "学号:";
String info = numberStr + number; //+ :连接运算
boolean b1 = true;
String info1 = info + b1; //+ :连接运算
System.out.println(info);
//**********************************
//练习1:
char c ='a'; //97
int num = 10;
String str = "Hello";
System.out.println(c + num + str ); // 107Hello
System.out.println(c + str + num); // aHello10
System.out.println(str + num + c); // Hello10a
System.out.println((c + num) + str ); //107Hello
System.out.println(c + (str + num)); // aHello10
//练习2
//* *
System.out.println("* *"); //对
System.out.println('*'+'\t'+'*'); //错
System.out.println('*'+"\t"+'*'); //对
System.out.println('*'+'\t'+"*"); //错
System.out.println('*'+('\t'+"*"));//对
}
}
练习: