• Java初学(二)


    一、数据类型

          在定义Long或者Float类型变量的时候,要加L或f(大小写无关,只是便于识别,建议不要小写L)

          整数默认是int,浮点数默认是double

    二、java字符

         java语言采用的是Unicode编码,java中一个字符占两个字节,故,java中一个字符可以表示一个汉字

    三、运算符

         变量可以使用++或--进行运算,常量不可以,例:10++会报意外类型错误;

       ++和--运算符使用:单独使用时,放在操作数前面和后面都一样

               参与运算使用时,放在操作数前面,先自增或自减,然后再参与运算;放在操作数后面,先参与运算,再自增或自减

        面试题:short s=1;s=s+1;

          short s=1;s+=1;

         以上代码有没有问题,如有请指出,并解释。

         第一个有问题,编译会报“精度丢失”错误,s是short类型,s+1后变成int类型,当int类型的值赋给short类型值时会报错              第二个没有问题,因s+=1赋值运算隐含了强制类型转换,等价于s=(s的数据类型)(s+1)

    四、逻辑运算符

          &与&&区别:单个&,左边无论真假,右边都进行运算;双&,如果左边为真,右边进行运算,如果左边为假,右边不进行运算;双&短路效果int x=2;int y=3; (++x==2&&++y==4)为false,此刻x变为3,而y仍然是3,因双&短路,右边不执行了

          |与||的区别:大致同上

          异或运算符^:两边相同为true,两边不同为false

    五、位运算符

         &、|、^、~(&、|、^当两边是数值时做位运算,当两边是bool值时做逻辑运算)

         &位与运算,有0则0;|位或运算,有1则1;^位异或运算,相同则0,不同则1(特点:某数据被另以数据位异或两次,该数据不变);~按位取反运算符

       面试题:int a=10;int b=20;交换a、b的值

         方法一:借助第三方变量

         方法二:使用位异或运算符(左边a、b、a,右边a^b)

                    a=a^b;
           b=a^b;//b=a^b^b =>b=a
           a=a^b;//a=a^a^b =>a=b

      方法三:用变量相加实现

          a=a+b;//a=30
          b=a-b;//b=10
          a=a-b;//a=20

       方法四:一句话搞定

                   b=(a+b)-(a=b);

    六、位移运算符

         <<:左移,左边最高位丢弃,右边补齐0;计算方法:左边的数据*2的移动次幂。例:3<<2 => 3*2^2=12

       >>:右移,最高位是0左边补齐0,最高位是1左边补齐1;计算方法:左边的数据/2的移动次幂。例:24<<2 => 24/(2^2)=6

       >>>:无符号右移,无论最高位是0还是1,左边补齐0

      面试题:请用最有效率的方式计算2乘以8的结果

                   2<<3 => 2*2^3=2*8

        

  • 相关阅读:
    php配置文件——.user.ini
    php反序列化漏洞
    [极客大挑战 2019]PHP 反序列化
    [极客大挑战 2019]Http http请求头XFF欺骗
    第十章嵌入式Linux的调试技术
    第九章硬件抽象层:HAL
    第八章让开发版发出声音:蜂鸣器驱动
    第七章LED将为我闪烁:控制发光二极管
    第六章第一个Linux驱动程序:统计单词个数
    第五章搭建S3C6410开发板的测试环境
  • 原文地址:https://www.cnblogs.com/hujiapeng/p/4516509.html
Copyright © 2020-2023  润新知