A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 任有智双元 中级黑马   /  2015-7-27 23:31  /  475 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1. 回顾
        1) 开发环境自己必须能独立搭建.
       
        2) 关键字: 被java语言赋予了特殊含义的单词,全部小写.
       
        3) 标识符:
                取值范围:
                        26个英文字母大小写、数字0-9、下划线 _ 和美元符 $
                        并且不能以数字开头。
                注意事项:
                        命名时要符合见名知意和驼峰命名的原则。
               
2. 常量
                概念:
                        值在程序运行过程中不发生改变的量。
               
                整数常量       
                        比如: 10 -20
                实数常量
                        比如: 1.5   12.8
                字符常量:
                        比如: 'a'  'D'  '中'
                字符串常量:
                        比如: "helloworld"
                布尔常量:
                        只有两个值:true和false
                空常量:
                        null (引用数据类型)
               
                注意:
                        常量可以被输出语句直接输出.
                       
3. 计算机中数据存储和传输的单位
        数据存储和传输的最小单位 bit  (比特)
       
        数据存储和传输的最基本单位 byte (字节)  1byte = 8bit

4. 其他进制到十进制的转换
        系数乘以基数的权次幂, 结果相加.
       
        练习:
        把下面进制数用十进制表示
                0b100101  -- 37
                074        -- 60
                0xf4 -- 244
       
5. 十进制到其他进制的转换
        除以基数 取余数 直到商为0, 余数反转.
       
        练习:
                把下面2个数转换成八进制和十六进制
                60 -- 74 -- 3c
                244 -- 364 -- f4
       
6. 快速转换
        8421码
       
        二进制到八进制  从右到左 三位一组合,算十进制,结果拼接
        二进制到十六进制 从右到左 四位一组合,算十进制,结果拼接
               
7. 有符号数据的表示
        计算机中的数据都是以补码形式存在.
        正数:
                原码 反码 补码 都一样
        负数:
                反码是原码 符号位不变,数值位取反
                补码是反码加1
        练习:       
                1、已知原码(10110100),求反码,补码。
                2、已知补码(11101110),求原码.
               
8. 变量
        内存中一小块区域,应该有自己的变量名和数据类型,它可以在同一数据类型范围内不断变化.
        格式:
                数据类型 变量名 = 初始化值;
               
        变形格式:
                数据类型 变量名;
                变量名 = 初始化值; // 在使用前进行初始化即可
        注意: 变量在使用前必须进行初始化.
               
9. 基本数据类型
                4类8种 :
                整数型
                        byte -- 1个字节 : -128 ~ 127
                        short -- 2个字节 : -2^15 ~ 2^15 - 1
                        int -- 4个字节 : -2^31 ~ 2^31 - 1
                        long -- 8个字节 :
                浮点型
                        float -- 4个字节
                        double -- 8字节
                字符型
                        char -- 2个字节
                        'a' 'D' '中'
                布尔型
                        boolean
                        只有两个值: true  false
               
                整形默认是int,浮点型默认是double型.
               
        注意事项:
                1) 在一个{}内,不能存在重名的变量
                2) 变量要先初始化再使用(在使用之前初始化即可)
                3) 为某一个变量赋值的时候尽量不要超过其能表示的范围. 也就是说如果想定义byte或者short类型, 那么保证数据在相应的范围内即可.
                4) 变量名称的定义要见名之意,不要写一写容易混淆的
                5) 定义long类型或者单精度浮点型变量的时候,一定要在数据的后面加L或者加F (防止混淆,建议大家采用大写)
               
