摘要: 1. MQ 的相关概念 1.1 什么是MQ MQ全称为Message Queue,消息队列是应用程序和应用程序之间的通信方法。 本质是个队列,数据是先入先出,只不过队列中存放的内容是 message 而已,还是一种跨进程的通信机制,用于上下游传递消息。在互联网架构中,MQ 是一种非常常 见的上下游“ 阅读全文
posted @ 2021-08-31 10:52 SmallGrayCode 阅读(45) 评论(0) 推荐(0) 编辑
摘要: 双亲委派模型的好处:主要是为了安全性,避免用户自己编写的类动态替换Java的一些核心类,比如String。同时也避免了类的重复加载,因为JVM中区分不同类,不仅仅是根据类名,相同的class文件被不同的ClassLoader加载就是不同的两个类 阅读全文
posted @ 2021-08-07 15:00 SmallGrayCode 阅读(58) 评论(0) 推荐(0) 编辑
摘要: 1. Java类加载器 JDK自带有三个类加载器:bootstrap ClassLoader、ExtClassLoader、AppClassLoader。BootStrapClassLoader是ExtClassLoader的父类加载器,默认负责加载%jAVA_HOME%lib下的jar包和clas 阅读全文
posted @ 2021-08-04 23:08 SmallGrayCode 阅读(46) 评论(0) 推荐(0) 编辑
摘要: 1. 什么是字节码?采用字节码的好处是什么? java中的编译器和解释器: Java中引入了虚拟机的概念,即在机器和编译程序之间加入了一层抽象的虚拟的机器。这台虚拟的机器在任何平台上都提供给编译程序一个的共同的接口。编译程序只需要面向虚拟机,生成虚拟机能够理解的代码,然后由解释器来将虚拟机代码转换为 阅读全文
posted @ 2021-07-21 09:21 SmallGrayCode 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 1. 如何实现一个IOC容器 1. 配置文件配置包扫描路径 2. 递归包扫描获取.class文件 3. 反射,确定需要交给IOC管理的类 4. 对需要注入的类进行依赖注入 配置文件中指定需要扫描的包路径 定义一些注解,分别表示访问控制层、业务逻辑层、数据持久层、依赖注入注解、获取配置文件注解 从配置 阅读全文
posted @ 2021-07-19 21:33 SmallGrayCode 阅读(89) 评论(0) 推荐(0) 编辑
摘要: 1. ConcurrentHashMap原理,jdk7和jdk8版本的区别 jdk7: 数据结构:ReentrantLock+HashEntry,一个Segment中包含一个HashEntry数组,每个HashEntry又是一个链表结构。 元素查询:二次Hash,第一次Hash定位到Segment, 阅读全文
posted @ 2021-07-12 22:20 SmallGrayCode 阅读(108) 评论(0) 推荐(0) 编辑
摘要: 1. HashMap和HashTable的区别 区别: (1)HashMap方法没有synchronized修饰,线程非安全,HashTable线程安全。 (2)HashMap允许key和value为null,而HashTable不允许。 底层实现:数组+链表实现 jdk8开始链表高度达到8,数组长 阅读全文
posted @ 2021-07-04 12:54 SmallGrayCode 阅读(64) 评论(0) 推荐(0) 编辑
摘要: 1. ArrayList和LinkedList的区别 ArrayList:基于动态数组,连续内存存储,适合下标访问(随机访问),扩容机制,因为数组长度固定,超出长度存数据时需要新建数组,然后将老数组的数据拷贝到新数组,如果不是尾部插入数据还会涉及到元素的移动(往后复制一份,插入新元素),使用尾插法并 阅读全文
posted @ 2021-06-20 18:09 SmallGrayCode 阅读(82) 评论(0) 推荐(0) 编辑
摘要: 1. hashcode与equals 1.1 hashcode介绍 hashcode()的作用是获取哈希码,也称为散列码;它实际上是返回一个int整数。这个哈希码的作用是确定该对象在哈希表中的索引位置。hashcode()定义在JDK的Object.java中,Java中的任何类都包含有hashco 阅读全文
posted @ 2021-06-20 16:23 SmallGrayCode 阅读(70) 评论(0) 推荐(1) 编辑
摘要: 1. List和Set的区别 List:有序,按对象进入的顺序保存对象,可重复,允许多个Null元素对象,可以使用iterator取出所有元素,在逐一遍历,还可以使用get(int index)获取指定下标的元素。 Set:无序,不可重复,最多允许有一个Null元素对象,取元素时只能用iterato 阅读全文
posted @ 2021-06-20 13:37 SmallGrayCode 阅读(77) 评论(0) 推荐(0) 编辑