1、代码如何执行、数据如何存储
类型转换
1. 类型一致
2. 自动类型转换
大类型盒子=小类型值
大类型参与运算
注意:大类型参与运算,尽可能前置
数据表范围会轮转
大类型置前
特例:扩展运算符
内部优化
3. 强制类型转换
强制类型转换
小类型盒子=(小类型)大值除boolean类型之外
java中boolean类型为1位(1/8字节)没有C语言中的真为1
注意:类型转换的作用范围
类型一致
msg="1";
结果:msg="1"
msg=""+1;
结果:msg="1"
自动转换类型
类型兼容
大类型盒子=小类型值
int box=100;
结果:box=100
box='a';
结果:box=97
double num=box;
结果:box=97.0
大类型参与运算
num=1*2*3.1;
结果:num=6.2
int a=100;
结果:a=100
a=a*10L
错误:不兼容类型
数据表范围会轮转
byte num=127;
结果:num=127
num+=1;
结果:num=-128
注意: 大类型参与运算符 ,尽可能提前
int money=1999999999;
结果:money=1999999999
double total=1.0*money*1200000;
结果:total=2.3999999988E15
double total=money*1200000*1.0;
结果:total=-1.956401024E9
特例:扩展运算符
强制类型转换
小类型盒子=(小类型)大值除boolean类型之外
double n=3.5;
结果:n=3.5
int box=(int)n;
结果:3
java中boolean类型为1位(1/8字节)没有C语言中的真为1
boolean isLucky=true;
结果:true
int box=(int)isLucky;
结果:报错,不兼容类型
注意:类型转换的作用范围
0.088888*100
结果:8.8888
(int)0.088888*100
结果:0
(int)(0.088888*100)
结果:8
运算符
关系运算符
> < >= <= == != instanceof(运算符)
例如:"zcp" instanceof String?"lyq":"ly"
结果:$2 ==> "lyq"
返回结果为 boolean类型
boolean的变量不能用于 > < >= <=
逻辑运算符
&& || !
只操作boolean类型
T && T --> T
T && F --> F
F && T --> F
F && F --> F
短路与: 且&& 当前一个表达式的值为F,整个表达式的结果已经确定为F,
后面表达式为了提升性能不执行。 短路与。
T || T --> T
T || F --> T
F || T --> F
F || F --> F
短路或: 或|| 当前一个表达式的值为T,整个表达式的结果已经确定为T
,后面表达式为了提升性能不执行。 短路或。
!F ->T !T->F
注意:逻辑运算符是运用在boolean类型上的
也就是说逻辑运算符两边都必须是ture或者是false
短路:前面的表达式能够确定整个表达式的结果
提示:
位运算符,不会短路
三目运算符
boolean? 值为true取1 :false取值2
例如:"zcp" instanceof String?"lyq":"ly"
结果:$2 ==> "lyq"
方法
println(“字符串”) 、println(100) 具备打印功能
1、理解
解决某个问题的 有名称的 代码块。 函数….
具备某个功能
方法名: 可以多次使用 调用
多行代码
2、参数
编写方法,方便外界放入数据的,功能方法内使用 。
编写方法使用: 需要形参(就是变量)
调用方法使用: 需要实参(就是数据)
3、返回
编写方法,根据需要 可能需要 返回值 return。
4、编写方法格式
public static 返回类型|void 方法名(形参列表){
代码块。。。。
}
方法编写时与位置无关。调用时确定顺序。。。。 方法不能嵌套。
5、方法调用
原路返回,从哪里回哪里
6、方法签名
保证此方法一个类中的唯一性 : 方法名+形参组成(类型 个数 顺序) ,与 形参名 返回类型 方法体无关。
main(String[])
7、方法重载
两同三不同: 一个类中,方法名相同,形参类型 个数 和顺序不同。
System.out.println(“abc”)
System.out.println(100)
System.out.println(3.14)
System.out.println(true)
方法调用: 就近最优原则
8、方法递归
方法自己调用自己 : 递归头 递归体 递归结束
两个方法
系统提供好的, 工具方法
1、随机数
目标:获得 随机的整数
1)、java.lang.Math.random() [0,1) 随机的小数
2)、java.util.Random nextInt(int bound) ->[0,bound) 随机的整数
2、键盘输入
目标: 获取 整数 小数 字符串
java.util.Scanner
整数: nextInt() 小数: nextDouble() 字符串: next()
3、字符串
String 为字符串 ,存在大量的已经编写的方法
1、equals() equalsIgnoreCase(String anotherString) 比较内容 ==比较地址值
2、length() 长度
3、trim() 去除两边的空格
4、replaceAll() 替换
5、indexOf() 查找子串出现的位置
6、substring() 获取子字符串