09 2020 档案
摘要:一个http请求的整个流程 负载域名解析的DNS服务 首先,用户访问一个域名,会经过DNS解析 DNS,它和http协议一样是位于应用层的协议,主要提供域名到IP的解析服务。其实我们不用域名也可以访问目标主机的服务,但是IP本身不是那么容易记,使用域名进行替换使得用户更容易记住。 加速静态内容访问速
阅读全文
摘要:架构的本质 架构的本质就是对系统进行有序化重构,是系统不断进化 架构是怎么实现无序到有序的呢?基本的手段就是分和合,拆分的结果是开发人员能够做到业务聚焦、技能聚焦,实现开发敏捷,合的结果是系统变得柔性,可以因需而变,实现业务敏捷。 架构的分类 1.业务架构从概念层面帮助开发人员更好的理解系统,比如业
阅读全文
摘要:在java中,如果每个请求到达就创建一个新线程,创建和销毁线程花费的时间和消耗的系统资源都相当大,甚至可能要比在处理实际的用户请求的时间和资源要多的多。 如果在一个JVM里面创建太多的线程,可能会使系统由于过度消耗内存或”切换过度“而导致系统资源不足。 为了解决这个问题,有了线程池的概念。线
阅读全文
摘要:使用场景 ConcurrentHashMap是J.U.C包里面提供的一个线程安全并且高效的hashMap。所以在并发编程的场景中使用的频率比较高。 api使用 ConcurrentHashMap是Map的派生类,所以api基本和HashMap是类似,主要就是put、get这些方法,接下来基于Conc
阅读全文
摘要:& 与运算符 与运算符用符号“&”表示,其使用规律如下: 两个操作数中位都为1,结果才为1,否则结果为0 public class Data{ public static void main(String[] args){ int a=129; int b=128; System.out.print
阅读全文
摘要:ConcurrentHashMap 在累加键值对个数的 addCount 函数中,使用 ThreadLocalRandom.getProbe() 得到线程的探针哈希值。 在这里,这个探针哈希值的作用是哈希线程,将线程和数组中的不用元素对应起来,尽量避免线程争用同一数组元素。探针哈希值和 map 里使
阅读全文
摘要:public static void main(String[] args) { System.out.println(Integer.toBinaryString(-16)); System.out.println(Integer.toBinaryString(-16>>2)); System.o
阅读全文