一.关键字&标识符

1.关键字:被java语言赋予特殊含义的字符串(或单词),

2.保留字:被java语言占用,但是还没有具体含义。关键字保留字都小写

关键字

3.标识符:凡是可以自己命名的地方,都是标识符。

定义合法标识符规则:

>由26个英文字母大小写,0-9 ,_或 $ 组成

>数字不可以开头。

>不可以使用关键字和保留字,但能包含关键字和保留字。

>Java中严格区分大小写,长度无限制。

>标识符不能包含空格。

4.java命名规范

包名:多单词组成时所有字母都小写:xxxyyyzzz

类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz

变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写:xxxYyyZzz(驼峰)

常量名:所有字母都大写。多单词时每个单词用下划线连接:XXX_YYY_ZZZ

在起名字时,为了提高阅读性,要尽量有意义,“见名知意”。

二.变量

1.变量的声明格式:数据类型 变量名 = 初始化值;  必须先声明后使用,都有其作用域。

2.变量类型的分类

变量分类1

变量分类2

3.每种数据类型的使用

1).整型 : byte(1字节) short(2字节) int(4字节) long(8字节)   一般使用int型

byte b1 = 127;

b1 = 128;//编译不通过,超出了byte的取值范围

定义一个long型的变量,以"l"或者"L"结尾    long l = 1243124L;

2)浮点型:float(4字节) double(8字节),表示带小数的数值

比较常用的是double      double d1 = 123.3;

定义float型变量时,需要末尾添加"f"或者"F"    float f1 = 123.2f;

3)boolean型:取值只有两个:true 或 false。不能取值为null

4)字符型:char(2字节)

一个char型变量,表示一个字符

char c1 = 'a';
char c2 = 'ab';//编译不通过
char c3 = '1';
char c4 = '中';
char c5 = '\n';     c5 = '\t';   //转义字符
System.out.println("abcd" + c5 + "def");
char c6 = '\u1234';   //用的不多
System.out.println("c6:" + c6);

4.变量间的运算

①自动类型提升:容量小(表数范围)的变量与容量大的变量间做运算,结果的数据类型与容量大的变量的类型一致。

byte、short、char ---> int --->long---->float----> double

当byte\short\char三者之间的变量做运算的话,结果都为int型。

②强制类型转换:是自动类型提升的逆过程:将容量大的数据类型的变量转换为容量小的数据类型的变量

使用强制类型转换符:()

double d1 = 123.3;
int i = (int)d1;//123
byte b = (byte)i;

注意:强转时,可能会导致精度损失。

三.运算符

1. 算术运算符:+(正)  -(负)     + - * / % (前)++ (后)++ (前)-- (后)-- +(字符串连接运算)

1) int i = 12;
int j = i / 5;
System.out.println(j);//2

2)取模运算与被模数符号一样。

int i = 12;
int j = 3;
if(i % j == 0){....}

3)(前)++ :先+1,后运算

(后)++:先运算,后+1

2.赋值运算符: = += -= *= /= %=

运算结果不改变原有变量的数据类型:

int i = 12;
i += 10;//i = i + 10;
short s = 10;
s += 2;//s = (short)(s + 2);
int m = 12;
m *= 0.1;//编译能通过。
m = m * 0.1;//编译不通过

3.比较运算符(关系运算符): == > < >= <= intanceof

>比较运算符的结果都为boolean类型!

>通常使用在条件判断和循环语句中

4.逻辑运算符 且: & && 或: | ||   ! ^

>运算符处理的都是boolean类型的变量

>& 与 && 区别:当符号左边是false时,& 继续执行右边的运算;&& 不再执行右边的运算

>|  与 || 区别:当符号左边是true时,| 继续执行右边的运算;|| 不再执行右边的运算

>开发时,常用&&  和 ||

5.位运算符: <<     >>  >>>  &    |    ^  ~

>处理的是数值型的变量

>在一定范围内,左移一位,相当于这个数值 * 2。

int i = 6;
int j = ~i; //-7

6.三元运算符:(条件表达式)? 表达式1 : 表达式2

注:1.表达式1和表达式2的类型要一致

2.表达式1和表达式2的类型,决定了运算符的类型

3.凡是使用三元运算符的操作都可以转换为if-else结构。反之不成立.

如果二者都可以使用的情况下,建议使用三元运算符,效率高。

四.流程控制

1.分支结构

if(){}else{}   if(){}else if(){}...else{}

1).如果多个条件表达式是"互斥"关系,那么执行结构谁上谁下都可以。

如果多个条件表达式是"包含"关系,要求将范围小的写在范围大的上面

2)如果条件判断的执行语句只有一行的话,可以省略一对{}.建议不省略

switch(变量){

case 值1:
语句1;
break;
...
default:
语句;
}

1)default:可选的,同时位置是灵活的。

2)switch中的变量只能是如下的类型之一:byte short int char 枚举类 String(JDK1.7新加入的)

3)使用switch-case的结构都能转换为if-else结构。反之,不成立

4)如果switch-case和if-else结构都可以使用,建议使用switch-case,因为效率高

5)case中只能写取值(常量),不能表示范围

2.循环结构

1. 循环结构的4个要素:

①初始化条件

②循环条件(是boolean类型的结果)

③循环体

④迭代条件

2.三种循环结构:

for(①;②;④){

}

while(②){

③;

④;

}

do{

③;

④;

}while(②);

注:三种循环间都可以相互转换

区别:①for循环的初始化条件执行完循环以后就不可再在循环外调用。而while循环的初始化条件在循环结束以后,初始化变量声明所在的{}内还可以被调用

②do-while至少会被执行一次。

3.两个特殊的循环结构:

while(true) 或者 for(;;)

第一种情况:当某次执行时,②循环条件返回false,进而结束当前循环

第二种情况:在循环结构内,执行到break语句,调出当前循环。

明确:若循环结构没有出现上述两种情况之一,那这个循环就是死循环!

死循环是我们写程序要避免的!

五.break和continue关键字的使用

break:①可以使用在switch-case或者循环结构中

②:如果在循环结构中使用:结束当前循环结构(默认结束的是离break最近的循环结构)

continue:①只能使用在循环结构中

②:如果在循环结构中使用:结束当次循环(默认结束的是离break最近的循环结构)

说明:在break和continue关键字后面不能有任何的操作语句。否则编译不通过。