学习内容总结(week 1)

1. 标识符

2. 常量

3. 变量

4. 运算符

5. 键盘录入

6. 流程控制语句

1.标识符.

针对包,类,接口,方法,变量,常量等名字的字符序列.

组成:
      1)26给英文字母;
      2)数字字符;
      3)可包含"_"和"$";
 
注意事项:
        1)严格区分大小写,要见名知意;
        2)数字字符不能作为开头;
        3)不能是java中的关键字;
        4)不能由非法字符.
        
具体举例:
        1)类和接口命名使用"大驼峰命名法";
        2)方法和变量命名使用"小驼峰命名法";
        3)常量取名,单个单词全部大写,多个单词中间用"_"隔开.


2.常量.

在程序运行过程中,其值不发生变化的量.

分类:
    1)字面值常量:
                a)字符串常量:"HelloWorld"(任何数据类型 + 字符串 = 新的字符串);
                b)字符常量:'a','A','0'. 对应 ASCII 表中数值;
                c)整数常量: exmple 100/80.....包含进制;
                d)小数常量: exmple  3.14/12.56....;
                e)布尔常量: true/false;
                f)空常量: null;
    2)自定义常量: 后续补充


3.变量.

在程序执行过程中,其值发生改变的量.

三要素: 

        1)数据类型;

        2)变量名称(满足标识符规则);

        3)初始化值(满足范围);

数据类型:

       a. 基本数据类型(四类八种):

                1)整数类型:

                        byte 字节类,取值范围 -128~127,占 1 个字节;

                        short 短整类,占 2 个字节 ;

                        int 整数类(默认),占 4 个字节;

                        long 长整型,占 8 个 字节,初始化值的末尾加 L 或 l;

                2)浮点类型:

                         double 是浮点默认类型,双精度,占 8 个 字节;

                         float 单精度,占 4 个 字节,初始化值末尾加 F 或 f;

                3)字符类型:

                        char 单引号'xxx'括起来的单个内容,占 2 个字节;

                4)布尔类型:

                        boolean 没有类型转换,只表示真假 true/false,占 1 个 字节;

        b. 引用数据类型:

                         数组/类/接口等.

注意事项:

        1)同一个变量不能重复定义;

        2)一行定义一个变量(特殊需求可定义多个),用";"表示结束;

        3)在使用前必需进行初始化;

应用问题:

        1)变量要计算,数据类型必须一致;

                a. 隐式类型转换: byte/char/short 之间不相互转换,一旦参与运算,优先转为 int 类型.

                        例: int a = 4;

                              byte b = 3;

                                int c = a + b ;(此处 b 参与运算,自动升类型为 int )

                b. 强制类型转换(显示转换): 适用于基本类型和引用数据类型,没有明确要求尽量不用,可能有损精度.

                         格式: 目标数据类型  变量名 = (目标数据类型)  (初始化值/表达式) ;

                          例:  int a = 4 ;

                                 int b = 3;

                                byte c = (byte) a +b;

          2) byte b = 200 ?

                byte b = (byte) 200 ;

                          因为 200 超过 byte 类型的范围,所以升为 int 类型

                        00000000  00000000  00000000  11001000  原码=反码=补码

                 强转 → 剩一个字节:    11001000(强转后的补码)

                 求强转以后的反码 :     11000111

                求强转后的原码 :          10111000     =  - 56

 


4.运算符.

分类: 

        1) 算术运算符;

        2) 赋值运算符;

        3) 关系(比较)运算符;

        4) 逻辑运算符;

        5) 位运算符;

        6) 三元(三目)运算符;

