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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 牧歌 中级黑马   /  2014-12-15 23:17  /  1405 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

常量与变量
常量:指在程序的运行过程中,其值是不会发生改变的量。
表示方式:
        A:字面值常量
                整数常量:123, -45
                实数常量:12.345, 56.0
                字符常量:用''括起来的一个数据
                        'A', 'a', '1'
                字符串常量:用""括起来的数据
                        "helloworld", "abc"
                布尔常量:true, false
                空常量:null
        B:自定义常量

整数的三种表示形式
        八进制
        十进制
        十六进制
进制:就是进位制,是人们规定的一种进位方法,对于任何一种进制--X进制,就表示某一个位置上的数运算时是逢X进一位。二进制就是逢二进一,八进制是逢八进一,十进制是逢十进一,十六进制是逢十六进一。

字节数据是计算机表示(存储和传输)的最基本单位。

1个二进制数据被称为位。bit
        1 字节 byte = 8bit
        1k = 1024byte
        1M = 1024K
        1G = 1024M
        1T = 1024G

二进制:由数字0,1组成,JDK7以后,用0b开头表示。00b1101
八进制:由数字0-7组成,用0天头表示。045
十进制:由数字0-9组成,没有任何表示
十六进制:0-9,A-F表示。用0x表示。


有符号数据的三种表示形式:原码,反码,补码。
数据是有正、负之分的。
在计算机中所有的数据都是以补码的形式存在。
给出两个数据7和-7,我们来计算:
原码:其实就是有符号数据的最基本表示形式,最高位是符号位,其它位是数据位。0表示正,1表示负。
又由于数据在计算机中都是二进制的,所以首先第一步,我们要计算出7这个十进制数据的二进制表示形式:
        111
7的原码:
        0 0000111
-7的原码:
        1 0000111
       
反码:正数的反码和原码相同,负数的反码和原码不同,规则是,除去符号位,其它数值位取反,0变1,1变0。
7的反码:
        0 0000111
-7的反码:
        1 1111000

补码:正数的补码和原码相同,负数的补码和原码不同,规则是,反码+1.
7的补码:
        0 0000111
-7的补码:
        1 1111001






常量与变量
变量的概念:
        内存中的一小块区域
        该区域内有自己的名称(变量名)和类型(数据类型)
        该区域的数据可以在同一类型范围内不断变化
为什么要定义变量:
        用来不断的存放同一类型的常量,并可以重复使用。
使用变量注意:
        变量的作用范围(一对{}之间有效)
        初始化值
定义变量的格式:
        数据类型 变量名 =  初始化值
理解:变量就如同数学中的未知数。

数据类型:
        基本类型,4类8种。
       
        整数:
                byte         1
                short        2
                int        4
                long        8
        浮点:
                float        4
                double         8
        字符:
                char        2        Java 中的字符采用的的是Unicode编码。
        布尔:
                boolean        不明确,可以认为1一个字节。
        区别:占用内存空间不一样,它们的表示数据范围也是不一样的。
       

单精度类型:7-8位的有效数字,定义单精度类型的时候,必须加后缀:f或者F.
双精度类型:15-16位的有效数字。

运算符:
在运算的过程中,一般要求类型一致。如果遇到不一致的情况,就会有类型转换问题。

在参与运算的过程 中:
隐式转换(从小到大)
        byte, short, char -- int -- long -- float -- double
        注意:long是8个字节,float是4个字节。
                long是整数,float是浮点数,整数和浮点数的存储规则不一样。
                long的范围是小于float的。
强制类型转换(从大小到)
        如果你明确知道数据是可以表示,就可以用强制类型转换。
        格式:(转换后数据类型)变量或者值
       
        一般情况下,根本不推荐使用。在使用数据的时候,尽量使用该数据类型能够表示的范围。

       


