摘要:
摘要 HashMap的原理也是大厂面试中经常会涉及的问题,同时也是工作中常用到的Java容器,本文主要通过对以下问题进行分析讲解,来帮助大家理解HashMap的原理。 1.HashMap添加一个键值对的过程是怎么样的? 2.为什么说HashMap不是线程安全的? 3.为什么要一起重写hashCode 阅读全文
摘要:
一、学习目标 1、HashMap线程不安全原因: 原因: JDK1.7 中,由于多线程对HashMap进行扩容,调用了HashMap#transfer(),具体原因:某个线程执行过程中,被挂起,其他线程已经完成数据迁移,等CPU资源释放后被挂起的线程重新执行之前的逻辑,数据已经被改变,造成死循环、数 阅读全文
摘要:
HashMap默认初始化大小为什么是1 << 4(16) /** * The default initial capacity - MUST be a power of two. */ static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; HashM 阅读全文
摘要:
前言 最近在看 HashMap 源代码的时候,发现链表 table 数组采用了transient 关键字,笔者当时感觉对 transient 关键字即陌生但又有似曾相识,所以花了一些时间简要的总结了下使用transient 关键字的一些基本常识,希望对你们也有些帮助,让我们一起进步,一起牛逼吧。 t 阅读全文
摘要:
前言 反射是Java底层框架的灵魂技术,学习反射非常有必要,本文将从入门概念,到实践,再到原理讲解反射,希望对大家有帮助。 反射理解 官方解析 Oracle 官方对反射的解释是: Reflection is commonly used by programs which require the ab 阅读全文
摘要:
先看现象 涉及诸如float或者double这两种浮点型数据的处理时,偶尔总会有一些怪怪的现象,不知道大家注意过没,举几个常见的栗子: 典型现象(一):条件判断超预期 System.out.println( 1f == 0.9999999f ); // 打印:false System.out.pri 阅读全文
摘要:
我想所有 Java 程序员都曾被这个 new String 的问题困扰过,这是一道高频的 Java 面试题,但可惜的是网上众说纷纭,竟然找不到标准的答案。有人说创建了 1 个对象,也有人说创建了 2 个对象,还有人说可能创建了 1 个或 2 个对象,但谁都没有拿出干掉对方的证据,这就让我们这帮吃瓜群 阅读全文
摘要:
一、什么是Java序列化? 序列化:把Java对象转换为字节序列的过程 反序列:把字节序列恢复为Java对象的过程 二、为什么需要序列化? Java对象是运行在JVM的堆内存中的,如果JVM停止后,它的生命也就戛然而止。 如果想在JVM停止后,把这些对象保存到磁盘或者通过网络传输到另一远程机器,怎么 阅读全文
摘要:
一、什么是Java泛型 Java 泛型(generics)是 JDK 5 中引入的一个新特性,其本质是参数化类型,解决不确定具体对象类型的问题。其所操作的数据类型被指定为一个参数(type parameter)这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。 泛型类 阅读全文
摘要:
介绍 nsenter是用来进入容器内部的一个命令,它的优势之处在于可以自己选择加载容器的那些namespaces。 说直白一点就是 排查docker容器可以具备inux宿主命令的的方法。 一典型的用途容器网络命令空间。容器为了轻量级,不包含基础的命令,如说 ip address,ping,telne 阅读全文