学习目标:
- 掌握数据类型的转换方法
- 会用java中的运算符
- 简单的了解方法
学习内容:
一、类型转换
1、自动类型转换(隐式)
- 特点:代码不需要进行特殊处理,自动完成
- 规则:数据范围从小到大
2、强制类型转换(显式)
- 特点:代码需要进行特殊处理,不能自动完成
- 格式:范围小的类型 范围小的变量 = (范围小的变量)原本范围大的数据
3、注意事项:
- 强制类型转换不推荐使用,会造成数据溢出,影响精度
- byte/short/char三种类型可以发生数学运算,先提升为int类型,然后进行“+”运算
- boolean类型不能进行数据类型转换
二、数学运算
1、注意事项:
- 一旦运算中有不同类型的数据,那么结果将会是数据范围大的数据类型
- 任何数据类型和字符串相加都会变成字符串类型
- 赋值运算隐含强制类型转换
三、逻辑运算
1、逻辑运算符号:
- 与 &&;
- 或 ||;
- 非 !;
2、&& 和 || 具有短路效果,能够提前判断,就不执行后面的代码,提高效率
四、三元运算符
1、格式:
- 数据类型 变量名称 = 条件判断 ? 表达式A : 表达式B;
- int max = a>b ? a:b;
2、注意事项
- 必须同时保证表达式A和表达式B都符合左侧数据类型的要求
- 三元运算符结果必须被使用
五、方法入门
1、方法概述
- 将一类操作放到一个方法中,使代码更加清晰明了
2、注意事项
- 方法定义的先后顺序无所谓
- 方法的定义不能产生嵌套包含关系
- 方法定义好需要调用才能被执行
六、jshell工具
1、直接在cmd中输入名称jshell
2、退出直接输入/exit
七、编译器的两点优化
1、对于byte、short、char三种类型来说,如果右侧的赋值没有超过左侧范围,编译器会自动隐含的强转如果超出左侧范围,报错;
2、再给变量赋值时,如果右侧表达式都是常量,编译的时候编译器javac会直接计算常量表达式,在.class文件中直接就是计算后的值,称为编译器的常量优化。
学习时间:
一天学习产出:
1、Hello World程序public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello,World!!!");
System.out.println("Hello,World!!!");
System.out.println("Hello,World!!!");
System.out.println("a");
}
}
2、方法1
package mypackage.day01.demo01;
public class Demo01Method {
public static void main(String[] args) {
printMethod();
}
public static void printMethod() {
for (int j = 0; j < 5; j++) {
for (int i=1;i <= 20;i++) {
System.out.print("*");
}
System.out.println();
}
}
}
3、方法2
package mypackage.day01.demo01;
public class Demo02Method {
public static void main(String[] args) {
// 单独调用
sum(10,20);
System.out.println("=====================");
// 打印调用
System.out.println(sum(10,30));
System.out.println("======================");
// 复制调用
int number = sum(20,30);
System.out.println(number);
System.out.println("=======================");
}
public static int sum(int a, int b) {
int result = a + b;
return result;
}
}
4、方法重载
package mypackage.day01.demo02;
public class Demo01MethodOverLoad {
public static void main(String[] args) {
myPrint((byte) 1);
myPrint((short) 1);
myPrint((int) 1);
myPrint((long) 1);
myPrint((char) 1);
}
public static void myPrint(byte num) {
System.out.println("byte类型");
System.out.println(num);
}
public static void myPrint(short num) {
System.out.println("short类型");
System.out.println(num);
}
public static void myPrint(int num) {
System.out.println("int类型");
System.out.println(num);
}
public static void myPrint(long num) {
System.out.println("long类型");
System.out.println(num);
}
public static void myPrint(char num) {
System.out.println("char类型");
System.out.println(num);
}
}