黑马程序员——java基础知识

时间:2023-02-04 20:02:44

                                   -----------android培训java培训、java学习型技术博客、期待与您交流!------------


1:运算符(掌握)
 (1)算术运算符
  +,-,*,/,%,++,--

  +:正号,加法,字符串连接符
  %:两数相除,得到余数
  ++,--:
   单独使用:在操作数的前后,效果一致。
   参与操作使用:
    在操作数前,先++或者--,再参与操作。
    在操作数后,先参与操作,再++或者--。
 (2)赋值运算符
  =,+=,-=,*=,/=,%=

  =:把右边赋值给左边。
  ?=:把左边和右边操作后赋值给左边。

  注意:赋值的左边不能是常量。
 (3)比较运算符
  ==,!=,>,>=,<,<=

  A:结果肯定是boolean类型。
  B:不要把==写出=。
 (4)逻辑运算符
  &:有false则false
  |:有true则true
  ^:相同为false,不同为true。通过情侣关系来理解。
  !:非false则true,非true则false。偶数次不改变以前的真假。
  &&:和&的结果一样,但是具有短路效果。左边有false,右边不执行。
  ||:和|的结果一样,但是具有短路效果。左边有true,右边不执行。
 (5)位运算符(了解)
  要想操作,就必须把所有的数据转换为二进制。然后操作。

  注意:
   ^:对同一个数据异或两次,该数本身不变。

  数据交换:假设a,b是已经知道的int类型的变量
   A:方式1(掌握 开发用)
    int temp = a;
    a = b;
    b = temp;
   B:方式2(掌握 面试用)
    左边a,b,a
    右边a^b

    a = a ^ b;
    b = a ^ b;
    a = a ^ b;

   C:知道就行
    a = a + b;
    b = a - b;
    a = a - b;
   D:知道就行
    a = (a+b)-(b=a);
 (6)三元运算符
  格式:
   比较表达式?值1:值2;
  执行流程:
   如果比较表达式是true,结果是值1;
   如果比较表达式是false,结果是值2;

  案例:
   A:比较两个数是否相同
   B:获取两个数中的最大值
   C:获取三个数据中的最大值
   D:做C题目的时候,还可以练习三元运算符的嵌套。

2:键盘录入(掌握)
 (1)键盘录入数据,让我们的程序灵活性更高。
 (2)步骤:
  A:导包
   import java.util.Scanner;
  B:创建对象
   Scanner sc = new Scanner(System.in);
  C:调用方法
   int i = sc.nextInt();
 (3)案例:
  把前面的案例通过键盘录入改进数据。

3:顺序结构(掌握)
 (1)程序的流程控制语句:
  A:顺序结构
   从上往下依次执行
  B:选择结构
   if,switch
  C:循环结构
   for,while,do...while

4:选择结构之if语句(掌握)
 (1)格式:
  方式1:
   if(比较表达式) {
    语句体;
   }

   执行流程:
    看比较表达式的返回值:
     true:执行语句体;
     false:不执行,可以继续向下执行。
  方式2:
   if(比较表达式) {
    语句体1;
   }else {
    语句体2;
   }

   执行流程:
    看比较表达式的返回值:
     true:执行语句体1;
     false:执行语句体2;
  方式3:
   if(比较表达式1) {
    语句体1;
   }else if(比较表达式2) {
    语句体2;
   }
   else if(比较表达式3) {
    语句体3;
   }
   ...
   else if(比较表达式n) {
    语句体n;
   }

   执行流程:
    看比较表达式1的返回值:
     true:执行语句体1;
     false:看比较表达式2的返回值:
      true:执行语句体2;
      false:...

   可能所有的语句体都没有被执行。
  方式4:
   if(比较表达式1) {
    语句体1;
   }else if(比较表达式2) {
    语句体2;
   }
   else if(比较表达式3) {
    语句体3;
   }
   ...
   else if(比较表达式n) {
    语句体n;
   }else {
    语句体n+1;
   }

   执行流程:
    看比较表达式1的返回值:
     true:执行语句体1;
     false:看比较表达式2的返回值:
      true:执行语句体2;
      false:...
    所有的都不匹配,执行else里面的语句体n+1。
   
   肯定有一个被执行。
 (2)if语句的格式注意事项:
  A:比较表达式无论是简单还是复杂,结果肯定是boolean类型。
  B:语句体如果是一条,可以省略大括号;如果是多条,就不能省略。
    建议:无论一条还是多条,都不省略大括号。
  C:不要随便加分号。
    一般:有分号,就没有左大括号,有左大括号就没有分号。
  D:每种if语句其实都是一个整体,有一条语句执行,其他的将不再执行。
 (3)案例:
  A:判断两个数据是否相等。
  B:获取两个数据中的最大值。
  C:判断三个数据中的最大值。(if语句的嵌套)
  D:根据给定的月份,输出对应的季节。
  E:根据给出的分数,输出对应的等级。
  F:根据给定的x的值,确定y的值。

