堆与栈的区别很明显:
1.栈内存存储的是局部变量而堆内存存储的是实体;
2.栈内存的更新速度要快于堆内存,因为局部变量的生命周期很短;
3.栈内存存放的变量生命周期一旦结束就会被释放,而堆内存存放的实体会被垃圾回收机制不定时的回收。
集合框架
Map中Hashtable hashMap
hashMap与linkedHashMap的区别,linkedHashMap继承与HashMap,但是在HashMap的基础上又添加了一个双向链表,可以保证键值对的插入顺序,
HashMap是怎么put进去的
List 数据结果,存储元素是可以重复的,有序的
ArrayList
ArrayList的扩容机制
linkedList
Vactor
Set 强调唯一的特性,属性不允许重复
HashSet
linkedHashSet
TreeSet
Map 是由键值对的形式,进行存储数据
HashMap
HashTable
TreeMap
接口与抽象类的区别
interface中只能定义方法,而不能有方法的实现,而在abstract class中则可以既有方法的具体实现,又有没有具体实现的抽象方法
抽象方法
抽象方法可以有静态代码块以及静态方法,抽象方法中只有声明,但是没有具体的实现
抽象方法必须又abstract进行方法修饰,一个类只能继承一个抽象方法,如果抽象方法中添加一个方法,那么所有子类中都将实现该方法
抽象方法只能用public或protected进行方法修饰
抽象类不能进行对象实例,因为是抽象的所以不能进行实例化
接口
一个类可以实现多个接口
接口类中不能有静态代码块以及静态方法,
接口中是可以含有方法以及变量的,接口中的变量会被隐式的修改为public static final,如果用private会编译错误
所以需要利用implements进行修饰类为接口类
比较统一就是,定义一个demo,ABC三个模块,如果A是公共模块,抽象类中只需要修改A即可,不需要改动继承抽象方法的子类,如果是接口类需要进行修改,那么必须要进行修改实现类才可以进行继续编译
基本数据类型类型的字节都占用多少
int long double float boolean char 1 2 4 8 8 4 1 2
Java 基本数据类型最大值极限和最小值极限
springboot的主启动类的配置
双数据源的配置如何实现
消息中间件rabbitMQ如何保证数据不会丢失的情况
spring的面试问题
秒杀项目是如何实现
统计在线人数的dmeo如何实现
过滤器与拦截器的区别
拦截器(Interceptor)是基于Java的反射机制,而过滤器(Filter)是基于函数回调。从灵活性上说拦截器功能更强大些,Filter能做的事情,都能做,而且可以在请求前,请求后执行,比较灵活。Filter主要是针对URL地址做一个编码的事情、过滤掉没用的参数、安全校验(比较泛的,比如登录不登录之类),太细的话,还是建议用interceptor。不过还是根据不同情况选择合适的。