10. 数据类型转换
        自动类型转换(隐式转换)
                byte char short  -- int  -- long -- float -- double
        强制类型转换(显式转换)
                (数据类型) 变量或者常量值;
        注意问题:
                1) 当参与运算的多个数据类型不一致时,参与运算的值会自动转换成范围最大的那个类型然后运算.
                2) 而强制类型转换必须保证数据在想转成的数据类型范围内.
                3) boolean类型不可以转换成其他类型.
               
        强制类型转换的结果:
                以byte为例:
                1) 拿到数据后先获取其补码;
                2) 然后截取最后8位,得到的是补码;
                3) 再通过补码获取其原码, 最后显示给我们的数据是原码的十进制形式.
                注意: 计算机中的数据运算都是以补码的形式进行的.
                例如:
                        byte b1 = (byte)140; // -116
                分析:
                        140的原码:
                                00000000 00000000 00000000 10001100
                        这是一个正数,所以其补码也是:
                                00000000 00000000 00000000 10001100
                        做强制类型转换,截取最后8位,得到的是补码:
                                10001100
                        观察到这是一个负数,所以想获取其原码,先得到反码(补码减1):
                                10001011
                        最后获取原码(反码的符号位不变,数值位取反):
                                11110100
                        这是数的十进制是:
                                -116
                       
        补充: 最小的byte类型数据是 -128        它的二进制表示形式是:1000 0000
       
        关于byte面试题:
                byte b1 = 3;
                byte b2 = 4;
                byte b3 = b1 + b2; // 此行会报错,因为参与运算的byte类型会自动提升为int类型, 可能损失精度.
                byte b4 = 3 + 4; // 没问题,对于字面值常量3和4, jvm会在编译期对其进行计算(优化), 并比较其值是否在byte范围内,如果未超出,则不报错.
       
        上述面试题与下面关于字符串的面试题(模样长得差不多),经常被问到:
                String s1 = "a";
                String s2 = "b";
                String s3 = "ab";
                System.out.println(s3 == s1 + s2); // false
                System.out.println(s3 == "a" + "b"); // true
       
        ASCII 码表概述:
                'a' -- 97
                'A' -- 65
                '0' -- 48
               
11. 算术运算符

        注意除运算符 / :
                1) 除数不能为0.
                2) 整形与整形进行运算,结果还是整形.它会将余数舍弃.
                        比如: 5 / 2 -- 结果是2

        ++ 和 -- 运算符:
                以 ++ 为例:
                        单独运算:
                                在前在后都一样,相当于把值加1
                        参与运算:
                                ++在前,先加后用. ++a 相当于 a = a + 1
                                ++在后,先用后加. a++ 会产生一个临时的量, 这个量相当于a的一个副本,然后将a的值自增, 将副本的值返回.
                举例:
                        int x = 10;
                        int y = x++;
                        // 结果是y = 10; x = 11;
                       
                        int a = 10;
                        a = a++;
                        System.out.println(a); // 结果是10
       
        加法运算符的特殊用法:
                + 运算符可以用来做基本数据类型的加.
                也可以作为字符串的连接符 -- 遇到字符串前,会当做算术运算符计算,一旦遇到"", 后面的都是连接符了.
               
12. 赋值运算符
        把运算符右边的值赋值给左边, 那么左边必须是一个变量.
        += : 左右两边相加再赋值给左边.
        short s = 8;
        s+=2; // 相当于 s = (short)(s + 2);
               
13. 比较运算符
        比较运算符的运算结果都是boolean型.
       
14. 逻辑运算符
        & -- 逻辑与 : 有假则假,全真才真
        | -- 逻辑或 : 有真则真,全假才假
        ! -- 逻辑非 : 取反
        ^ -- 逻辑异或: 相同为假, 不同为真
       
        短路与  &&
                结果与单&一致, 前面出现了false,后面就不再判断.
        短路或        ||
       
        格式问题:
                一般在运算符的两端都会有一个空格.
                具体其他很多的格式问题(代码规范),具体的公司会有具体的要求.
       
15. 提醒大家一个问题:
        变量是会变的.
       
        int a = 10;
        int b = 20;
        a = a + b;
        b = a + b;
        sop(a + "***" + b); // 30  50
       
       
       
       
       
       
       
       
       
               
               

2 个回复

倒序浏览
不错赞一个
回复 使用道具 举报
笔记得好认真哦,赞一下
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马