Java Day_3(标识符 数据类型转换 运算符)
标识符
- 组成:数字 字母 下划线(_) 美元符号($)
- 规则:
①不能以数字开头
②不能是关键字
③区分大小写 - 约定:
- 小驼峰命名法:用于变量和方法的命名上
- 如果为一个单词所有字母均为小写
- 如果多个单词则第一个单词首字母小写,后边单词首字母大写
- 大驼峰命名法:用于类名和接口名上
- 每个单词首字母都大写
标识符命名基本准则:见名知意
- 每个单词首字母都大写
- 小驼峰命名法:用于变量和方法的命名上
数据类型转换
强制类型转换:把一个表示数据范围大的数值或者变量赋值给另一个表示数据范围小的变量
格式:目标数据类型 变量名 = (目标数据类型)值或者变量
注:可能造成精度降低或溢出
运算符
算数运算符
符号 | 作用 | 说明 |
---|---|---|
+ | 加 | 参看小学一年级 |
- | 减 | 参看小学一年级 |
* | 乘 | 参看小学二年级,与“×”相同 |
/ | 除 | 参看小学二年级,与“÷”相同 |
% | 取余 | 获取的是两个数据做除法的余数 |
算数运算符规则:
- 整数运算:
- 如果两个操作数有一个为 long, 则结果也为 long。
- 没有 long 时,结果为 int。即使操作数全为 short,byte,结果也是 int。
- 浮点运算:
- 如果两个操作数有一个为 double,则结果为 double。
- 只有两个操作数都是 float,则结果才为 float。
- 取模运算:
- 其操作数可以为浮点数,一般使用整数,结果是“余数”,“余数”符号和左
- 边操作数相同,如:7%3=1,-7%3=-1,7%-3=1。
赋值运算符
符号 | 作用 | 说明 |
---|---|---|
= | 赋值 | a=10,将10赋值给变量a |
+= | 加后赋值 | a+=b,将a+b的值给a |
-= | 减后赋值 | a-=b,将a-b的值给a |
*= | 乘后赋值 | a*=b,将a×b的值给a |
/= | 除后赋值 | a/=b,将a÷b的商给a |
%= | 取余后赋值 | a%=b,将a÷b的余数给a |
注:扩展的赋值运算符隐含了强制类型转换
public class Hello{
public static void main(String[] args) {
short s = 20;
s += 10; // s =(short) (s + 10)
System.out.println(s);//30
}
}
public class Hello{
public static void main(String[] args) {
int a=3;
int b=4;
a+=b;
System.out.println("a="+a+"\nb="+b);//a=7,b=4
a=3;
//a*=b+3; // 等同于 a = a *( b + 3) 21 会将扩展赋值运算符后的表达式作为一个整体和左边进行运算
a = a * b + 3;//15
System.out.println("a="+a+"\nb="+b);//a=15,b=4
}
}
自增自减运算符
public class Hello{
public static void main(String[] args) {
int a = 5;
System.out.println(a++);//5 先取值 后运算
System.out.println(a);//6
System.out.println(++a);//7 先运算 后取值
}
}
public class Hello{
public static void main(String[] args) {
int a = 5;
int b = a++ + 1;
System.out.println(a);//6
System.out.println(b);// 6
int c = 5;
int d = ++c + 1;
System.out.println(c);//6
System.out.println(d);// 7
}
}
关系运算符
符号 | 说明 |
---|---|
== | a==b,判断a和b的值是否相等,成立为true,不成立为false |
!= | a!=b,判断a和b的值是否不相等,成立为true,不成立为false |
> | a>b,判断a是否大于b,成立为true,不成立为false |
>= | a>=b,判断a是否大于等于b,成立为true,不成立为false |
< | a<b,判断a是否小于b,成立为true,不成立为false |
<= | a<=b,判断a是否小于等于b,成立为true,不成立为false |
注:关系运算符的结果都是boolean类型,要么是true,要么是false
逻辑运算符
符号 | 作用 | 说明 |
---|---|---|
& | 逻辑与 | a&b,a和b都是true,结果为true,否则为false |
丨 | 逻辑或 | a |
^ | 逻辑异或 | a^b,a和b结果不同为true,相同为false |
! | 逻辑非 | !a,结果和a的结果正好相反 |
&& | 短路与 | 作用和&相同,但是有短路效果 |
丨丨 | 短路或 | 作用和 |
- 注:
逻辑与&,无论左边真假,右边都要执行。
短路与&&,如果左边为真,右边执行;如果左边为假,右边不执行。
逻辑或|,无论左边真假,右边都要执行。
短路或||,如果左边为假,右边执行;如果左边为真,右边不执行
public class Hello{
public static void main(String[] args) {
int a = 10;
boolean b = a++ < ++a && --a < a--;
System.out.println(b);//false
System.out.println(a);//10
}
}
位运算
位运算符 | 说明 |
---|---|
~ | 取反 |
& | 按位与 |
丨 | 按位或 |
^ | 按位异或 |
<< | 左移运算符,左移一位相当于乘2 |
>> | 右移运算符,右移以为相当于除2取商 |
计算机中存储 的是数字的二进制的补码
正数的原码 反码 补码 都已一样的
负数的 原码 反码除符号位 其余位按位取反(0变1 , 变0)补码:原码取反 + 1
位运算的执行效率是 最高的
public class Hello{
public static void main(String[] args) {
int a = 3 ;
int b = 2;
int c = 3 << 2;// 3 * 2 * 2
System.out.println(c); //12
c = 3 >> 2;//3/2/2
System.out.println(c); //0
}
}
三元运算符
格式: 关系表达式?表达式1 : 表达式2
当关系表达式成立(true)则整个三运算的结果为表达式1 否则为表达式2
public class Hello{
public static void main(String[] args) {
int a = 3 ;
int b = 2;
int c = a < b ? a+1 : ++b;
System.out.println(c);//3
}
}
public class Hello{
/*
需求:动物园里有两只老虎,已知两只老虎的体重分别为180kg、200kg,
请用程序实现判断两只老虎的体重是否相同。
*/
public static void main(String[] args)
{
int weightA = 180;
int weightB =200;
boolean result = weightA == weightB ? true : false;
System.out.println(result);
}
}
public class Hello{
/*
需求:一座寺庙里住着三个和尚,已知他们的身高分别为150cm、210cm、165cm,
请用程序实现获取这三个和尚的最高身高。
*/
public static void main(String[] args)
{
int height1 = 150;
int height2= 210;
int height3 = 165;
int max = (height1 > height2 ? height1 : height2) > height3 ? (height1 > height2 ? height1 : height2) : height3;
System.out.println(max);
}
}