Java基础面试

这篇博客详细介绍了Java面试中常见的基础问题,包括数据类型、引用类型、运算符、字符串、==与equals的区别、集合框架以及异常处理等内容。讨论了如float与long的存储差异、Integer与int的区别、浮点数精度问题、类型转换、字符串操作以及集合中的HashMap、ArrayList等的特性和使用注意事项。同时,还探讨了如何处理哈希碰撞和异常处理策略。
摘要由CSDN通过智能技术生成

目录

  1. 返回首页
  2. 数据类型
  3. 引用类型
  4. 运算符
  5. 字符串
  6. ==和equals
  7. JAVA集合
  8. 异常

JAVA数据类型

一、java的数据类型有哪些?

基本数据类型有四类八种:
整型:byte(1字节)、short(2字节)、int(4字节)、long(8字节)
浮点型:float(4字节)、double(8字节)
字符型:char(2字节)
布尔型:boolean(1位)
引用类型:类class、接口interface、数组[]

二、float和long哪个存放的数据更大,为什么?

Float存放的更大,因为虽然float占用4个字节,long占用8个字节,但是float存储结构不同, 是把32位分成了两部分,一部分存放阶码(左移位数的2进制表示,等价于10进制指数),一部分存放尾数(移动后小数点后面的数字,等价于10进制底数)。

三、Integer和int的区别

  1. Integer是int的包装类,int则是java的一种基本数据类型
  2. Integer变量必须实例化后才能使用,而int变量不需要
  3. Integer实际是对象的引用,当new一个Integer时,实际上是生成一个指针指向此对象;而int则是直接存储数据值;
  4. Integer的默认值是null,int的默认值是0;

四、可不可以使用char来存汉字?

可以,因为char是2个字节,汉字也是2个字节

五、i一定小于i+1吗?

不一定,如byte i = 127,加完之后结果为-128

六、Java类型转换

  • 自动转换(小转大/子类转父类):byte,short,char——>int——>long——>float——>double; byte,short,char相互之间不转换,他们参与运算首先转换为int类型 ;boolean类型不参与转换。
  • 强制转换:目标类型 变量名=(目标类型)(被转换的数据),可能会丢失精度;

七、Double a=0.09+0.01的结果是多少?怎么处理?

结果不是0.1,会丢失精度,用BigDecimal,注意使用字符串进行构造,如new BigDecimal(“0.09”);同样大整形的时候可以使用BigInteger。
浮点数转二进制,是把小数点后面的值一直*2,一直到小数点后面为0结束,如果到了小数的底数表示的位数的时候还没有结束,就会直接丢失。

八、short s= 1; s=s+1有问题没有?s+=1;有没有问题?

第一个有问题,第二个没问题,因为+=做了特殊处理,相当于+完之后强转了

九、请输出下面的结果(包装类和基本类型)

int a = 128;
int b = 128;
System.out.println(a == b); //①

Integer a1 = 128;
Integer b1 = 128;
System.out.println(a1 == b1); //②

Integer a2 = 127;
Integer b2 = 127;
System.out.println(a2 == b2); //③

解析:对于①,由于a和b都是基本数据类型,==对比的时候采用的是值对比,所以相同,打印true
对于②和③,由于是对包装类型进行对于,所以比较的是引用,然后,对于整数,12

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值