数据类型转换
自动类型转换
特点:代码不需要进行特殊处理
规则:数据范围从小到到大,特指数据类型范围,和数据类型的占用内存范围无关。
强制类型转换
一般不建议使用
注意事项
- 会造成精度损失>,例如2.5(float)—>2(int),或者数据溢出>;
- byte/short/char都可以进行数据运算,例如“+”
- byte/short/char会提升至int类型进行运算
- 在java中boolean不能够进行任何数据类型转换
练习打字中…
自动类型转换
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| public class Demon01DataType { public static void main(String[] args){ System.out.println(1024); System.out.println(3.14);
long num1 = 100; System.out.println(num1);
double num2 = 2.5F; System.out.println(num2);
float num3 = 100L; System.out.println(num3);
} }
|
强制类型转换
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| public class Demon02DataType{ public static void main(String[] args){ int num1 = (int) 100L; System.out.println(num1);
int num2 = (int) 60000000000L; System.out.println(num2);
int num3 = (int) 3.99; System.out.println(num3);
char zifu1 = 'A'; System.out.println(zifu1+1);
byte num4 = 40; byte num5 = 50;
int result1 = num4 +num5; System.out.println(result1);
short num6 = 60; short result2 = (short) (num4 + num6); } }
|
运算符
加减乘除
四则运算当中的加号“+”有常见的三种用法
- 对于数值来说,那就是加法
- 对于字符char类型来说,计算之前会被提升成int,然后再计算
- 对于字符串String(首字母大写,并不是关键字)来说,加号代表字符串连接操作
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| public class Demon04Operator{ public static void main(String[] args){ System.out.println(20+30);
int a = 10; int b = 20; System.out.println(a+b);
System.out.println(a+10);
int x = 10; int y =3; int result1 = x / y; System.out.println(result1);
int result2 = x % y; System.out.println(result2);
double result3 = x + 2.5; System.out.println(result3); } }
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| public class Demon05Plus{ public static void main(String[] args){ String str1 = "Hello"; System.out.println(str1);
System.out.println(str1+"World");
String str2 = "JAVA"; System.out.println(str2 + 20);
System.out.println(str2 + 20 + 30); System.out.println(str2 + (20 + 30)); } }
|
自增自减
前++(前—):直接在原有基础上加(减)1
后++(后—):先取原有值,再加(减)1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| public class Demon06Operator{ public static void main(String[] args){ int num1 = 10; System.out.println(num1);
int num2 = 20; ++num2; System.out.println(num2); System.out.println("======================");
int num3 = 30; System.out.println(num3++); System.out.println(num3); System.out.println("======================");
int num4 = 40; System.out.println(--num4); System.out.println("======================");
int num5 = 50; num5++; System.out.println(num5++); System.out.println(num5); System.out.println("======================");
int x = 10; int y = 20; int result1 = ++x + y--; System.out.println(result1); System.out.println(x); System.out.println(y);
} }
|
赋值
1 2 3 4 5 6 7 8
| =
+= a +=1 a = a + 1 -= b -=1 b = a - 1 */ c *=5 c = c * 5 /= d /=6 d = d / 6 %= e %=7 e = e % 7
|
比较
可输出boolean类型
逻辑
与(并且) && 全都是 true 才是true 否则就是false
或(或者) || 至少是一个true 才是true 全是false 才是false
非(取反) !本来是true 变成false
与 && 或 ||具有短路效果,如果根据左边就可以判断出最终结果,那么右边的代码将不再执行,从而节省一定的性能
1 2 3 4 5 6 7
| public class Demon09Logic{ public static void main(String[] args){ int a = 10; System.out.println(3>4 && ++a < 100); System.out.println(a); } }
|
三元
一元运算符:只需要一个数据就可以进行操作的运算符,例如:取反!自增++ 自减—
二元运算符:需要两个数据才可以操作的运算符,例如:加法+ 赋值=
三元运算符:需要三个数据才可以操作的运算符
注意事项
必须同时保证表达式A和表达式B都符合左侧数据类型的要求
三元运算符的结果必须被使用
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| public class Demon10Operator{ public static void main(String[] args){ int a = 10; int b = 20;
int max = a > b ? a : b; System.out.println("最大值:"+max);
System.out.println("最大值:"+(a > b ? a : b)); } }
|
方法
注意事项
- 方法定义的先后顺序无所谓
- 方法的定义不能产生嵌套包含关系
- 方法定义好了之后,不会执行的,如果要执行,一定要进行方法的【调用】
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
| public class Demon11Method{ public static void main(String[] args){ farmer();
seller();
cook();
me();
} public static void farmer(){ System.out.println("播种"); System.out.println("浇水"); System.out.println("除虫"); System.out.println("收割"); System.out.println("卖给小商贩"); }
public static void seller(){ System.out.println("运输到农贸市场"); System.out.println("抬高价格"); System.out.println("吆喝"); System.out.println("装盘"); }
public static void cook(){ System.out.println("洗菜"); System.out.println("切菜"); System.out.println("炒菜"); System.out.println("装盘"); }
public static void me(){ System.out.println("吃"); } }
|