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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 许鑫 中级黑马   /  2015-5-22 22:46  /  1469 人查看  /  30 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

常量:
        概述:在程序的运行过程中,其值是不会发生改变的量。
        分类:
                字面值常量;
                        整数常量: 10,20,
                        实数常量: 12.3   21.1
                        字符常量: 用''括起来的一个字符
                                                '1', '2'
                        字符串常量: 用""括起来的内容
                                "123"   "abc"
                        布尔常量:true,false
                        空常量:null(面向对象的时候再讲)

                自定义常量;后边讲。 final
        注意:常量可以直接输出。

进制:
        概述:就是一种进位制,逢几进一,就是几进制。
        对于整数,咱们Java支持一下几种进制形式:
                八进制: 二进制数据,从右往左,每三位一组合,然后计算出组合后的十进制值,然后把十进制的值进行拼接,就是八进制。
                十进制
                十六进制:二进制数据,从右往左,每四位一组合,然后计算出组合后的十进制值,然后把十进制的值进行拼接,就是十六进制。
                注意:从右往左组合的时候,不够用0补齐。
                JDK7以后,咱们Java支持了:二进制
                计算机最基本的存储单位是:字节(byte)。
                一个二进制数据是一个:位(bit)。

                1byte = 8bit;
                1kb = 1024byte;
                1mb = 1024kb
                1gb = 1024mb
                1tb = 1024gb

                进制的表示形式和组成:
                        二进制:数字0,1组成。JDK7.0以后,以0b开头。
                        八进制:数字0-7组成。0开头。
                        十进制:数字0-9组成,开头没有任何表示形式。
                        十六进制:数字0-9,字母a-f组成,以0x开头。

进制之间的一个转换:
        其他进制转成十进制:(12345)
                结果:
                        把 系数*基数^权次幂 相加即可。
                        系数:就是每一位上的数据。
                        基数:几进制,基数就是几。
                        权:把数据从右往左开始编号,并且从0开始,编号就是对应位置数据的权。
                练习题:
                        0b100101 = 1*2^5 + 0 + 0 + 1*2^2 + 1*2^0  = 32 + 4 + 1=37
                        074  = 7*8^1 + 4*8^0 = 60
                        0xf4 = 15*16^1 + 4*16^0 = 240 + 4  = 244

        十进制转成其他进制:
                除基取余,直到商为0,余数反转。
                60  转八
                244 转十六
        进制之间的一个快速转换(掌握):
        8421码:
                1        1        1        1        1        1        1        1
                128 64  32  16  8   4        2        1
        二进制到八进制,十六进制的转换:
                基本做法:
                        先把二进制转成十进制,然后再转成对应的进制。
                简单做法:
                        求八进制:把二进制数据,从右往左,三位一组合求十进制,然后拼接。
                        求十六进制;把二进制数据,从右往左,四位一组合求十进制,然后拼接。
有符号数据的表示形式:
        我们知道,数据是有正负之分的。
        原码:有符号数据的最基本表示形式。最高位是符号位,其他位是数值位。  0表示正数,1表示负数。
        反码:
                正数的反码和原码相同。
                负数的反码和原码不同:
                        规则是:符号位不变,数值位取反,0变1,1变0.
        补码:
                正数的补码和原码相同。
                负数的补码和原码不同:
                        规则是:反码+1
        总结:
                正数的原码,反码,补码都一样。
                负数的不一样。
        注意:
                Java中只有加法,减去一个数字,等于加上这个数字的负数形式。
                记忆:计算中存数的数据都是以补码形式存的。

        1、已知原码(10110100),求反码,补码。
        2、已知补码(11101110),求原码。

       
变量:
        概述:
                1、它就是内存中一小块区域。
                2、该区域要有自己的名称(变量名)和类型(数据类型)
                3、其值是可以在指定区域内不断发生变化的。
        作用:
                某个值可以重复使用。
        格式:
                数据类型 变量名 = 初始化值;
Java里边的数据类型;
        基本数据类型:
                数值类:
                        整数类型:
                                byte 1个字节  -128-127
                                short        2字节
                                int                4字节
                                long        8字节
                        浮点类型:
                                float        4字节
                                double        8字节
                字符类型:
                                char        2字节
                布尔类型
                                boolean        1个字节 这个类比较特殊,他的值只有true和false
        引用数据类型;
                类:class
                接口:interface
                数组:[]
                字符串:String

定义变量并使用:
        数据类型 变量名 = 初始化值;
        定义变量的时候的注意事项;
                1、同一对{}内,不能重复定义同一变量。
                2、定义长整形的时候,数值后边必须加上l或者L。
                3、定义单精度类型的时候,数值后边必须加F或者f。
                4、Java语言采用的Unicode编码,一个字符占2字节。
        记忆:
                默认的整数类型是int,默认的小数类型是double。

