(面试题)Java入门与基本数据类型(2019年10月8日)

Java入门与基本数据类型(2019年10月8日)
1.问:为什么long l=2000000000可以,而long l=3000000000却编译报错
答:因为在Java中二十亿和三十亿的默认类型都是int类型的,而二十亿是在int范围类的,三十亿不在int范围内,所以后面的long l=300000000会编译报错。解决方法:在三十亿后面加上一个大写或者小写的L

2.问:为什么float f=3.2 会编译报错
答:3.2这种小数在Java种的默认数据类型是double(双精度)类型的,而float是单精度的小数(小数被存储在二进制数据中,其中一部分代表的是小数位还有一部分代表的是整数位,但是float和double一个是双精度一个是单精度,他们对小数的精度定义的方式不同,所以不能直接这样写)。解决方法:在小数3.后边加上一个大写或者小写的f。

3.问:请写出H的字符值
答:首先要知道A的字符值为65,a的字符值为97,然后在推算得出H的字符值为72

4.问:为什么 int a = 09;会报错
答:因为在进制表示中0开头的表示八进制,而八进制中不能出现大于7的数!

每日一练
1,java 基本数据类型有几种?哪几种?(面试题)
整数:byte short int long
小数:float double
字符:char
布尔类型:boolean

2,int类型是几个字节?(面试题)
int有4个字节

3, int i = 3000000000; 编译能通过吗?原因是什么?(面试题)
不能通过,因为三十亿在Java中的默认数据类型为int,而三十亿不在int能够表示的范围内,所以不能编译通过

4,3默认是什么类型?3.14默认是什么类型?(面试题)
3的默认类型为int
3.14的默认类型为double

5,高类型向低类型转换需要强制转换吗?强制转换可能导致什么问题?
需要强制类型转换,可能会造成数据精度丢失或者溢出

6.问:int a=3&4;请问a的值为多少

答:在java中,如果&前后都是数字,那么表示位运算符,按位与:先把十进制的数转化成为二进制,然后按位与,都为1的时候才是1,其余都为0

          同理可知 |在java中也是位运算符,按位或:先把十进制的数转化成为二进制,然后按位与,都为0的时候才是0,其余都为1

posted @ 2019-10-15 11:40  小星星i  阅读(233)  评论(0编辑  收藏  举报