随笔分类 - Java面试
摘要:目录集合框架概览核心接口和类集合的使用场景List使用ArrayList(数组)Vector( 数组实现、 线程同步)LinkList(链表)SetHashSet( Hash 表)TreeSet(二叉树)LinkHashSet( HashSet+LinkedHashMap)HashMap(数组+链表
阅读全文
摘要:StringBuilder 线程不安全,到底哪里不安全? 在Java中,字符串拼接是一个非常常见的操作,而对于频繁变动的字符串内容,使用StringBuilder是一个性能优化的选择。但是,StringBuilder在使用上存在一个很大的限制,它是线程不安全的。在多线程环境下,不正确的使用Strin
阅读全文
摘要:1. ⾸先CopyOnWriteArrayList内部也是⽤过数组来实现的,在向CopyOnWriteArrayList添加元素时,会复制⼀个新的数组,写操作在新数组上进⾏,读操作在原数组上进⾏ 2. 并且,写操作会加锁,防⽌出现并发写⼊丢失数据的问题 3. 写操作结束之后会把原数组指向新数组 4.
阅读全文
摘要:JDK、JRE、JVM之间的区别 JDK(Java SE Development Kit),Java标准开发包,它提供了编译、运⾏Java程序所需的各种⼯具和资源,包括Java编译器、Java运⾏时环境,以及常⽤的Java类库等 JRE( Java Runtime Environment) ,Jav
阅读全文
摘要:为什么要使用消息队列(MQ)?可以列举一些MQ的优点吗? 使用消息队列(MQ)有几个主要的优点: 解耦:通过使用消息队列,系统之间可以实现解耦。一个系统产生的数据可以通过消息队列发布,其他系统可以订阅该消息并消费,而无需直接与数据产生系统进行交互。这种解耦方式降低了系统之间的依赖性,减少了代码维护成
阅读全文
摘要:为什么MySQL索引更适合B+树而不是二叉树、B树 一 数据库为什么使用B+树 与二叉树相比二叉树相比于顺序查找的确减少了查找次数,但是在最坏情况下,二叉树有可能退化为顺序查找。而且就二叉树本身来说,当数据库的数据量特别大时,其层数也将特别大。二叉树的高度一般是log_2^n,B树的高度是log_t
阅读全文