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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 lizihanglove 于 2016-6-22 00:43 编辑

   第二天知识总结,有遗漏或不足之处、请指正!
Day2
一、常量
    1、  字面值常量
         A、 字符串常量:用双引号包含的内容
         B、 整数常量:整数
         C、 小数常量:小数
         D、 字符常量:单引号,包含单个字符(数字、字母、符号)
         E、  布尔常量:只能为true 或false
         F、  空常量:null
      2、  自定义常量

二、进制
       进制是一种规定的进位方法。

      1、  十进制
      2、  二进制
             以0b(可大小写)开头
             1字节(byte) = 8位(bit)
             1k = 1024 byte
             1m = 1024 k
             1g = 1024 m
             1t = 1024g
      3、  八进制
             每三个二进制表示一个八进制,由0~7组成、以0开头
      4、  十六进制
              每四个二进制表示一个十六进制,由0~9及a~f组成,以0x(可大小写)开头

注意:进制越大,长度越短
      5、  进制的转换
                   12345=1*10^4+2*10^3+3*10^2+4*10^1+5*10^0
                  系数:数位上的值
                   基数:X进制,则基数是X
                   权次幂:自右向左,从一开始编号,对应得到权。
             A、其他进制转换成十进制
                  把系数*基数的权次幂相加即可:如ob111 = 1*2^2+1*2^1+1*2^0=7
             B、十进制转换为其他进制
                  除基(目标进制的基)倒取余数
             C、任意进制转任意进制,了解8421码
      6、原码反码补码
             原码---------(取反)---------反码------------(+1)------------补码
             补码---------(-1)------反码--------------(取反)--------------原码
三、变量
     变量:在程序中,在某个范围内,其值可以改变的量。
      1、  变量定义格式:
              数据类型 变量名(合法标识符) = 变量值;
       2、  数据类型:
         (1)      基本数据类型(8种)
              A、 整数型
                  Byte、1字节
                  short、2字节
                  int、4字节(系统默认的整数型)
                 long、8字节

注意:使用long类型的值时,应该使用大写的L以区分阿拉伯数字1与小写字母l.
              B、 浮点型
                 Float、4字节,使用F(或f)标识。
                 Double、8字节(系统默认的浮点型)
              C、 字符型
                Char、2字节
             D、 布尔型
                Boolean
               理论上是占八分之一个字节,因为一个开关就可以决定是true和false了,但是java中boolean类型没有明确指定他的大小

注意:使用longfloat时,必须使用L(l)F(f)等标识区分,否则出错。

        (2)      引用数据类型
    3、  注意事项:
            A、 同一作用域不能定义同名变量;
            B、 局部变量先赋值再使用
    4、  数据类型转换
      A、 隐式转换(自动)
            Int x = 3;
            Byte b = 4;
            x = x + b;
                 x的结果为7。

注意:小的数据类型向大的数据类型转换时为自动数据类型转换。

       B、 显示转换(强制)
             Int x = 3;
             Byte b = 4;
             b= x + b;
              编译出现错误,会损失精度。
                正常情况下改为b=(byte)(x + b);即可编译通过。

注意:大的数据类型向小的数据类型转换时为强制数据类型转换。
       C、 越界转换:
             byte b = 126;
             b =(byte)(b + 4);
              b的结果为-126.运算时,通常会使用补码。
    5、  变量相加与常量相加的区别:(面试题)
            Byte b1 = 3;
            Byte b2 = 4
            Byte b3 = b1 +b2
                    此时,编译出错。Byte在运算时会自动提升为int类型。

             Byte b = 3 + 4;
                   此时不会出错,这是由于常量优化机制
   6、  比较float与long取值范围的比较:float比long的取值范围要大.
   7、  基本数据类型范围提升如下:

              Byte>short>char>int>long>float>double

   8、  字符和字符串参与运算:
       A、 字符:’a’、’a’+1、(char)(‘a’+1)。char +int/long/float/double时会自动类型转换
       B、 字符串:”hello”+’a’+1、”5+5=”+5+5、”5+5=”+(5+5)。

注意:任何数据类型与字符串相加时会成为新的字符串。
   9、  ASCII码中char字符与int(0~65535)类型一一对应。

四、运算符
   1、  分类:算术运算符、赋值运算符、
   2、  算数运算符
       A、+:作用有三个,分别是正号、加号、字符串连接符。
       B 、-:减号
       C、*:乘号
       D、/:获得商
       E、%:获得余数,结果的正负号只与%的左边有关,与右边无关。
       F、自加(++)与自减(--):
          若单独使用,则a++与++a都是指a = a + 1;若混合(参与其他运算)使用,则a++的操作是先取出其原值,再将其自加1;++a是先自加1,再取出其值参与其他操作。

           特例:int a = 1;
                    a = a++;
                    System.out.prinln(a);
                    结果为1.
               面试题:Byte b =10;
                             b++;    //对,++是运算符,会强转。
                             b=b+1;   //错,运算时,类型会自动提升。

   3、  赋值运算符(=):将右常量赋给左变量。

注意:一定是左边变量,右边值。

               +=:功能与++相似。
                面试题:
               short s = 1;
               s = s + 1;
                  错误:数据类型自动提升为int,与s的数据类型有冲突。
                short s = 1;
                s+=s;
                对:+=是运算符,强制类型转换。
   4、  关系运算符:
        A、==:==是比较运算符,区别于=。
        B、!=:
        C、>:
        D、>=:
        E、<:
        F、<=:

注意:关系运算符运算结果为true 或者 false

2 个回复

倒序浏览
总结的很到位!
回复 使用道具 举报
总结的很到位!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马