Java_day3

第一部分: 变量的详细介绍


    1,变量的生命周期 : 一个变量被创建并分配内存空间开始,到这个变量被销毁并清除其所占用内存空间的过程
    2,变量的分类:
        2.1:成员变量

        2.2:局部变量

    3,成员变量(实例变量)
        在类中方法外声明,作用范围是整个类.
        参考代码:ch03/InstanceVariable.java

        成员变量:会默认赋值。
            整型:0
            浮点型:0.0
            char类型:'\u0000'
            boolean:false
            引用数据类型: null

    4,局部变量
        在方法中,代码块中声明,作用范围就只能在该方法中,该代码块中使用。

        局部变量不会默认赋值,必须要先赋值再使用

        局部变量不能在声明该局部变量以外的方法使用。

第二部分: 操作符


    1,赋值操作符:
        =   :      int x = 0;
        *=  :      a*=b;<==> a = a * b;
        /=  :      a/=b;<==> a = a / b;
        %=  :      a%=b;<==> a = a % b;
        +=  :      a+=b;<==> a = a + b;
        -=  :      a-=b;<==> a = a - b;

        += 和 -=中的小问题(强制类型转换)

    2,比较操作符: 返回值 一定是 true/false
        >  : 大于
        >= : 大于等于
        <  : 小于
        <= : 小于等于

        注意:比较操作符,只能用来比较整型和浮点型

    3,相等操作符 返回值 一定是 true/false
        ==   :  内存地址相等
         new 的一定内存地址不同

        !=   :  不相等
        注:相等操作符可以用来比较任意的数据类型是否相等。

    4,数学运算操作符
        +   :  数据类型值相加  或者  字符串连接

        1,数据类型值相加
            int a = 3;
            int b = 20
            int c = b+a;
            System.out.println(c);//打印23
        2,字符串拼接
            String a = "tom";
            String b = a+10;//这时候的b是个字符串,字符串的值为tom10
            String c = 10+b;//这时候的c是个字符串,字符串的值为10tom10

            /   :  整除 , 操作数均为整数,运算结果为商的整数部分。

            %    :  取余操作符,

            参考代码: Add.java

    5,移位操作符
        有符号位移位: >>
            有符号位移位,如果是正数用0补全,如果是负数用1补全
        无符号移位: >>>
            无符号位移位,不管正负都用0补全

        >>   :  算术右移位运算,也称做带符号右移位运算。


            测试:
                eg:12>>1
                    1,把12转换为二进制的形式
                        12 <==> 0000 0000 0000 0000 0000 0000 0000 1100
                    2,把12对应的二进制数向右移动2位:
                        0 0000000 00000000 00000000 00001100
                        0  000 0000 0000 0000 0000 00 00000011   有符号移位,12是正数,所以前面补0
                        0  000 0000 0000 0000 0000 00 00000011
                    ----------------------------------------------------------------------结果
                                                                                         3
                eg: -12 >> 1
                    1,把-12转换为二进制的形式
                        注:得到负数的二进制形式需要把正数 转换为二进制以后取反 加 1;
                        正数转换为二进制:
                        -12 :1 000 0000 0000 0000 0000 0000 0000 1100
                        取反:1 111 1111 1111 1111 1111 1111 1111 0011
                        +1  :1 111 1111 1111 1111 1111 1111 1111 0100 : -12//这个二进制码就是-12

                        -12 <==>1 111 1111 1111 1111 1111 1111 1111 0100
                    2,把-12对应的二进制数向右移动一位
                        1 111 1111 1111 1111 1111 1111 1111 0100
                        1  111 1111 1111 1111 1111 1111 1111 010  有符号移位,-12是负数,所以前面补1
                        1 1111 1111 1111 1111 1111 1111 1111 010  -->负数补1
                    减一1 1111 1111 1111 1111 1111 1111 1111 001
                    取反1 0000 0000 0000 0000 0000 0000 0000 110      -->结果:-6 


        >>>  :  逻辑右移位运算,也称为不带符号右移位运算。

        知识点速记:>> 右移是除
            12>>2   <==>   12/(2^2) = 3
            12>>3   <==>   12/(2^3) = 1
                   << 左移是乘
            12<<2   <==>   12*(2^2) = 48
            12<<3   <==>   12*(2^3) = 96

            详细移位运行请查看文档 二进制操作.txt

            参考代码:Move.java

    6,位运算符
        &     :    与    对两个操作元的每个二进制位进行与运算,运算规则为:1&1->1, 1&0->0, 0&1->0, 0&0->0;
        |     :    或   对两个操作元的每个二进制位进行或运算,运算规则为:1|1->1, 1|0->1, 0|1->1, 0|0->0;
        ~     :       非   取反运算, ~1->0, ~0->1;
        ^     :    异或 对两个操作元的每个二进制位进行或运算,运算规则为:1^1->0, 1^0->1, 0^1->1, 0^0->0; 两个值相同,为0, 不同为1;

    7,逻辑操作符:
        &   : 逻辑与  没有短路效果
        |   : 逻辑或  没有短路效果
        &&  : 短路与
        ||  : 短路或

        理解短路效果:
            eg:  (1+1==4) & (1+2==3)
                    false &   true   ----> false
                当知道 括号1 中的值为false 的时候 & 的结果一定是false 括号2 中的值已经不重要了。但是&没有短路效果,所以括号2也会执行,然后比较

                (1+1==4) && (1+2==3)
                 false
                 当知道括号1中的值为false时,括号2 没有计算的必要,&& 会发生短路效果,即:括号2不执行。

            测试代码参考:ShortCircuit.java

    8,三目运算符:
        语法 : 布尔表达式 ? 表达式 1 :  表达式2

        注:布尔表达式为true--->三目运行符执行 表达式 1
           布尔表达式为false执行---->三目运行符执行 表达式 2

           参考代码:Three.java

