从零开始学Java【08】

从零开始学Java【08】


​ 学习视频:https://www.bilibili.com/video/BV12J41137hu?p=35

顺序结构

从上往下执行,一条条代码执行

image-20220426161128776

选择结构

if 单选择结构

if(布尔表达式){
  //如果布尔表达式为true将执行的语句
}

例子:

image-20220426162746505

image-20220426163028607

其中:equals函数是匹配函数,用来比较输入的和equals函数里面的参数是否一致

①当输入与equals里函数不一致,则布尔表达式为false,则不执行if函数体,跳出if结构

②当输入与equals里函数一致,则布尔表达式为true,则执行if函数体

if 双选择结构

if(布尔表达式){
  //如果布尔表达式为true将执行的语句
}else{
  //如果布尔表达式为false将执行的语句
}

image-20220426163656740

image-20220426163713602

if 多选择结构

if(布尔表达式1){
  //如果布尔表达式 1为true将执行的语句
}else if(布尔表达式2){
  //如果布尔表达式 2为true将执行的语句
}else if(布尔表达式3){
  //如果布尔表达式 3为true将执行的语句
}
...

image-20220426165455548

嵌套if选择结构

if(布尔表达式1){
  //如果布尔表达式 1为true将执行的语句
  if(布尔表达式2){
  //如果布尔表达式 2为true将执行的语句
    }
  }

即在一个if里面嵌套一个if语句,属于算法范畴,比如用二分法来查找

switch多选择结构image-20220426174204681

switch(expression){
   case value:
   //语句
   break;//可选
   case value:
   //语句
   break;//可选
   ...
   default://可选,上面的选项都执行不了默认执行default语句
   //语句
}

image-20220426190545291

注意在每个case后面加个break,break的功能后面会讲(其实就是执行完当前的case之后跳出循环,避免执行其它case的意思)

image-20220426175408319

switch语句里面expression与value进行匹配,如果符合则执行当前case的语句

注:scanner在输入其它类型比如int,float,double这些,都可以直接scanner.intNext(),或scanner.floatNext()

但,char类型要是想要输入,就必须有格式scanner.next().charAt(0)

注:switch可以使用字符串类型了

image-20220426183535523

另,Java反编译的一些过程

Java在进行编译的时候,生成class文件(字节码文件),class文件是乱码,这时候需要反编译,而idea是可以充当反编译的工具的

步驟:

  1. 打开项目结构

image-20220426185011519

  1. 找到编译输出路径

image-20220426185056815

  1. 找到这个路径之后,打开这个路径,可以找到对应的class文件

image-20220426185208257

  1. 如果此时用记事本打开,会发现是乱码

image-20220426185301311

这个文件是被编译过的,我们要进行反编译才能恢复成原来的文件

  1. 在idea中打开文件夹,如下

image-20220426185516049

或者找到class文件,用idea打开也可以,就可以正常显示了

image-20220426185711807

这就是反编译之后的文件,同时,对比前后文件可以发现:

image-20220426190024247

具体的字符串变成了哈希码,哈希码相当于身份证,每个字符串都有独特的哈希值来与之关联,比如:

图中数字”20881860“通过equals匹配函数关联到了”刘华强“,那么这串数字就是”刘华强“这个字符串的身份证

posted @ 2022-04-26 19:11  机智的小柴胡  阅读(62)  评论(0)    收藏  举报