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等类型变量,而不需要进行强制类型转换,前提是不超出其表述范围,否则必须进行强制转换。

感谢那些夸奖和鼓励,那些不经意的惦记和突如其来的善意,热爱世间浪漫万物,沿途也为晚霞驻足,嘻嘻。
原文地址:https://www.cnblogs.com/linanana/p/13640661.html