我的面试题积累01

1.Java中的几种基本数据类型是什么,各占几个字节?

整型
	byte 1个字节
	int 4个字节;
	short 2个字节;
	long 8个字节;
字符型
	char 2个字节  一个单一的 16 位 Unicode 字符;
浮点型
	float 4个字节
	double 8个字节
布尔类型
	boolean true和false

2.String类能被继承吗?为什么?

String类不能被继承,因为String类有final修饰符,而final修饰的类是不能被继承的。

**

3.String,StringBuffer,StringBuilder的区别

**
(1)运行速度方面,StringBuilder > StringBuffer > String
String为字符串常量,StringBuilder和StringBuffer为字符串变量
(2)线程安全方面,StringBuilder是线程不安全的,而StringBuffer是线程安全的。除此之外,进行多线程操作时使用StringBuffer较好,而进行单线程操作时使用StringBuilder较好。

**

4.ArrayList和LinkedList的区别

**
(1)ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。
(2)对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。
(3)对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。

**

5.类的实例化顺序,比如父类静态数据,构造函数,字段,子类静态数据,构造函数,字段,当new的时候,其执行顺序。

**
父类静态数据 -> 子类静态数据 -> 父类字段 -> 父类构造函数 -> 子类字段 -> 子类构造函数
补:父类静态成员和静态代码块->子类静态成员和静态代码块->父类非静态成员和非静态代码块->父类构造方法->子类非静态成员和非静态代码块->子类构造方法

**

6.列出5个运行时异常

**
算数异常ArithmeticException、数组下标异常ArrayIndexOutOfBoundsException、空指针异常NullPointerException、类型转换异常ClassCastException、数字格式异常NumberFormatException、非法参数异常IllegalArgumentException
补充编译时异常:类未找到异常ClassNotFoundException、操作数据库异常SQLException、操作输入流和输出流时可能出现的异常IOException、中断异常InterruptedException、字段未找到异常NoSuchFieldException、方法未找到抛出的异常NoSuchMethodException

**

7.Java中的HashSet内部是如何工作的

**
HashSet 的内部采用 HashMap 来实现。由于 Map 需要 key 和 value,所以所有 key 的都有一个默认 value。类似于 HashMap,HashSet 不允许重复的
key,只允许有一个 null key,意思就是 HashSet 中只允许存储一个 null 对象。
补:HashSet实现原理:
①是基于HashMap实现的,默认构造函数是构建一个初始容量为16,负载因子为0.75 的HashMap。封装了一个 HashMap 对象来存储所有的集合元素,所有放入 HashSet 中的集合元素实际上由 HashMap 的 key 来保存,而 HashMap 的 value 则存储了一个 PRESENT,它是一个静态的 Object 对象。

②当我们试图把某个类的对象当成 HashMap的 key,或试图将这个类的对象放入 HashSet 中保存时,重写该类的equals(Object obj)方法和 hashCode() 方法很重要,而且这两个方法的返回值必须保持一致:当该类的两个的 hashCode() 返回值相同时,它们通过 equals() 方法比较也应该返回 true。通常来说,所有参与计算 hashCode() 返回值的关键属性,都应该用于作为 equals() 比较的标准。

③HashSet的其他操作都是基于HashMap的。

自己不是什么IT技术大牛,只是一个在IT行业底层默默打拼的小菜鸟,只是把自己这段时间所学的东西,找了些面试题参考网上帖子博客来做些笔记

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值