第三部分:java中的语句


    1,if语句
      语法:  if(布尔表达式){代码块}
      含义:  if代码块中的代码只有当if后面的布尔表达式为true才执行.

    2,if(){}else{}语句
        语法: if(布尔表达式){
                //代码块1
               }else{
                   //代码块2
               }
        含义:当布尔表达式为true执行 代码块1
             当布尔表达式为false执行 代码块1
    3,if(){}else if(){}else if(){}else{}
        语法:
            if(布尔表达式 1){
                //代码块 1
            }else if(布尔表达式 2){
                //代码块
            }else if(布尔表达式 2){
                //代码块 2
            }else{
                //代码块 3
            }
        含义:
            如果布尔表达式 1 为true 那么执行代码块1 ,整个if else if 结束
            如果布尔表达式 1 为false 那么继续判断布尔表达式 2 ...
            如果所有布尔表达式都为false 那么执行代码块3
        注意: if else if   语句 代码块 1 2 3 一定是只有一个代码块执行。其他的都不会执行。

        参考代码: If.java

        课堂练习:
            写一个方法实现分时问侯, 如是8点至12点,返回"上午好", 12点至14点,返回"中午好",                  14点至18点,返回"下午好", 其它时间返回"晚上好".注:时间用int date=10;表示

    4,switch语句
        语法: switch(expr){
                case value1:
                    代码;
                    break;
                case value2:
                    代码;
                    break;
                ...
                default:
                    代码;
                    break;
              }

        expr支持的数据类型:
            switch表达式后面的数据类型只支持byte,short,char,int四种整形类型、枚举类型和java.lang.String类型。
            其中枚举和String在jdk1.7以后支持

        流程解释:
         1,获取expr值
         2,从上到下和case 的 value比较
             如果相同执行当前case下面的代码(可以是多句,多行代码),
                 如果没有break,那么接下来所有的case 都会匹配成功(即使case 的value 和 expr不同),然后执行case下的代码。然后执行default
                 如果有break,那么switch执行完毕,跳出。
         3,如果所有的case都匹配失败
             执行default中的代码

             参考代码:Switch.java
         课堂练习:
             写一个程序,能把数字1-7转换为对应的星期一到七

    5,循环语句
        用来反复执行某一段代码。
        循环语句包含:
        . 初始化部分:用来设置循环的一些初始条件,比如循环控制变量的初始值;     可以不要
        . 循环条件:  这是一个布尔表达式,每一次循环都要对该表达式求值,以判断到底继续循环还是终止循环。
        . 循环体:    这是循环操作的主体内容,可以是一条语句,也可以是多条语句; 可以不要
        . 迭代部分:  用来改变循环控制变量的值,从而改变循环条件表达式的值;     可以不要
    6,for循环
        语法: for(初始化部分:循环条件:迭代部分){
            循环体
          }
         写一方法,完成计算从1加到100的和;


         for代码执行流程:
        1,执行 初始化部分
        2,判断 循环条件 满足
        3,执行 循环体
        4,执行 迭代部分
        5,判断 循环条件 满足
        6,执行 循环体
        7,执行 迭代部分
            ......
        n,判断 循环条件 不满足
        n+1, 跳出循环

        参考代码:For.java

    7,while循环
        语法:while(循环条件){
        循环体
    }
        练习 : 使用while完成 完成计算从1加到100的和

       while执行流程:
        1,判断循环条件 满足
        2,执行循环体
        3,判断循环条件 满足
        4,执行循环体
            ...
        n,判断循环条件 不满足
        n+1,跳出循环

       参考代码:While.java

      8,do---while循环
       语法:do{
         循环体
        }while(循环条件);
       练习 : 使用while完成 完成计算从1加到100的和

       do---while循环执行流程:
        1,执行循环体
        2,判断循环条件 满足
        3,执行循环体
        4,判断循环条件 满足
        5,执行循环体
            ...
        n,判断循环条件 不满足
        n+1,跳出循环

        参考代码DoWhile.java

         问题:执行 循环体 的时候由于某种原因需要跳出循环

      9,打印三角形
       任选一种循环打印三角形
       例子1:
            *
            **
            ***
            ****
            *****
           参考代码:Triangular.java
           例子2:
             *
            **
           ***
          ****
         *****
       参考代码:Triangular2.java

    10,循环语句中流程跳转:参考代码Skip.java
         1,break;
         跳出当前循环.

         for(int i = 0;i<9;i++){
             if(i==5){
                break;
            }
            System.out.println("break:  "+i);
         }
         System.out.println("结束");

         2,break lable;
         跳出指定循环.

         3,continue;
        跳出当次循环,进入下一次循环
        for(int i = 1;i<=9;i++){
            if(i==5){
                continue;
            }
            System.out.println("continue:  "+i);
        }
        System.out.println("结束");

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
大学生参加学科竞赛有着诸多好处,不仅有助于个人综合素质的提升,还能为未来职业发展奠定良好基础。以下是一些分析: 首先,学科竞赛是提高专业知识和技能水平的有效途径。通过参与竞赛,学生不仅能够深入学习相关专业知识,还能够接触到最新的科研成果和技术发展趋势。这有助于拓展学生的学科视野,使其对专业领域有更深刻的理解。在竞赛过程中,学生通常需要解决实际问题,这锻炼了他们独立思考和解决问题的能力。 其次,学科竞赛培养了学生的团队合作精神。许多竞赛项目需要团队协作来完成,这促使学生学会有效地与他人合作、协调分工。在团队合作中,学生们能够学到如何有效沟通、共同制定目标和分工合作,这对于日后进入职场具有重要意义。 此外,学科竞赛是提高学生综合能力的一种途径。竞赛项目通常会涉及到理论知识、实际操作和创新思维等多个方面,要求参赛者具备全面的素质。在竞赛过程中,学生不仅需要展现自己的专业知识,还需要具备创新意识和解决问题的能力。这种全面的综合能力培养对于未来从事各类职业都具有积极作用。 此外,学科竞赛可以为学生提供展示自我、树立信心的机会。通过比赛的舞台,学生有机会展现自己在专业领域的优势,得到他人的认可和赞誉。这对于培养学生的自信心和自我价值感非常重要,有助于他们更加积极主动地投入学习和未来的职业生涯。 最后,学科竞赛对于个人职业发展具有积极的助推作用。在竞赛中脱颖而出的学生通常能够引起企业、研究机构等用人单位的关注。获得竞赛奖项不仅可以作为个人履历的亮点,还可以为进入理想的工作岗位提供有力的支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值