作用:

        1)算术运算符:

                + , -  , * , /(默认取整)  ,  %(求余数);

        2)赋值运算符:

                基本赋值运算符"=",把 = 右边的数据赋值给左边.

                        例 : int a =10 ; 10 赋值给 a

                拓展赋值运算符 : 符号右边的数据和左边的数据做对应的运算后在赋值给左边.

                        例 : int a =10 ;

                                 a += 20 ; →  等价与 a = a + 20

        3)比较运算符:

                 != , < , <= , >= , > , ==    最终结果只有 ture/false 

                格式 : x >=1 && x <==3 

        4)逻辑运算符:

                基本逻辑运算符 :

                                           逻辑单与 "&"  : 有 false 则 false;

                                           逻辑单或 "|"  : 有 true 则 true ;

                                           逻辑异或 "^"  : 相同为 false, 不同为 true;

                                           逻辑非 "!"  :  非 true 则 false, 非 false 则 true ;

                 拓展逻辑运算符 :

                                            逻辑双与 "&&" : 具有短路效果, 符号左边如果错误,右半边则无需执行.

                                                                       区别与逻辑单与 "&"的无论对错,右边都执行;

                                                                        例: int a =3 ;

                                                                              int b =4 ;

                                                                               System.out.println((++x==4)&&(--y ==5));

                                                                               System.out.println("x:"+x+",y"+y);  

                                                                                输出结果 : false

                                                                                                 x = 4,y =4

                                            逻辑双或"||"  : 符号左边 true,右边无需执行,单或"|"同上理;

        5)位运算符

                基本位运算符:

                                       位与 "&" :有 0 则0 ;

                                        位或"|"  : 有1 则 1 ;

                                        位异或"^"  : 相同为 0 ,不同为 1 (一个数据被另一个数据^两次,值是本身);

                                        反码"~" : 按位取反, 0 变 1 , 1 变 0,包括最高符号位.

                                        例:

                                                 3 & 4 结果

                                             00000000  00000000  00000000  00000011   原反补相同

                                             00000000  00000000  00000000  00000100   原反补相同

                                              有 0 则 0:

                其他位移符号:

                                        <<: 左移 : 将数据的补码进行左移动,右边不够的补 0,将最高符号位丢弃;

                                                        特点 : 左移结果 = 符号左边的数据 *2 的移动次幂;

                                        >>: 右移 : 将数据的补码进行右移动,如果最高符号位为1,则左边补1;

                                                          最高符号位为 0 ,则左边补0;

                                                          特点 : 右移结果 = 符号 左边的数据 /2 的移动次幂;

                                        >>>: 无符号右移 : 无论最高符号位是1 还是0 ,左边始终补 0.

                                        例 :   -24 >>2

                                        10000000  00000000  00000000  00011000    原码

                                        先求反码:

                                        11111111   11111111    11111111   11100111    反码

                                        再求补码 :

                                        11111111   11111111   11111111   11101000   补码

                                         对补码进行右移:

                                        11111111   11111111   11111111   11111010   移动后的补码

                                         求反码:

                                        11111111   11111111   11111111   11111001    变动后的反码

                                        求原码:

                                        10000000  00000000  00000000  00000110   变动后的原码

                                  →   -                                                             4  2      

                                              -24 >> 2 结果为 -6

        6)三元(三目)运算符

                   格式:   (表达式)?执行true的结果:执行false的结果;

                   执行流程:  如果表达式 true,执行 ":"左边的结果;如果表达式 false,执行 ":"右边的结果;

                                     例:  求两个数据的最大值

                                                int a =1;

                                                int b = 2;

                                                int c = (a>b)?a:b

                                                System.out.println("最大值:"+c)


5.  键盘录入.

            可以使用键盘输入数据,运行程序得到想要的结果.

           使用步骤:

                        1)导包 : java中只要不是 java.lang包下的类都需要导入;

                                       import java.util.Scanner;(位置在class......上方的行)   

                        2)固定格式 : 创建键盘录入对象(文本扫描对象)

                                        Scanner 对象名 = new Scanner(System.in);

                        3)开始录入数据 :  

                                        例 :  int 类型

                                                int 变量名 = 对象名.nexInt();

                        4)使用变量 : 

                                        例 : int 类型

                                                Scanner s = new Scanner (System.in);

                                                System.out.println("输入第一个数据");

                                                int a = s.nextInt();

                                                System.out.println("输入的数据是:"+a);

                                        例 : String 类型

                                                Scanner s =new Scanner (System.in);

                                                System.out.println("输入一个字符串数据");

                                                String a = s.nextLine();

                                                System.out.println("输入的字符串是:"+a);

                使用注意:

                                1)分别录入两个 int 类型 → ok;

                                2)分别录入两个 String 类型 → ok;

                                3)先录入 String 类型,再录入 int 类型 → ok;

                                4)先录入 int 类型,再录入 String 类型 → ng;

                                        ng : 先录入 int 类型,再录入 String 类型会漏掉第二个数据 String ,因为

                                                录入 int 类型数据后需要 按回车键 → 录入第二个数据,这里回车

                                                键起到了换行的作用.

                                        解决方式a :

                                                  每次在录入字符串之前创建一个新的键盘录入对象.

                                                    例 :  Scanner s = new Scanner (System.in);

                                                            System.out.println("输入第一个数据");

                                                                int a = s.nextInt();

                                                            Scanner s2 = new Scanner (System.in);

                                                            System.out.println("输入第二个数据");

                                                                String b = s2.nextInt();


