摘要:
Semaphore可以维护当前访问自身的线程个数,并提供了同步机制。使用Semaphore可以控制同时访问资源的线程个数,例如,实现一个文件允许的并发访问数。 Semaphore实现的功能就类似厕所有5个坑,假如有十个人要上厕所,那么同时能有多少个人去上厕所呢?同时只能有5个人能够占用,当5个人中的 阅读全文
摘要:
java.lang.ThreadLocal的作用和原理?列举在哪些程序中见过ThreadLocal的使用? 说明类java.lang.ThreadLocal的作用和原理。列举在哪些程序中见过ThreadLocal的使用? 类java.lang.ThreadLocal的作用 要编写一个多线程安全(Th 阅读全文
摘要:
不是有序的. 有没有有顺序的Map实现类? 有TreeMap和LinkedHashMap。 TreeMap和LinkedHashMap是如何保证它的顺序的? LinkedHashMap 是根据元素增加或者访问的先后顺序进行排序,而 TreeMap是基于元素的固有顺序 (由 Comparator 或者 阅读全文
摘要:
HashMap和Hashtable都实现了Map接口,因此很多特性非常相似。但是,他们有以下不同点: HashMap允许键和值是null,而Hashtable不允许键或者值是null。 Hashtable是同步的,而HashMap不是。因此,HashMap更适合于单线程环境,而Hashtable适合 阅读全文
摘要:
JDK1.7用的链表散列结构,JDK1.8用的红黑树 在扩充HashMap的时候,JDK1.7的重新计算hash, JDK1.7只需要看看原来的hash值新增的那个bit是1还是0就好了,是0的话索引没变,是1的话索引变成“原索引+oldCap; DK1.7中rehash的时候,旧链表迁移新链表的时 阅读全文
摘要:
GC是垃圾收集的意思,Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的,从而有效的防止内存泄露。要请求垃圾收集,可以调用下面的方法之一:System.gc()或Runtime.getRuntime().gc(),但JVM可以屏蔽掉显示的垃圾回收调用。 阅读全文
摘要:
float f=3.4;是否正确? 不正确。3.4是双精度数,将双精度型(double)赋值给浮点型(float)属于下转型(down-casting,也称为窄化)会造成精度损失,因此需要强制类型转换float f =(float)3.4; 或者写成float f =3.4F;。 float f=3 阅读全文
摘要:
(1)final:被final修饰的类,不被能继承;被final修饰的方法,不能被重写;被fianl修饰的量,为常量,只能被赋值一次; (2)finally:异常处理,和try、catch结合使用,可加可不加,用于执行一些必须执行的代码,如释放资源等; (3)finalized:Object类中的方 阅读全文
摘要:
Eureka注册中心是什么? Eureka注册中心是什么? Eureka是Netflix开发的服务发现组件,本身是一个基于REST的服务。Spring Cloud将它集成在其子项目spring-cloud-netflix中,以实现Spring Cloud的服务注册于发现,同时还提供了负载均衡、故障转 阅读全文
摘要:
Eureka中的三种角色分别是什么? 1、Eureka Server 通过Register、Get、Renew等接口提供服务的注册和发现。 2、Application Service (Service Provider) 服务提供方 把自身的服务实例注册到Eureka Server中 3、Appli 阅读全文