以下内容并非博主亲身经历的面试问题,只是对网络中的面经做一个总结、记录。

基础篇


1-01-JAVA中的几种基本数据类型是什么,各自占用多少字节?
1-02-String类能被继承吗,为什么?
1-03-final的用途
1-04-String,Stringbuffer,StringBuilder的区别?
1-05-ArrayList和LinkedList有什么区别?
1-06-讲讲类的实例化顺序,比如父类静态数据,构造函数,字段,子类静态数据,构造函数,字段,当new的时候,他们的执行顺序。
1-07-用过哪些Map类,都有什么区别,HashMap是线程安全的吗,并发下使用的Map是什么,他们内部原理分别是什么,比如存储方式,hashcode,扩容,默认容量等。
1-08-JAVA8的ConcurrentHashMap为什么放弃了分段锁,有什么问题吗,如果你来设计,你如何设计。
1-09-ConcurrentHashMap-JDK1-8-为什么要使用synchronized而不是如ReentranLock这样的可重入锁?
1-10-有没有有顺序的Map实现类,如果有,他们是怎么保证有序的?
1-11-抽象类和接口的区别,类可以继承多个类么,接口可以继承多个接口么,可以实现多个接口么?
1-12-继承和聚合的区别在哪?
1-13-什么是IO模型?有哪些,讲讲你理解的nio-,他和bio,aio的区别是啥,谈谈reactor模型。
1-14-反射的原理,反射创建类实例的三种方式是什么?
1-15-反射中,Class-forName和ClassLoader区别
1-16-描述动态代理的几种实现方式,分别说出相应的优缺点
1-17-jdk动态代理与cglib动态代理的区
1-18-写出三种单例模式的实现
1-19-请结合OO设计理念,谈谈访问修饰符public、private、protected、default在应用设计中的作用
1-20-深拷贝和浅拷贝区别
1-21-如何在父类中为子类自动完成所有的hashcode和equals实现?这么做有何优劣?
1-22-说一说你对java-lang-Object对象中hashCode和equals方法的理解。在什么场景下需要重新实现这两个方法。
1-23-有没有可能2个不相等的对象有相同的hashcode。
1-24-这样的a-hashcode-有什么用,与a-equals-b-有什么关系。
1-25-数组和链表数据结构描述,各自的时间复杂度。
1-26-error和exception的区别,CheckedException,RuntimeException的区别。
1-27-常见运行时异常-RuntimeException
1-28-常见非运行时异常-CheckedException
1-29-常见错误-Error
1-30-在自己的代码中,如果创建一个java-lang-String类,这个类是否可以被类加载器加载?为什么?
1-31-什么是向下转型和向上转型
1-32-在jdk1-5中,引入了泛型,泛型的存在是用来解决什么问题。
1-33-Java中的HashSet内部是如何工作的。
1-34-什么是序列化,怎么序列化,为什么序列化,反序列化会遇到什么问题,如何解决?
1-35-java8的新特性