Java中可以从任意基本类型转型到另外的基本类型
例外-->boolean类型不可以转换为其他的数据类型。
自动类型转换(也叫隐式类型转换)
强制类型转换(也叫显式类型转换)
转换为会默认转换和强制转换,什么时候要用强制类型转换?
表示式的数据类型自动提升:
        所有的byte型、short型、和char的值将被提升到int型。
        如果一个操作数是long型,计算结果就是long型。
        如果一个操作数是floast型,计算结果就是float型.
        如果一个操作数是double型,计算结果就是double型。

面试题:
/*
b1 + b2在参与运算的时候,首先会自动转换成int类型。
在这个时候,b1和b2其实都被提升了类型。
所以,他闪的计算结果也应该是int类型。
最终,就相当于直接把int类型赋值给byte类型,所以,会有精度的损失。

如果参与运算的是常量,编译器会先计算值,在看该值是否是左边能够表示的范围。
如果是,就不报错。
*/
class VariableDemo4
{
        public static void main(String []args)
        {
                byte b1 = 3;
                byte b2 = 4;
                byte b3 = b1 + b2;
                byte b4 = 3 + 4;
                System.out.println(b3);
                System.out.println(b4);
        }
}


运算符:就是把变量或者常量 进行连接的符号,一般是参与元素的符号。
算术运算符:
        +、-、*、/
整数相除,结果只能是整数。
如果你想要小数,那么参与去处的数据必须有一个是浮点数类型。

%:取得余数
        左边的数据大于右边,结果是余数。
        左边的数据小于右边,结果是左边。
        左边的数据等于右边,结果是0.
       
        符号跟左边一致。
       
++、--运算符
        单独使用,++或者--放在操作数据的前面或者后面效果一致。
        参与运算使用:前后不一致,前,会先++/--,后,是后++/--
       
+号可以作为字符串连接符使用。

赋值去运算符:
        把右边的数据赋值给左边的变量。
        举例:int a = 10;
       
        念法:把10赋值给左边的int类型的变量a。
       
       
面试题:
/*
虽然a+=20和a=a+20效果等价,但是还是有些区别。
+=这种赋值运算符,其实隐含了强制类型转换功能。
也就是说:
        short s = 5;
        s += 2;
        等价于
        s = (short) (s + 2);
       
赋值运算符的左边必须是一个变量。
        5+=3;不可以。
        a+=3;这是可以的。
*/
        short s = 5;
        s = s + 2; //报错
        s += 2;


比较运算符:比较运算符的结果都是boolean型,也就是要么是true,要么是false。
        ==, !=, >, >=, <, <=


表达式:用去处符连接的式式(由变量、常量组成)。
        a + b 算术表达式
        5 > 4 比较表达式

逻辑运算符:
        用于连接结果是布尔型表达式的运算。
       
        & 逻辑与,并且。有假则假。
        | 逻辑或,或者。有真则真。
        ! 逻辑非,不是。针对一个表达式的操作。
                        以前真,现在假;以前假,现在真。
        ^ 逻辑异或,相同为假,不同为真。
       
        如果从结果看,单&和双&以及单|和双|的效果一样。那么它们的区别在哪里呢?
       
        && 如果前面出现了false,后面将不再执行。
        || 如果前面出现了true,后面将不再执行。
       
        && 短路与
        || 短路或
       
        开发常用:&&, ||, !
       

评分

参与人数 1技术分 +1 收起 理由
杨佳名 + 1

查看全部评分

8 个回复

倒序浏览
感谢分享
回复 使用道具 举报
顶顶,嘿嘿
回复 使用道具 举报
不错不错
回复 使用道具 举报
哥,你总结的很认真呀?
回复 使用道具 举报
兄弟,辛苦了。这么好的笔记。。有空请你吃饭。
回复 使用道具 举报
沙子 来自手机 中级黑马 2014-12-16 07:29:20
7#
不错,学得很努力,也很,加油。
回复 使用道具 举报
taany 中级黑马 2014-12-16 08:57:15
8#
非常认真努力,加油
回复 使用道具 举报
总结的真详细啊
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马