5:选择结构之switch语句
 (1)格式:
  switch(表达式) {
   case 值1:
    语句1;
    break;
   case 值2:
    语句2;
    break;
   case 值3:
    语句3;
    break;
   ...
   default:
    语句n;
    //break;
  }

  解释:
   A:表达式的取值:
    byte,short,int,char
    JDK5以后可以是枚举。
    JDK7以后可以是字符串。
   B:case后面值就是表达式要匹配的内容。
     case后面的值是不能重复的。
   C:如果所有的case都没有和表达式匹配的,就执行default所控制的内容。
   D:break是结束的意思。
 (2)执行流程:
  A:计算表达式的值。
  B:用这个值和case的值依次匹配。
  C:要么匹配成功:就执行对应的匹配所控制的语句
    要么匹配失败:就执行default的所控制的语句
 (3)switch语句的问题:
  A:case和default的顺序关系?
   a:位置上没有关系。但是建议按照基本格式写。
   b:执行上有关系,现执行case匹配,如果没有,才能执行default。
  B:break可以省略吗?
   可以。但是有可能是你不想要的结果。所以,建议不省略。
  C:最后一个语句的break是可以省略的。
  D:switch语句的结束条件:
   a:遇到break。
   b:执行到末尾。
 (4)案例:
  A:根据给出的数字1,2,...,输出对应的星期几。(byte,short,int)
  B:根据给定的选项,输出对应的选择。(char)
  C:根据给定的字符串,输出对应的字符串。(String)

6:选择结构的语句使用的时候,如果选择呢?
 如果是有限个数的值,用switch。
 其他全部用if语句。
  如果是一种判断:第一种
  如果是二种判断:第二种
  如果是多种判断:第三种或者第四中。优先考虑第四种。
7:for循环
 (1)格式:
  for(初始化表达式; 控制条件表达式; 增量表达式) {
   循环体语句;
  }

  执行流程:
   A:先执行初始化表达式
   B:执行控制条件表达式
   C:看B的返回值:
    true:执行循环体语句和增量表达式,回到B继续。
    false:就结束for循环。
 (2)for循环的注意事项:
  A:注意格式问题。
  B:分号和大括号的问题。
  C:大括号建议不要省略。
8:while循环
 (1)while:
  基本格式:
   while(条件表达式) {
    语句;
   }

  扩展格式:
   初始化表达式;
   while(控制条件表达式) {
    循环体语句;
    增量表达式
   }

  执行流程:
   A:先执行初始化表达式
   B:执行控制条件表达式
   C:看B的返回值:
    true:执行循环体语句和增量表达式,回到B继续。
    false:就结束while循环。

  注意:
   while循环和for循环是可以等价转换的。

  区别:
   增量如果还要继续使用,就用while循环。否则就用for循环。

  使用场景:
   A:是一个明确的范围,用for。
   B:次数不明确,用while循环。
9:(2)do...while循环:
  基本格式:
   do {
    语句;
   }while(条件表达式);

  扩展格式:
   初始化表达式;
   do {
    循环体语句;
    增量表达式
   }while(控制条件表达式);
   
  执行流程:
   A:先执行初始化表达式
   B:执行循环体语句和增量表达式
   C:执行控制条件表达式
   D:看C的返回值:
    true:回到B继续。
    false:就结束do...while循环循环。

  和其他两种循环的区别:
   do...while循环至少执行一次循环体。

10:循环嵌套
 (1)这两天作业的格式:
  if语句
  switch语句
  for语句
  while语句

  for里面嵌套if判断
  for里面嵌套for循环
11:continue和break
 (1)作用:
  用于控制循环语句跳转的。
 (2)在哪里使用呢?
  不能单独使用。
  continue必须在循环中。
  break可以在循环和switch语句中。
 (3)区别:
  continue:结束本次循环,进入下一次循环。
  break:结束当前循环。在双重for循环的时候,
  如果break在内层循环,只能结束内层循环不影响外层循环
 (4)带标号的跳转
  可以退出多层循环。 

                   -----------android培训java培训、java学习型技术博客、期待与您交流!------------