java面试题之数据类型
1.八种基本数据类型及其字节数
整数型
byte:1字节
short:2字节
int:4字节
long:8字节
浮点型
float:4字节
double:8字节
布尔型
Boolean: 1(位)
字符型
char:2字节
2. i++和++i的异同之处
共同点:
1、i++和++i都是变量自增1,都等价于i=i+1
2、如果i++,++i是一条单独的语句,两者没有任何区别
3、i++和++i的使用仅仅针对变量。5++和++5会报错,因为5不是变量。
不同点:
i++ :先运算后增1
++i :先增1后运算
3. &和&&的区别和联系
共同点:当运算符两边是boolean类型变量时,&和&&都可以用作逻辑与运算符,表示逻辑与(and),当运算符两边的表达式的结果或操作数都为true时,整个运算结果才为true,否则,只要有一方为false,结果都为false。
不同点:
(1)、&称为逻辑与运算符,&&称为短路与运算符,也可叫逻辑与运算符。对于&:无论任何情况,&两边的操作数或表达式都会参与计算。对于&&:当&&左边的操作数为false或左边表达式结果为false时,&&右边的操作数或表达式将不参与计算,此时最终结果都为false
(2)&还可以用作位运算符
4.用最有效率的方法算出2乘以8等于多少
使用位运算来实现效率最高。对于位运算符“<<”, 是将一个数左移n位,就相当于乘以了2的n次方,那么,一个数乘以8只要将其左移3位即可,位运算cpu直接支持的,效率最高。所以,2乘以8等于几的最效率的方法是2 << 3
5.基本数据类型的类型转换规则
基本类型转换分为自动转换和强制转换。自动转换规则:容量小的数据类型可以自动转换成容量大的数据类型,也可以说低级自动向高级转换。这儿的容量指的不是字节数,而是指类型表述的范围。
![image-20200909185219714](https://images.cnblogs.com/cnblogs_com/linanana/1616119/o_200909105742image-20200909185219714.png)
强制转换规则:高级变为低级需要强制转换。
如何转换:
(1)赋值运算符“=”右边的转换,先自动转换成表达式中级别最高的数据类型,再进行运算。(2)赋值运算符“=”两侧的转换,若左边级别>右边级别,会自动转换;若左边级别== 右边级别,不用转换;若左边级别< 右边级别,需强制转换。
(3)可以将整型常量直接赋值给byte, short, char等类型变量,而不需要进行强制类型转换,前提是不超出其表述范围,否则必须进行强制转换。
本文来自博客园,作者:与乐i,转载请注明原文链接:https://www.cnblogs.com/linanana/p/13640661.html