java中的类型转换:
        java中可以从任意的基本类型转型到其他的基本类型(boolean除外)。
        自动类型转换:隐式转换
                从小到大。
                byte,short,char --> int --> long --> float --> double
                long是8个字节,float是4个字节,为什么long的范围比float小呢?
                long是整型,float是浮点型,他们再内存中的存储规则不一样,所以long的范围比float小。
                格式:
                        跟定义变量一样。
                        数据类型 变量名 = 初始化值;
        强制类型转换:显示转换
                从大到小。
                只有当我们明确可以转换的时候,才可以使用。
                一般不使用。
                格式:
                        (转换后的数据类型)变量名或者值;

类型转换的两个练习题:
        byte b = (byte)130;
        1、求130的原码。
                00000000 00000000 00000000 10000010
        2、求130的反码。
                00000000 00000000 00000000 10000010
        3、求130的补码,然后在补码上做截取。
                00000000 00000000 00000000 10000010
        4、截取后的新的补码为:10000010
        5、根据第4步的补码求出它的反码。
                10000001
        6、求第5步的反码的原码。
                11111110  ,算出的结果为:-126

面试题:
        byte b1 = 3;
        byte b2 = 4;
        byte b3 = b1 + b2;
        byte b4 = 3 + 4;
        //byte,short,char --> int --> long --> float --> double
        'a'
        总结:
                如果是变量相加,会先提升数据类型,然后在运算。
                如果是常量相加,会直接计算,然后看计算后的结果是否在其所能描述的范围内,如果在,就不报错,不过不在,就报错。

编码表:
        就是字符及其对应的数值组成的一张表。
        ASCII码表:
                是用来描述char类型和int类型的关系的。
                'a':97
                'A':65
                '0':48

运算符:
        概述:用于连接变量或者常量的符号。一般是用来参与运算的。
        算术运算符:
                +,-,*,/ ,%,++,--
                1、整数相除,结果是整数。  10/3*1.0
                        如果想要小数类型的值,参与运算的变量至少有一个是浮点类型。
                2、++或者--
                        单独使用: ++或者--在前,或者在后,效果一致。
                        参与运算:效果不一致,此处以++举例(--效果类似,用法一样)
                                ++在前: 先++,然后在运算(操作)
                                ++在后: 先运算(操作),然后在++
                                作业: int i = 10;
                                           i = i++ + ++i - i-- - --i;

                                           int a = 10;
                                           int b =20;
                                           a++ +b;
          3、+的用法:
                A:如果连接的是两个基本类型(boolean除外),表示 相加。
                B:如果连接两个变量(常量),其中一个是字符串就表示 连接的作用。
                                5+5+"Hello"   -->  10"hello"
                                8+5+"hello"+5   -->  13"hello"5
        赋值运算符:
                =,+=,-=,*=,/=,%=
                此处以+=举例:
                        +=:就是把等号的左边和右边相加,然后吧结果赋值给左边。
                注意:+=,-=,*=,/=,%=这些形式下,等号的左边必须是一个变量。
                short s = 5;
                s = s + 2;  //报错。 会做自动提升数据类型。提升到int
                s += 2;    //不会报错。   s+=2 其实隐含了强制类型转换,它相当于:  s = (short)(s+2);
                发这些   应该没人打我吧
        比较运算符:
                ==, !=, > ,< ,>=,<=
                比较运算符的结果都是boolean类型,要么true,要么false。
                分隔符:
                        分号:表示语句的结束。一行可以写多条语句,但是建议一行只写一条语句。
                        空格:
                                关键字的两端都必须加空格。
                                运算符:可加可不加,建议加上。
                注意:
                        不要把用==的地方,写成了=,否则结果可能不是我们想要的。
               
        逻辑运算符:
        位运算符:
        条件运算符:三元运算符,三元表达式


点评

Very Good!  发表于 2015-5-25 11:35
认真学习继续下去  发表于 2015-5-22 23:04

评分

参与人数 1黑马币 +5 收起 理由
13699266500 + 5 很给力!

查看全部评分

30 个回复

倒序浏览
支持!!总结的很到位!!!
回复 举报
跟着又复习一次 谢谢分享
回复 举报
赞一个!!!
回复 举报
赞一个!!!
回复 举报
不错哟!
回复 举报
可以帮助复习了
回复 举报
复习了一遍,总结不错
回复 举报
彭越 中级黑马 2015-5-24 10:07:13
9#
piaoguoaaaa
回复 举报
总结才能把知识学全,加油!!
回复 举报
很全面。。。。。。。。。
回复 举报
写的好全面
回复 举报
总结的非常好
回复 举报
不错哦。。。
回复 举报
Melo 中级黑马 2015-5-24 20:27:41
15#
基础一定要打好
回复 举报
MTT 来自手机 中级黑马 2015-5-24 21:09:46
16#
不错。加油。 来自: iPhone客户端
回复 举报
加油吧!!!!!
回复 举报
总结的不错,收藏了
回复 举报
很详细呀!加油哦
回复 举报
复习了,不错!
回复 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马