———-android培训、java培训、java学习型技术博客、期待与您交流!——-
Java语言基础组成
- 关键字
- 定义:被java语言赋予了特殊含义的单词
- 特点:关键字中所有字母都必须为小写
- 标识符
- 定义:程序中自定义的一些名称(尽量取有意义的名字)
- 命名规则:
- 有26个英文大小写,数字0-9,符号_,$组成
- 数字不可以开头,不可以使用关键字。(Java中严格区分大小写)
- 命名规范:
- 包名:xxxyyyzzz
- 类名接口名:XxxYyyZzz
- 变量名和函数名:xxxYyyZzz
- 常量名:XXX-YYY-ZZZ
- 注释
- 文档注释:/* /
- 单行注释://
- 多行注释:/* */
常量与变量
- 常量:在程序的运行过程中,其值是不可以发生改变的量。(常量可以直接被输出)
- 变量的分类:
- 基本类型
- 整型:byte,short,int(默认),long
- 浮点型:float,double(默认);
- 字符型:char
- 布尔型:boolean
- 引用类型
- 类:class
- 接口:interface
- 数组:[]
- 基本类型
- 常量的分类:
- 自定义常量
- 字面值常量
- 整数常量: 12,-23
- 实数常量:12.5,-65.43
- 字符常量: ‘a’,’A’,’0’
- 字符串常量: “hello”
- 布尔常量:true,false
- 空常量:null
运算符
- 定义:就是把常量和变量连接的符号,一般参与运算使用。
分类:
算术运算符
- +,-,*,/,%,++,–
- +:正号,加法,字符串连接符。System.out.println(“5+5=”+5+5);//5+5=55
- %:取得余数左边如果大于右边,结果是余数。左边如果小于右边,结果是左边。左边如果等于右边,结果是0。正负号跟左边一致。
- ++/–:++ 其实相当于把数据+1。单独使用:在数据的前后,结果一致。参与操作使用:如果在数据的后边,数据先操作,在++/–;如果在数据的前边,数据先++/–,在操作
赋值运算符
- =,+=,-=,*=,/=,%=
- int a = 10;把10赋值给int类型的变量a。a += 20;把左边和右边的和赋值给左边。
- 注意事项:a = a + 20;a += 20;结果是等价的,理解不是等价的。因为+=这种运算符,内含了强制类型转换功能。比如:short s = 2;s+=3;等价于s = (short)
关系运算符
- ==,!=,>,>=,<,<=
- 特点:关系运算符的结果都是boolean类型。
请千万注意:== 不要写成 =
逻辑运算符
- &,|,!,^,&&,||
- &:有false则false|:
有true则true
!:true变false,false变true
^:相同false,不同true - &&:有false则false
||:有true则true - &&和&的区别是:如果左边有false了,右边将不再执行。
||和|的区别是:如果左边有true了,右边将不再执行。 - 开发中常用:
&&,||
- &:有false则false|:
- &,|,!,^,&&,||
位运算符
- ^ : 一个数据对同一个数据^两次,结果还是数据本身。
举例:a ^ b ^ b = a
- ^ : 一个数据对同一个数据^两次,结果还是数据本身。
- 三元运算符
- 格式:条件表达式?表达式1:表达式2
- 执行流程:
根据条件表达式返回的是true还是false,决定结果是什么。
如果是true,就把表达式1作为结果。
如果是false,就把表达式2作为结果。 - (1)请用最有效率的代码写出2乘以8
2<<3
(2)请交换两个变量。
int a = 10;
int b = 20;
开发:临时变量
int temp = a;
a = b;
b = temp;
面试:位^运算符
a = a ^ b;
b = a ^ b;
a = a ^ b;
语句
判断语句(if,else)
A:第一种格式(在判断条件为一种情况下使用。)
- if(条件表达式)
{
语句体;
}
执行流程:
如果条件表达式为true,就执行语句体;
否则,什么都不执行。
- if(条件表达式)
B:第二种格式(在判断条件为两种情况下使用)
- if(条件表达式)
{
语句体1;
}
else
{
语句体2;
}
执行流程:
如果条件表达式为true,就执行语句体1;
否则,就执行语句体2;
- if(条件表达式)
- C:第三种格式(在判断条件为多种情况下使用)
- if(条件表达式1)
{
语句体1;
}
else if(条件表达式2)
{
语句体2;
}
…
else
{
语句体n;
}
执行流程:
如果条件表达式1为true,就执行语句体1;
如果条件表达式2为true,就执行语句体2;
…
否则,就执行语句体n;
- if(条件表达式1)
选择语句(switch,case,break,default)
- 用于做选择使用的。一般用于几个常量的判断。
switch会把几个常量值直接加载到内存,在判断的时候,效率要比if高。
所以,针对几个常量的判断,一般选择switch语句。 switch语句的格式:
switch(表达式)
{
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
case 值3:
语句体3;
break;
…
default:
语句体n;
break;
}针对格式的解释
switch:表示这里使用的是switch语句,后面跟的是选项。
表达式:byte,short,int,char
JDK5以后可以是枚举(以后讲)
JDK7以后可以是字符串(后面讲)
case:表示这里就是选项的值,它后面的值将来和表达式的值进行匹配。
case后面的值是不能够重复的。
break:
switch语句执行到这里,就结束了。
default:
当所有的case和表达式都不匹配的时候,就走default的内容。
它相当于if语句的else。一般不建议省略。- 执行流程
进入switch语句后,就会根据表达式的值去找对应的case值。
如果最终没有找到,那么,就执行default的内容。 - 注意事项:
a:default整体可以省略吗?
可以,但是不建议。
b:default的位置可以放到前面吗?
可以,但是不建议。
c:break可以省略吗?
可以,但是不建议。
default在最后,break是可以省略的。
case后面的break可以省略,但是结果可能有问题。
d:switch语句什么时候结束呢?
就是遇到break或者执行到程序的末尾。 - Scanner的使用
(1)Scanner是JDK5以后设计的用来接收键盘录入数据使用的。
(2)目前我们要通过键盘录入int类型数据,必须按照如下步骤:
A:导包
import java.util.Scanner;
B:创建对象,封装键盘录入
Scanner sc = new Scanner(System.in);
C:调用方法,获取数据
int number = sc.nextInt();
- 用于做选择使用的。一般用于几个常量的判断。
循环(do,while,for)
- 如果我们发现有很多重复的内容的时候,就该考虑使用循环改进代码。
- 循环的组成
A:循环体,就是要做的事情。
B:初始化条件。一般定义的是一个初始变量
C:判断条件。用于控制循环的结束。
D:控制条件。用于控制变量的变化。一般都是一个++/–操作。 循环的分类:
- A:for
for(初始化条件;判断条件;控制条件)
{
循环体;
}
执行流程:
a:先执行初始化条件;
b:执行判断条件
c:根据判断条件的返回值:
true:执行循环体。
false:就结束循环。
d:最后执行控制条件。返回到b继续。 - B:while
初始化条件;
while(判断条件)
{
循环体;
控制条件;
}
执行流程:
a:先执行初始化条件;
b:执行判断条件
c:根据判断条件的返回值:
true:执行循环体。
false:就结束循环。
d:最后执行控制条件。返回到b继续。 - C:do…while(了解)
初始化条件;
do{
循环体;
控制条件;
}while(判断条件);
执行流程:
a:先执行初始化条件;
b:执行循环体和控制条件;
c:执行判断条件
d:根据返回值
true:返回b。
false:就结束循环。
- A:for
注意:
a:一般使用for循环或者while循环。而且这两种循环是可以等价转换的。
b:do…while循环至少执行一次循环体。- break和continue
- 特点:
A:它们都必须在循环中(break还可以在switch中。)。
一般在循环的判断中。
B:如果单独使用break和continue,后面是不能有语句的。 - )区别:
A:break 结束当前循环。
B:continue 结束本次循环,进入下一次循环。
- 特点:
应用场景(理解)
- 变量:发现有一个数据是变化的时候,就要用变量。
- if语句:如果是一个范围的判断,boolean类型的表达式的判断,几个数据的判断。
- switch语句:几个数据的判断。一般这种情况,有限选择switch。
- for语句:如果次数或者范围特别明确。(水仙花)
- while语句:如果次数或者范围不明确。(珠穆朗玛峰)