博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
01~06变量与常量
阅读量:6473 次
发布时间:2019-06-23

本文共 2642 字,大约阅读时间需要 8 分钟。

package test.面试题;public class Test1 {    public static void main(String[] args){        byte b1=3,b2=4,b;        /*          b=b1+b2;          因为在进行运算之前会进行类型的提升,将两个byte都转化成为int进行运算,所以得到的值是int型的,不能用byte接受         */        b=3+4;        /*         不会报错,针对变量的运算会先进性类型的判断再将运行的结构进行类型的判断         如果是针对常量的的运算,使用的是先进行值得运算,再判断值是不是在类型的区间内,进行类型判断,byte可以接受7         */        /**         * byte short lontg之间的运算直接转成int再运算         */            }}
package test.面试题;import java.io.ObjectInputStream.GetField;public class Test2 {    public static void main(String[] args){        /*        byte b=130;会报错吗?如何让它不报错,然后得到的结果是什么?        */        /* 130>127,所以报错,范围超出! 让它不报错,强制类型转换成byte就好了           byte b=(byte)130;           强转成byte类型,就是截取长度,可能丢失精度           首先写出130的int类型的补码,计算机里面存储的是补码。正数的原补反相等,130=128+2,           00000000 00000000 00000000 10000010           得到10000010 这是补码,           转换成为原码           反码:  1 0000001           原码:  1 1111110  0 1111111为127,所以1111110=-126                               * */        byte b=(byte)130;        System.out.println(b);            }}
package test.面试题;public class Test3 {    /**     * Java中char可以存储中文汉字吗?     * 可以,因为char占两个字节。汉字占位两个字节,Java中使用的是Unicode编码     */}
package test.面试题;public class Test4 {    /**     * short s=1;s=s+1;s+=1;     *      * @param args     */    public static void main(String[] args){        /**         * 第一句是将常量1赋值给s,1在short的范围内,没有问题         * 第二句是将s和1的相加的运算结果赋值给s,因为short byte char在进行运算的时候自动转换成为int类型,所以右边得到的是int类型会产生错误,可能损失精度         * 第三句不会报错,这点注意:虽然在值得方面s+=1和s=s+1没有区别,但是其实s+=1这种语句隐含了一个强制类型转换,s+=1相当于s=(s的数据类型)(s+1);         */    }}
package test.面试题;public class Test5 {    public static void main(String[] args){        /**         * a=x,b=y;进行a和b的互相转换,多种方法。         * 这里以a=10,b=20为例子         */        /**         一:中间介质法:             int a=10,b=20;             int c=a;             int a=b;             int b=c;             System.out.println("a="+a+"\tb="+b);                     二:加减运算:            int a=10,b=20;            a=a+b;            b=a-b;            a=a-b;            System.out.println("a="+a+"\tb="+b);                    三:位异或达到:              a=a^b;                 b=a^b;              a=a^b;                            分析: a=x,b=y              a=x^y;              b=x^y^y=x;              a=x^y^x=y;                    四:一句话搞定:              a=a+b-(b=a);              解读:              相当于b1=b,b=a;a=a+b1-b;              也就是第一种的整合版本         */        int a=10,b=20;        a=a+b-(b=a);        System.out.println("a="+a+"\tb="+b);    }}
package test.面试题;public class Test6 {    /**     怎么最快算出2*8的值          答:2>>>3     计算机底层使用的是补码进行运算     >>>比>>少一步判断     */    }

 

转载地址:http://hfvko.baihongyu.com/

你可能感兴趣的文章
eBay通过事件溯源实现持续交付
查看>>
Google开源了Abseil,为C++和Python开发提供支持
查看>>
亚马逊发布新的AWS Step Functions集成
查看>>
Scala在挖财的应用实践
查看>>
区块链和数据科学:如果同时应用这两种技术,将会实现什么?
查看>>
天机阁——全链路跟踪系统设计与实现
查看>>
跳一跳作弊器上榜!GitHub 2018年十大新开源项目揭晓
查看>>
如何通过解决精益问题提高敏捷团队生产力
查看>>
机器学习工程师职位正在消失
查看>>
Docker再曝安全漏洞,这次是PWD的问题
查看>>
如何利用PostgreSQL的延迟复制实现灾备
查看>>
ChaosConf 2018:混沌实验的演变
查看>>
微软对macOS和Linux开放量子开发工具集
查看>>
区块链安全:2019年我们走了多远?
查看>>
聪明的头脑+有趣的灵魂,揭秘腾讯云最暖智能酒店解决方案
查看>>
通过XAML Islands使Windows桌面应用程序现代化
查看>>
老肖有话说:雾霾天带你看清Crane技术实现之路
查看>>
Bootstrap 之 Metronic 模板的学习之路 - (7)GULP 前端自动化工具
查看>>
ES6 + Webpack + React + Babel 如何在低版本浏览器上愉快的玩耍(下)
查看>>
Vuex使用总结
查看>>