黑马程序员技术交流社区

标题: 看视频做笔记,边学边敲,告别眼高手低 [打印本页]

作者: QQheima    时间: 2015-6-8 21:45
标题: 看视频做笔记,边学边敲,告别眼高手低
传智播客java基础班听客笔记
/*
        一、进制转换
                二进制:  以0b/0B开头,或以b/B结尾
                八进制:  以数字0开头,或以o/O结尾
                十进制:  以0d/0D开头,或以d/D结尾(通常忽略不写)
                十六进制:以0x/0X开头,或以x/X结尾

                1、任意进制数据到十进制的转换
                        方法:每位乘以基的位权次幂,然后全部相加。
                        a、二进制——>十进制
                                0b0110
                                =0*2^3+1*2^2+1*2^1+0*2^0
                                =0+4+2+0
                                =6
                        b、八进制——>十进制
                                0123
                                =1*8^2+2*8^1+3*8^0
                                =64+16+3
                                =83
                        c、十六进制——>十进制
                                0x2F1
                                =2*16^2+F*16^1+1*16^0
                                =512+240+1
                                =753
                               
                2、十进制数据到任意进制数据的转换
                        方法:除基(进制)取余,直到商为0,余数反转。
                        a、十进制到十进制转化
                                12345—————————————>12345
                                12345 / 10 = 1234....5
                                1234  / 10 = 123.....4
                                123   / 10 = 12......3
                                12    / 10 = 1.......2
                                1     / 10 = 0.......1
                        b、二进制到十进制转换
                                52————————————>110100
                                52 / 2 = 26...0
                                26 / 2 = 13...0
                                13 / 2 = 6....1
                                6  / 2 = 3....0
                                3  / 2 = 1....1
                                1  / 2 = 0....1
                        c、八进制到十进制转换
                        d、十六进制到十进制转换

*/

/*
        二、有符号数据的表示法(正负符号)
                原码,反码,补码

                1、原码:就是二进制定点表示法,即最高位为符号位。
                        “0”表示正数,“1”表示负数,其余位表示数值的大小。
                                符号位                数值位
                        +7        0                        000 0111
                        -7        1                        000 0111

                2、反码:正数的反码与其原码相同;
                        负数的反码是对其原码逐位取反,但符号位除外。
                                符号位                数值位
                        +7        0                        000 0111
                        -7        1                        111 1000

                3、补码:正数的补码与其原码相同;
                        负数的补码是其反码加1。
                                符号位                数值位
                        +7        0                        000 0111
                        -7        1                        111 1001
*/

/*
        三、变量
                1、组成变量的规则:
                        a、需要给内存空间加一个限定,指明要存储的数据类型。
                        b、给该变量(内存空间)起一个名字。
                                命名规则:必须以下划线或字母开头,不能以数字开头。不能以关键字命名。
                        c、给变量赋值。
                2、定义变量需要注意的问题
                        a、作用域
                        变量定义在哪一级大括号中,变量的作用域,就送从变量定义语句起,到这级大括号结束。
                        相同作用域中,不能定义重名的变量。
                        b、定义变量,尽量要初始化。
                        c、不建议一行上定义多个变量。
                       
*/

/*
        四、数据类型
                1、数据类型分类:
                        a、基本数据类型。
                        b、引用数据类型:数组、类、接口。
                2、基本数据类型讲解
                        a、 数值型
                                byte(8bit),short(16bit),int(32bit),long(64bit)
                                byte:-128~127
                                浮点型
                                float(32bit),double(64bit)
                        b、字符型
                                char(16bit) 0~2^16-1=65535
                        c、布尔型
                                boolean(8bit)
               
*/

/*
        五、数据类型转换
                1、隐式转换
                        a、boolean类型不能转换成其他的数据类型。
                        b、转换顺序byte、short、char->int->long->float->double
                        c、byte、short、char之间不转换,他们参与运算首先转换成int型。
                2、强制类型转换
                        格式:目标数据类型 变量名 = (目标数据类型)(待转换的数据)
                        注意事项:尽量不要使用强制类型转换,因为可能存在损失精度的问题。
                3、事例
                        byte b1=3;
                        byte b2=4;
                       
                        byte b3=b1+b2;
                        //错误:可能损失精度
                        //原因:byte、short、char在运算时,首先提升数据类型为int,计算结果也是int类型的。
                       
                        byte b4=3+4;
                        //正确
                        //原因:常量优化机制,编译器会对其做优化处理,先计算出3和4相加的值,然后判断其返回值是否在byte范围内如果在就不报错。

                        //Java语言中的char变量可以存储一个汉字吗?
                        //答:可以。因为char站两个字符,汉字编码也是两个字符。

*/

/*
        六、异类变量加法运算
                1、字符加法
                        ASCII
                                0:48
                                a:97
                                A:60
                2、字符串加法
                        a、任何数与字符串相加,得到的都是一个 新的 字符串
                        b、“+”在运算里表示的是字符串连接符。
                        eg:
                                "5+5="+5+5---->"5+5=55"
                                5+5+"=5+5"---->"10=5+5"
*/

/*
        七、运算符
                算数运算符
                赋值运算符
                比较运算符
                逻辑运算符
                位运算符
                三目运算符

                1、算数运算符
                        +,-,*,/,%,++,--
                        a、'/'除法符号
                                两个整数相除,得到的结果还是整数,取其商。
                                如果想获得浮点数(小数),请用浮点类型变量。
                                eg: int a=7,b=3;
                                        a/b=2;
                        b、'%'取余运算符
                                获取的是除法的余数,结果的正负与左边的数一致。
                                eg: -3%4=-3;
                                        3%-4=3;
                        c、++、--自增(减)运算符
                                ++、--在变量前,变量先自增(减),再参与运算。
                                ++、--在变量后,变量先参与运算,再自增(减)。
                                eg:
                                int x=4;
                                int y=x++;
                                int z=(x++);
                                //结果:x=6,y=4,z=5
                                //疑问:z=(x++)中,小括号内优先级不是最高么,先运行括弧内的运算x++,再赋值给z么?

                2、赋值运算符
                        =,+=,-=,*=,/=,%=
                        注意:变量的左边(被赋值的一方)必须是变量,不能是常量。
                                        复合赋值运算符(+=等),隐含了强制转换。
                                eg:
                                        byte a=1;
                                        a = a+1;//错误,可能损失精度。
                                        a += 1;//正确。
                3、关系运算符
                        ==、!=、<、>、<=、>=、instanceof
*/
  1. class  InToSystemDemo
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 System.out.println("Hello World!");
  6.         }

  7.         public static void sop(Objemect obj){
  8.                 System.out.println(obj);
  9.         }
  10. }

  11. class DataTypeDemo
  12. {
  13.         public static void main(String[] args){
  14.                 byte a = -128;

  15.                 //报错原因:值过大,编译系统默认检测int类型取值范围。
  16.                 long l = 10000000000;
  17.                 long l2 = 10000000000L;

  18.                 //报错原因
  19.                 float f = 3.1415;
  20.                 float f2 = 3.1415f;

  21.                 double d = 3.1415;

  22.         }
  23. }
复制代码








欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2