一丶java的语言基础
1).变量
2).数据类型
3).运算符
4).类型转换
5).类型提升
6).控制台录入
7).关键字与标识符
1.变量的概念:计算机内存中的一块存储空间,是存储数据的基本单元.
变量的常见赋值格式: 数据类型 变量名 = 值;
多个同类型变量赋值格式: 数据类型 变量1,变量2,变量3,= 值3,值4,值5
2.
Java数据类型分为两大类:基本数据类型和引用数据类型;
其中基本数据类型分:整数类型,浮点类型,布尔类型,字符类型;引用数据类型分字符串,数组和对象.
整数类型有byte (取值范围-128~127,1个字节),short(2个字节),int(4个字节),long(8个字节)
浮点类型:double(8个字节),float(4个字节)
布尔类型:ture(1个字节),flase(1个字节);
字符类型:char (2个字节)("男")
3.
运算符:算数运算符,赋值运算符,关系运算符,逻辑运算符,三元运算符
●逻辑运算符:两个boolean类型的操作数或表达式进行逻辑比较
操作符 | 语义 | 描述 |
&& | 与(并且) | 两个操作数,同时为真,结果为真 |
II | 或(或者) | 两个操作数,有一个为真,结果为真 |
! | 非(取反) | 意为“不是”,真即是假,假即是真 |
●三元运算符:将判断后的结果赋值给变量
操作符 | 语义 | 描述 |
?: | 布尔表达式?结果1:结果2 | 当表达式结果为真,获得结果1 当表达式结果为假,获得结果2 |
4:
类型转换:自动转换和强制转换
自动转换:两种类型相互兼容&&目标类型大于源类型
强制转换:两种类型相互兼容&&目标类型小于源类型
●强制类型转换规则:
●整数长度足够,数据完整。
例: inti= 100; byte b = (byte);//b= 100
整数长度不够,数据截断。
例: inti = 10000;byte b= (byte);
.小数强转整数,数据截断。
例: doubled= 2.5;inti = (int)d;
//b= 16 (符号位变化,可能变为负数)
//i= 2 (小数位舍掉)
.字符整数互转,数据完整。
例: charc= 65;inti= C; //i= 65
. boolean的取值为true/false,不可与其他类型转换。
5:
数据类型提升
●进行算数运算时:
●两个操作数有一个为double,计算结果提升为double.
●如果操作数中没有double,有一个为float, 计算结果提升为float。
●如果操作数中没有float,有一个为long, 计算结果提升为long。
如果操作数中没有long,有一个为int,计算结果提升为int。
●如果操作数中没有int,均为short或byte, 计算结果仍旧提升为int。
●特殊:任何类型与String相加(+)时,实为拼接,其结果自动提升为String。
6.
控制台录入程序运行中,可在控制台(终端)手动录入数据,再让程序继续运行。
●导包语法: import包名.类名://将外部class文件的功能引入到自身文件中。
7.
关键字:
被Java语言赋予特定含义的单词 ,HelloWorld案例中,出现的关键字有public、class、static、void等,这些单词已经被Java定义
标识符:
就是给类,接口,方法,变量等起名字时使用的字符序列
组成规则 :
标识符可以包含 英文字母26个(区分大小写)
0-9数字 ,$(美元符号) ,_(下划线)
注意事项 :不能以数字开头 ,不能是Java中的关键字 ,区分大小写
二丶运算符
运算符 : 算术运算符,赋值运算符,关系运算符,逻辑运算符,位运算符,三目运算符
逻辑运算规则:
运算符 运算 | 范例 | 结果 |
& AND(与) | false&true | false. |
OR(或) | falsetrue | true |
XOR(异或) | true ^false | true |
! Not(非) | !true | false |
& AND(短路) | false&&true | false |
|I OR(短路) | false||true | true. |
位运算符:
位运算符 |
|
|
运算符 | 运算 | 范例. |
<< | 左移 | 3<<2=12-->3*2*2=12 |
》> | 右移 | 3>>1=1->3/2=1 |
>>> | 无符号右移 | 3>>>1=1-->3/2=1 |
& | 与运算 | 6&3=2 |
| | 或运算 | 6|3=7 |
^ | 异或运算 | 6^3=5 |
| 反码 | ~6=-7 |
位运算是直接对二进制进行运算。
<<:就是将左边的操作数在内存中的二进制数据左移右边操作数指定的位数,右边被移空的部分补0。相当于乘与2的倍数 :右移稍微复杂一点,如果最高位是0,左边被移空的位就填入0;如果最高位是1,左边被移空的位就填入1。相当于除以2的倍数 :无论最高位是1还是0,左边被移空的高位都填入0。
看结果:总结相当于乘以或者除以2的多少次幂
三目运算符:
格式:
(关系表达式)?表达式1:表达式2;
如果条件为true,运算后的结果是表达式1;
如果条件为false,运算后的结果是表达式2;
三丶键盘录入数据
实现步骤:
1. 导包(位置放到class定义的上面)
import java.util.Scanner;
2. 创建对象
Scanner sc = new Scanner(System.in);
3. 接收数据
int x = sc.nextInt();
四丶流程控制语句
流程控制语句分类 : 顺序结构语句;选择结构语句 ;循环结构语句
选择结构语句: if语句,switch语句
If 语句常见格式:if(关系表达式1) {
语句体1;
}else if (关系表达式2) {
语句体2;
}
…
else {
语句体n+1;
}
Switch语句格式:
switch语句格式:
switch(表达式) {
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
…
default:
语句体n+1;
break;
}
执行流程首先计算出表达式的值其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束。最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。
Case 具有穿透性
在switch语句中,如果case的后面不写break,将出现穿透现象,也就是不会在判断下一个case的值,直接向后运 行,直到遇到break,或者整体switch结束。
循环语句:
循环语句的组成:
初始化语句:一条或者多条语句,这些语句完成一些初始化操作。
判断条件语句:这是一个boolean 表达式,这个表达式能决定是否执行循环体。
循环体语句:这个部分是循环体语句,也就是我们要多次做的事情。
控制条件语句:这个部分在一次循环体结束后,下一次循环判断条件执行前执行。通过用于控制循环条件中的变量,使得循环在合适的时候结束。
For语句的循环格式:
for(初始化表达式①; 布尔表达式②; 步进表达式④){
循环体③
}
For语句的执行流程:
执行顺序:①②③④>②③④>②③④…②不满足为止。
①负责完成循环变量初始化
②负责判断是否满足循环条件,不满足则跳出循环
③具体执行的语句
④循环后,循环条件所涉及变量的变化情况
while循环语句格式:
基本格式
while(判断条件语句) {
循环体语句;
}
扩展格式
初始化语句;
while(判断条件语句) {
循环体语句;
控制条件语句;
}
for循环和while循环的区别
for循环语句和while循环语句可以等价转换,但还是有些小区别的使用区别:
控制条件语句所控制的那个变量,在for循环结束后,就不能再被访问到了,而while循环结束还可以继续使用,如
果你想继续使用,就用while,否则推荐使用for。原因是for循环结束,该变量就从内存中消失,能够提高内存的使
用效率。
场景区别:
for循环适合针对一个范围判断进行操作while循环适合判断次数不明确操作