面试
文章平均质量分 83
面试题积累
6个日的梦想
爱好
展开
-
个人收集的网站,可以参考(程序员可收藏)
网站收集神奇原创 2023-03-08 10:36:30 · 3189 阅读 · 1 评论 -
教程整理篇
01. Spring Boot 基础教程第一个开源项目是一套《Spring Boot 基础教程》的程序样例,程序员DD大佬维护,旨在打造全网内容最全,比收费教程更好的 Spring Boot 免费教程,该教程分为 1.x 版本和 2.x 版本。地址:https://gitee.com/didispace/SpringBoot-Learning看他博客,知识点也很丰富; https://blog.didispace.com02.狂神的笔记这个仓库记录了狂神的学习笔记以及相关视频教程。...原创 2021-08-09 21:42:43 · 279 阅读 · 0 评论 -
13]ThreadLocal是什么?有哪些用途?你了解多少?
本次给大家介绍重要的工具ThreadLocal。讲解内容如下,同时介绍什么场景下发生内存泄漏,如何复现内存泄漏,如何正确使用它来避免内存泄漏。带着问题,我们一起来看看,如果你有什么见解,可以评论分享哈。 ThreadLocal是什么?有哪些用途? ThreadLocal如何使用。 ThreadLocal原理。 ThreadLocal使用有哪些坑及注意事项。 1. ThreadLocal是什么? 有哪些用途?首先介绍Thread类中属性threadLocals.原创 2021-08-08 13:04:47 · 249 阅读 · 0 评论 -
1]解决java.util.concurrent.RejectedExecutionException
今天学习了java的并发,线程池,同一时间执行一个操作。报错:java.util.concurrent.RejectedExecutionException,排查发现是等待队列设小了,导致拒绝策略,当队列满时,处理策略报错异常。上代码:package aqs;import java.util.concurrent.*;/** * @author WHM * 实现指定时间内做一定事情 * @date 2021年08月06日 16:27 */public class Cou原创 2021-08-06 18:04:01 · 22122 阅读 · 1 评论 -
12】了解一下JAVA高并发中的CAS和AQS
CAS和AQS是进军并发编程 current的基础,不懂,很多代码都看不懂,这里简介2个的作用CAS(Compare And Swap)什么是CASCAS(Compare And Swap),即比较并交换。是解决多线程并行情况下使用锁造成性能损耗的一种机制,CAS操作包含三个操作数——内存位置(V)、预期原值(A)和新值(B)。如果内存位置的值与预期原值相匹配,那么处理器会自动将该位置值更新为新值。否则,处理器不做任何操作。无论哪种情况,它都会在CAS指令之前返回该位置的值。CAS有效地说明..原创 2021-08-06 17:23:20 · 182 阅读 · 0 评论 -
11】Java并发编程:Synchronized及其实现原理
一、Synchronized的基本使用Synchronized是Java中解决并发问题的一种最常用的方法,也是最简单的一种方法。Synchronized的作用主要有三个:(1)确保线程互斥的访问同步代码(2)保证共享变量的修改能够及时可见(3)有效解决重排序问题。从语法上讲,Synchronized总共有三种用法: (1)修饰普通方法 (2)修饰静态方法 (3)修饰代码块 接下来我就通过几个例子程序来说明一下这三种使用方式(为了便于比较,三段代码除了Synchronized的使用原创 2021-08-06 11:34:43 · 111 阅读 · 0 评论 -
10] fail-fast简介ArrayList为例
fail-fast简介fail-fast 机制是java集合中的一种错误机制。当多个线程对同一个集合的内容进行操作时,就可能会产生fail-fast事件。例如:当某一个线程A通过iterator去遍历某集合的过程中,若该集合的内容被其他线程所改变了;那么线程A访问集合时,就会抛出ConcurrentModificationException异常,产生fail-fast事件。在详细介绍fail-fast机制的原理之前,先通过一个示例来认识fail-fast。给个例子:import java.u原创 2021-08-06 11:31:28 · 119 阅读 · 0 评论 -
9】说说hashCode() 和 equals() 之间的关系?
hashCode() 和 equals() 之间的关系?”的面试题,本篇来解析一下这道基础面试题。先祭一张图,可以思考一下为什么?介绍equals()的作用是用来判断两个对象是否相等。hashCode()的作用是获取哈希码,也称为散列码;它实际上是返回一个int整数。这个哈希码的作用是确定该对象在哈希表中的索引位置。...原创 2021-08-06 10:15:09 · 155 阅读 · 0 评论 -
8】说说Object类下面有几种方法呢?
今天说一道基础题型,不过很多人会忽略或者至少说不完整,但是面试时被问到的几率还是很大的。面试题Object有几种方法呢?Java语言是一种单继承结构语言,Java中所有的类都有一个共同的祖先。这个祖先就是Object类。如果一个类没有用extends明确指出继承于某个类,那么它默认继承Object类。Object的方法我们在平时基本都会用到,但如果没有准备被忽然这么一问,还是有点懵圈的。具体解答1.Object()这个没什么可说的,Object类的..原创 2021-08-04 21:52:44 · 80 阅读 · 0 评论 -
6]单例模式记录
饱汉模式饱汉是变种最多的单例模式。我们从饱汉出发,通过其变种逐渐了解实现单例模式时需要关注的问题。基础的饱汉饱汉,即已经吃饱,不着急再吃,饿的时候再吃。所以他就先不初始化单例,等第一次使用的时候再初始化,即“懒加载”。//饱汉//UnThreadSafepublicclassSingleton1{privatestaticSingleton1singleton=null;privateSingleton1(){}publicstatic...原创 2021-08-04 18:11:21 · 92 阅读 · 0 评论 -
05】消息队列中,如何保证消息的顺序性?
面试官心理分析其实这个也是用 MQ 的时候必问的话题,第一看看你了不了解顺序这个事儿?第二看看你有没有办法保证消息是有顺序的?这是生产系统中常见的问题。面试题剖析我举个例子,我们以前做过一个 mysqlbinlog同步的系统,压力还是非常大的,日同步数据要达到上亿,就是说数据从一个 mysql 库原封不动地同步到另一个 mysql 库里面去(mysql -> mysql)。常见的一点在于说比如大数据 team,就需要同步一个 mysql 库过来,对公司的业务系统的数据做各种复杂的操作。..原创 2021-08-03 23:49:25 · 204 阅读 · 0 评论 -
04】分库分表之后,id 主键如何处理?
面试官心理分析其实这是分库分表之后你必然要面对的一个问题,就是 id 咋生成?因为要是分成多个表之后,每个表都是从 1 开始累加,那肯定不对啊,需要一个全局唯一的 id 来支持。所以这都是你实际生产环境中必须考虑的问题。面试题剖析基于数据库的实现方案1数据库自增 id这个就是说你的系统里每次得到一个 id,都是往一个库的一个表里插入一条没什么业务含义的数据,然后获取一个数据库自增的一个 id。拿到这个 id 之后再往对应的分库分表里去写入。这个方案的好处就是方便简单,谁都会用;缺..原创 2021-08-03 23:31:10 · 166 阅读 · 0 评论 -
4-1】衍生sonwflake的学习(Twitter开源分布式ID算法)
1 sonwflake简介 互联网快速发展的今天,分布式应用系统已经见怪不怪,在分布式中,我们需要各种各样的ID,既然是ID那么必然是要保证全局唯一,除此以外,不同的业务还需要不同的特性,比如像并发巨大的业务要求ID生成率高,吞吐大;比如某些银行类业务,需要按每日日期制定交易流水号;又比如我们希望用户的ID是随机的,无序的,纯数字的,且位数长度小于10位的。等等,不同的业务场景需要的ID特性各不一样,于是,衍生了各种ID生成器,但是大多数利用数据库控制ID的生成,性能受数据库并发能力限制,那么有没有..原创 2021-08-03 23:28:05 · 181 阅读 · 0 评论 -
3期】如何决定使用 HashMap 还是 TreeMap?
介绍TreeMap<K,V>的key值是要求实现java.lang.Comparable,所以迭代的时候TreeMap默认是按照Key值升序排序的;TreeMap的实现是基于红黑树结构。适用于按自然顺序或自定义顺序遍历键(key)。HashMap<K,V>的Key值实现散列hashCode()分布是散列的、均匀的,不支持排序;数据结构主要是桶(数组),链表或红黑树。适用于在Map中插入、删除和定位元素。结论如果你需要得到一个有序的结果时就应该使用TreeMap(因为H原创 2021-08-03 18:18:58 · 149 阅读 · 0 评论 -
2】Spring框架中Bean的生命周期,了解一下
首先面试可以这样回答:1.实例化一个Bean ---也就是我们常说的new;2、按照Spring上下文对实例化的Bean进行配置--也就是IOC注入;3、如果这个Bean已经实现了BeanNameAware接口,会调用它实现的setBeanName(String)方法,此处传递的就是Spring配置文件中Bean的id值4、如果这个Bean已经实现了BeanFactoryAware接口,会调用它实现的setBeanFactory(setBeanFactory(BeanFactory)传递的.原创 2021-08-02 23:01:08 · 55 阅读 · 0 评论 -
01]Spring , SpringMvc, SpringBoot, SpringCloud有什么区别和联系?
一、Spring是一个轻量级的控制反转IOC和面向切面AOP的容器框架,Spring使你能够编写更干净,更可管理,并且易于测试的代码。二、Spring MVC是Spring的一个模块,一个Web框架。通过Dispatcher Servlet, ModelAndView和View Resolcer,开发Web应用变得更容易。主要针对为网站应用程序或者服务开发---URL路由、Session、模板引擎、静态Web资源等等。三、Spring配置复杂,繁琐,所以推出了Spring boot,约定优于配置,简原创 2021-08-02 22:39:25 · 131 阅读 · 0 评论