6.流程控制语句.

            分类:

                        a)顺序结构语句 : 进入主程序后,main 方法被 jvm 调用之后代码一次由上而下执行;

                        b)选择结构语句 : if 语句 / switch 语句;

                        c)循环结构语句 : for 语句 / while 语句 / do-while 语句.

           1)选择结构语句 if :

                  格式 1 :

                                        if(表达式){

                                                语句;

                                  }

                        执行流程 :

                                         1)先判断表达式是否成立;

                                         2)如果成立,执行语句;

                                         3)如果不成立,不执行;

                     格式 2 :

                                        if语句格式2 :

                                                if(表达式){

                                                        语句1;

                                }else{

                                                语句2;

                                }

                         执行流程:

                                        1)首先判断表达式是否成立;

                                        2)如果成立,则执行语句1;

                                        3)如果不成立,执行语句2;

                        格式 3 : 针对多种情况进行判断

                                            if(表达式1){

                                                        语句1;

                                }else if (表达式2){

                                                语句2;

                                  ...

                                  ...

                                  ...

                                }else {

                                                语句n;

                        }

                        执行流程 :

                                        1)首先判断表达式1是否成立;如果成立,则执行语句1;

                                        2)如果不成立,继续判断表达式2是否成立,如果成立,则执行语句2;

                                        ...

                                        ...

                                        ...

                                        如果以上都不成立,最终执行 else 里的语句;

                                        例 : 

                                                if (a>=3 && a<=5){
                                                          System.out.println("是春季");
                                                }else if (a>5 && a<=8){
                                               System.out.println("是夏季");
            
                                                }else if (a>8 && a<=11){
                                               System.out.println("是秋季");
                                               }else if (a>=1 && a<=2){
                                                  System.out.println("是冬季");
                                                } else if (a==12){
                                                           System.out.println("是冬季");
                                                }else {
                                                           System.out.println("无对应季节");
                                                 }
                                          }

              2)选择结构语句 switch :     

                                格式 :  

                                           switch(表达式){

                                            case 值1 :

                                                                语句1;

                                                                break;    

                                          ...

                                          ...

                                        default :

                                                                 语句n;

                                                                break;

                                        }     

                                执行流程 : 

                                                1) 使用 switch 中的表达式结果和 case 的值进行匹配 ;

                                                2) 如果匹配到了 case 的值1,则执行语句 1,break 结束 switch;

                                                3) 如果匹配不到 case 值1,继续匹配 case 值 2 ,匹配则执行语句2;

                                                4) 和各 case 值依次匹配,匹配到就执行想对应的语句;

                                                5) 如果都匹配不到,则执行 default 的语句.

                                注意事项 :

                                                1) case 语句后面的值只能是常量,不能为变量;

                                                2) 每个 case 语句后必须跟 break,否则会导致 case 穿透;

                                                3) switch 语句的结束条件:  

                                                                                        a) 遇见 break 结束;

                                                                                        b) 程序默认执行末尾结束.

                                                4) default 语句可以出现在 switch 语句中的任何位置,如果在语句中

                                                    必须后边跟 break,如果实在语句的末尾可以选择不带 break.

                                                     例 : 

                                                        switch(a){
                                                                    case 1:
                                                                    System.out.println("贝贝");
                                                                    break;
                                                                    case 2:
                                                                    System.out.println("晶晶");
                                                                    break;
                                                                    case 3:
                                                                    System.out.println("欢欢");
                                                                    break;
                                                                    case 4:
                                                                    System.out.println("迎迎");
                                                                    break;
                                                                    case 5 :
                                                                    System.out.println("妮妮");
                                                                    break;
                                                                    default:
                                                                    System.out.println("北京欢迎你");
                                                                    break;
                                                                }


                                                                    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值