1、HashMap和HashTable的区别?
hashMap的key是无序、唯一的,value是无序、不唯一的,且允许key和value为null;hashTable的key和value都不允许为null;
补充:TreeMap仅允许value为null,且是有序的;LinkedHashMap,有序的hashMap,速度快。
2、HashSet与TreeSet的区别?
hashSet采用HashTbale哈希表存储结构,操作速度快,但是无序的;treeSet采用二叉树(红黑树)的存储结构,有序,查询速度比hashSet慢一些。
补充:LinkedHashSet采用哈希表的存储结构,同时采用链表维护次序。
3、springcloud的核心组件和功能
微服务注册中心(Eureka,nacos,zookeeper):在服务启动时,进行服务注册。
声明式web服务客户端(Feign):根据注解和选择的机器进行URL地址拼接
负载均衡(Ribbon):做负载均衡,选择一个服务机器。
熔断,降级和隔断(Hystrix):实现不同服务调用的隔离,避免服务雪崩问题
微服务网关(Zuul):前端调用后端需要通关网关
4、当kafka产生数据积压,消费速度慢,我们该如何解决?
·增加消费者数量
·调整消费者配置:优化缓存,增加批量拉取大小等
·增加分区数量
·使用kafka副本,防止数据丢失
5、java的二叉树的实现
public int data;//数据
public Node leftNode;//左节点
public Node rightNode;//右节点
6、单例模式懒汉式和饿汉式的实现
懒汉式:
pubic class Singleton {
private static Singleton instance = null;
private Singleton(){
}
public static synchronized Singleton getInstance(){
if(instance == null){
instance = new Singleton();
}
return instance;
}
}
饿汉式:
public class Sinleton{
private static Singleton instance = new Singleton();
private Singleton(){
}
public static Singleton getInstance(){
return instance;
}
}