面试专栏
文章平均质量分 91
面试
飘然渡沧海
这个作者很懒,什么都没留下…
展开
-
CAP & BASE理论
CAP 理论/定理open in new window起源于 2000年,由加州大学伯克利分校的Eric Brewer教授在分布式计算原理研讨会(PODC)上提出,因此 CAP定理又被称作 布鲁尔定理(Brewer’s theorem)2年后,麻省理工学院的Seth Gilbert和Nancy Lynch 发表了布鲁尔猜想的证明,CAP理论正式成为分布式领域的定理。CAP 也就是 Consistency(一致性)、Availability(可用性)、Partition Tolerance(分区容错性) 这三原创 2022-06-14 15:43:23 · 137 阅读 · 0 评论 -
Spring常见问题总结
下面的很多问题我自己在使用 Spring 的过程中也并没有注意,自己也是临时查阅了很多资料和书籍补上的。网上也有一些很多关于 Spring 常见问题/面试题整理的文章,我感觉大部分都是互相 copy,而且很多问题也不是很好,有些回答也存在问题。所以,自己花了一周的业余时间整理了一下,希望对大家有帮助。Spring 是一款开源的轻量级 Java 开发框架,旨在提高开发人员的开发效率以及系统的可维护性。Spring 翻译过来就是春天的意思,可见其目标和使命就是为 Java 程序员带来春天啊!感动!我们一般说 S原创 2022-06-14 15:27:59 · 571 阅读 · 0 评论 -
@Component 和 @Bean 的区别
@Component 和 @Bean 是两种使用注解来定义bean的方式。@Component(和@Service和@Repository)用于自动检测和使用类路径扫描自动配置bean。注释类和bean之间存在隐式的一对一映射(即每个类一个bean)。这种方法对需要进行逻辑处理的控制非常有限,因为它纯粹是声明性的。@Bean用于显式声明单个bean,而不是让Spring像上面那样自动执行它。它将bean的声明与类定义分离,并允许您精确地创建和配置bean。而@Bean则常和@Configuratio原创 2022-06-14 09:45:05 · 3439 阅读 · 0 评论 -
Redis知识点&面试题总结
简单来说 Redis 就是一个使用 C 语言开发的数据库,不过与传统数据库不同的是 Redis 的数据是存在内存中的 ,也就是它是内存数据库,所以读写速度非常快,因此 Redis 被广泛应用于缓存方向。另外,Redis 除了做缓存之外,也经常用来做分布式锁,甚至是消息队列。Redis 提供了多种数据类型来支持不同的业务场景。Redis 还支持事务 、持久化、Lua 脚本、多种集群方案。分布式缓存的话,使用的比较多的主要是 Memcached 和 Redis。不过,现在基本没有看过还有项目使用 Memcach原创 2022-06-09 09:32:07 · 133 阅读 · 0 评论 -
MySQL高性能优化规范建议
没有特殊要求(即 Innodb 无法满足的功能如:列存储,存储空间数据等)的情况下,所有表必须使用 Innodb 存储引擎(MySQL5.5 之前默认使用 Myisam,5.6 以后默认的为 Innodb)。Innodb 支持事务,支持行级锁,更好的恢复性,高并发下性能更好。兼容性更好,统一字符集可以避免由于字符集转换产生的乱码,不同的字符集进行比较前需要进行转换会造成索引失效,如果数据库中有存储 emoji 表情的需要,字符集需要采用 utf8mb4 字符集。参考文章:MySQL 字符集不一致导致索引失效原创 2022-06-08 15:46:24 · 148 阅读 · 0 评论 -
Java 并发重要知识点-线程+容器部分
类中提供的四个构造方法。我们来看最长的那个,其余三个都是在这个构造方法的基础上产生(其他几个构造方法说白点都是给定某些默认参数的构造方法比如默认制定拒绝策略是什么)。下面这些对创建非常重要,在后面使用线程池的过程中你一定会用到!所以,务必拿着小本本记清楚。 3 个最重要的参数:其他常见参数 :下面这张图可以加深你对线程池中各个参数的相互关系的理解(图片来源:《Java 性能调优实战》):[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nzbqGRz9-165460057113原创 2022-06-07 19:17:10 · 1757 阅读 · 0 评论 -
Java 并发常见知识点&面试题总结(进阶篇)
关键字解决的是多个线程之间访问资源的同步性,关键字可以保证被它修饰的方法或者代码块在任意时刻只能有一个线程执行。另外,在 Java 早期版本中, 属于 重量级锁,效率低下。为什么呢?因为监视器锁(monitor)是依赖于底层的操作系统的 来实现的,Java 的线程是映射到操作系统的原生线程之上的。如果要挂起或者唤醒一个线程,都需要操作系统帮忙完成,而操作系统实现线程之间的切换时需要从用户态转换到内核态,这个状态之间的转换需要相对比较长的时间,时间成本相对较高。庆幸的是在 Java 6 之后 Java 官方原创 2022-06-07 16:47:07 · 271 阅读 · 0 评论 -
Java 并发常见知识点&面试题总结-(基础)
Java 并发常见知识点&面试题总结-(基础)么是线程和进程?何为进程?进程是程序的一次执行过程,是系统运行程序的基本单位,因此进程是动态的。系统运行一个程序即是一个进程从创建,运行到消亡的过程。在 Java 中,当我们启动 main 函数时其实就是启动了一个 JVM 的进程,而 main 函数所在的线程就是这个进程中的一个线程,也称主线程。如下图所示,在 windows 中通过查看任务管理器的方式,我们就可以清楚看到 window 当前运行的进程(.exe 文件的运行)。何为线程?原创 2022-05-31 17:22:11 · 84 阅读 · 0 评论 -
java 基础面试题(2)-集合
java 基础面试题(2)-集合Java 集合概览[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hfQlUHYb-1653986172148)(https://javaguide.cn/assets/java-collection-hierarchy.1727461b.png)]注:图中只列举了主要的继承派生关系,并没有列举所有关系。比方省略了AbstractList, NavigableSet等抽象类以及其他的一些辅助类,如想深入了解,可自行查看源码。说说 List原创 2022-05-31 16:36:49 · 235 阅读 · 0 评论 -
java 基础面试题(1)-基础篇
java 基础面试题(1)自动装箱与拆箱原理是什么什么是自动拆装箱?装箱:将基本类型用它们对应的引用类型包装起来;拆箱:将包装类型转换为基本数据类型;举例:Integer i = 10; //装箱int n = i; //拆箱上面这两行代码对应的字节码为: L1 LINENUMBER 8 L1 ALOAD 0 BIPUSH 10 INVOKESTATIC java/lang/Integer.valueOf (I)Ljava/lan原创 2022-05-19 14:15:05 · 299 阅读 · 0 评论