自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(61)
  • 收藏
  • 关注

原创 Spring相关问题汇总

Spring相关问题汇总1、Spring的Bean的作用域2、Spring Bean的生命周期3、SpringMVC的流程或原理4、Spring中拦截器的使用5、Spring AOP结构6、Spring中的动态代理技术7、Mybatis8、Redis持久化机制1、Spring的Bean的作用域作用域限定了Spring Bean的作用范围。配置bean的作用域的代码如下<bean id="..." class="...." scope="singleton"></bean&

2021-03-12 15:25:35 171

原创 ActiveMQ的持久化机制

ActiveMQ的持久化机制ActiveMQ的持久化机制包含JDBC: 持久化到数据库AMQ :日志文件(已基本不用)KahaDB : AMQ基础上改进,默认选择LevelDB :谷歌K/V数据库一、kahaDB消息存储(默认存储方式)基本配置方式KahaDB是基于日志文件的持久性数据库,是自ActiveMQ 5.4以来的默认存储机制,可用于任何场景,提高了性能和恢能力,它是基于文件的本地数据库存储形式。它已针对快速持久性进行了优化。KahaDB使用较少的文件描述符,并提供比其前身AMQ

2021-03-04 15:01:13 234 2

原创 SpringBoot整合ActiveMQ

SpringBoot整合ActiveMQ一、Windows安装 ActiveMq参考地址:https://blog.csdn.net/LuQiaoYa/article/details/87969512二、SpringBoot项目添加依赖<!--ActiveMq--> <dependency> <groupId>org.springframework.boot</groupId> <artifactI

2021-03-04 14:41:07 357 1

原创 设计模式的装饰器模式和代理模式

设计模式的装饰器模式和代理模式装饰器模式装饰者和被装饰者实现同一个接口,public interface Coffee { /** * 打印当前咖啡里有什么 */ void printMaterial();}定义一个苦咖啡public class BitterCoffee implements Coffee { @Override public void printMaterial() { System.out.println

2021-03-02 16:39:32 136

原创 Java8中常用Lambda表达式

Lambda表达式1、获取最大值、最小值2、分组3、循环操作4、分页5、过滤1、获取最大值、最小值// 最大值String codeOne = auditMessageDetailedEntity.stream().map(AuditMessageDetailedEntity::getCode).distinct() .max((e1, e2) -> e1.compareTo(e2)).get();// 最小值Date statementChargeBeginDates = settleOr

2021-01-27 15:22:57 882

原创 【Java面试题与答案】目录一键直达

Java基础(一)equals,HashCodeJava基础(二)HashMap相关问题,HashMap 1.7和HashMap 1.8的区别Java基础(三).ConcurrentHashMap原理,深拷贝和浅拷贝,序列化与反序列化,反射Java基础(四)Java中的容器Java并发编程(一)Synchronized相关问题Java并发编程(二)CAS无锁算法,ABA问题,悲观锁和乐观锁,AQS同步队列,java中的原子操作类Java并发编程(三)可重入锁 ReentrantLock .

2021-01-07 17:16:24 312

原创 计算机网络

网络体系的分层结构HTTP 相关通用头部请求报文请求行请求方法请求头请求体响应报文常见状态码响应头缓存机制HTTP 1.1HTTP 2.0HTTPS加密原理TCP/IP三次握手四次挥手TCP 与 UDP 的区别Socket使用示例网络体系的分层结构分层说明应用层(HTTP、FTP、DNS、SMTP 等)定义了如何包装和解析数据,应用层是 http 协议的话,则会按照协议规定包装数据,如按照请求行.

2021-01-06 16:47:30 216

原创 Java面试算法题

排序比较排序冒泡排序归并排序快速排序线性排序计数排序桶排序二叉树顺序遍历层次遍历左右翻转最大值最大深度最小深度平衡二叉树链表删除节点翻转链表中间元素判断是否为循环链表合并两个已排序链表链表排序删除倒数第N个节点两个链表是否相交栈 / 队列带最小值操作的栈有效括号用栈实现队列逆波兰表达式求值二分二分搜索X的平方根哈希表两数之和连续数组最长无重复字符的子串最多点在一条直线上堆 / 优先队.

2021-01-06 14:23:25 236

原创 JVM相关问题

JVM相关问题Java内存区域说一下 JVM 的主要组成部分及其作用?下面是Java程序运行机制详细说明说一下 JVM 运行时数据区说一下堆栈的区别?队列和栈是什么?有什么区别?HotSpot虚拟机对象探秘对象的创建为对象分配内存处理并发安全问题对象的访问定位句柄访问直接指针内存溢出异常Java会存在内存泄漏吗?请简单描述垃圾收集器简述Java垃圾回收机制GC是什么?为什么要GC垃圾回收的优点和原理。并考虑2种回收机制垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾

2021-01-05 16:02:34 195

原创 Java并发编程(五)Java 内存模型相关问题

Java 内存模型相关问题一、什么是 Java 的内存模型,Java 中各个线程是怎么彼此看到对方的变量的?二、主内存和工作内存之间的交互,具体有哪些操作?三、 volatile 有什么特点,为什么它能保证变量对所有线程的可见性?四、既然 volatile 能够保证线程间的变量可见性,是不是就意味着基于 volatile 变量的运算就是并发安全的?五、synchronized和volatile的实现原理六、synchronized和volatile的异同七、请谈谈ThreadLocal实现原理八、Threa

2021-01-05 13:53:37 187 1

原创 Java并发编程(四)Java线程池相关问题

Java线程池一、线程池的实现1.1、各个参数的含义1.2、ThreadPoolExecutor的继承关系1.3、ThreadPoolExecutor的状态变量1.4、任务的执行:execute()方法二、常用的四种线程池2.1、newFixedThreadPool2.2、newCachedThreadPool2.3、newSingleThreadExecutor2.4、newScheduledThreadPool三、线程池的线程是怎么创建的?是一开始就随着线程池的启动创建的吗?四、如何向Java线程池中提

2020-12-31 14:17:00 202

原创 Java并发编程(三)可重入锁 ReentrantLock 及其他显式锁相关问题

可重入锁 ReentrantLock 及其他显式锁相关问题1、跟 Synchronized 相比,可重入锁 ReentrantLock 其实现原理有什么不同ReentrantLock 是如何实现可重入性的?1、跟 Synchronized 相比,可重入锁 ReentrantLock 其实现原理有什么不同(1)底层实现synchronized是JVM层面的锁,是java关键字。而ReentrantLock是API层面的互斥锁。(2)是否可以手动释放synchronized不需要手动释放,代码执行完之

2020-12-30 18:31:46 211 2

原创 Java并发编程(一)Synchronized相关问题

Synchronized1、Synchronized如何确定对象的锁?2、什么是可重入性,为什么说 Synchronized 是可重入锁?3、可重入锁原理4、JVM 对 Java 的原生锁做了哪些优化?4.1 自旋锁4.2 自适应自旋锁:4.3 锁消除4.4 锁粗化5、为什么说 Synchronized 是非公平锁?1、Synchronized如何确定对象的锁?修饰普通方法对一个成员方法加锁,实际上是以这个成员方法所在的对象本身作为对象锁修饰静态方法则表示此方法所在的类为锁对象。修饰代码块比

2020-12-30 13:48:53 157

原创 Dubbo技术架构、核心配置、具体实例

Dubbo学习一、传统应用架构到分布式架构的演化1、单体式应用架构2、多个垂直应用架构3、分布式服务架构4、流动计算机架构(SOA服务化)二、Dubbo技术架构三、Dubbo的核心配置四、小例子生产者消费者一、传统应用架构到分布式架构的演化1、单体式应用架构当网站流量很小时,只需要一个应用,将所有功能部署在一起。此时,用于简化增删改查工作量的数据库访问框架(ORM)是关键,例如SSM,Spring MVC,配合Nginx做负载均衡已足够使用。2、多个垂直应用架构当访问量逐渐增大,单一应用增加机器

2020-12-24 18:09:43 401 3

原创 @Transactional中PROPAGATION_REQUIRES_NEW 和 PROPAGATION_NESTED区别

@Transactional1、Spring中对于事务传播性的定义2、PROPAGATION_REQUIRES_NEW 与 PROPAGATION_NESTED区别3、@Transactional主方法调用子方法事务的有无3.1 两个方法在同一个类中3.2 两个方法在不同类中1、Spring中对于事务传播性的定义PROPAGATION_REQUIRED:支持当前事务,如果当前没有事务,则新建一个事务PROPAGATION_SUPPORTS:支持当前事务,如果当前没有事务,则以非事务进行PROPAG

2020-12-23 13:39:51 2897 1

原创 @Autowired 和 new对象有什么区别

为什么在new 对象里面使用自动注入对象会报空指针异常?根本原因在于当Spring框架帮我们管理的时候就会自动的初始化接下来会用到的属性,而通过new对象的方式,在该new对象中使用到的一些实例就需要自己去做初始化,否则就会报空指针异常。如下例子所示:TestService 通过@Autowired注入,那么Spring容器就会自动注入TestService 中会用到的TestDao。如例一所示。例一:@RestController@RequestMapping(value = "/test

2020-12-23 11:09:42 2873 9

原创 Spring cache缓存注解@Cacheable、@CacheEvict、@CachePut详解

Spring cache缓存注解一、@Cacheable1.1 value属性1.2 key属性1.2.1 自定义策略1.2.2 默认策略1.3 condition属性1.4 unless属性二、@CachePut三、@CacheEvict3.1 allEntries属性3.2 beforeInvocation属性四、@Cacheable不起作用的场合Spring提供注解来支持Spring cache。Spring cache是作用在方法上的,当调用一个缓存方法时,会把该方法的参数和结果作为一个键值对存

2020-12-22 17:53:30 2858 2

原创 父子类异常处理小结

1、子类方法只能抛出父类方法的异常或其子异常2、子类构造器必须要抛出父类构造器的异常或其父异常,因为子类构造器中默认会调用父类构造器方法。3、try-catch顺序:catch的时候一定要把异常范围小的放前面,范围大的放后面,Exception一般放最后,放在前面则编译不能通过。4、如果有多个catch,当匹配到某一个catch的时候,就直接进入该catch处理,后面的catch直接跳过,不做任何处理。...

2020-12-22 14:32:06 674 1

原创 MySQL的基础架构

首先看一下MySQL的基础架构:

2020-12-22 13:38:34 101

原创 普通索引和唯一索引如何选择

普通索引和唯一索引如何选择查询过程更新过程change buffer使用场景问题假设你在维护一个市民系统,每个人都有一个唯一的身份证号,而且业务代码已经保证了不会写入两个重复的身份证号。如果市民系统需要按照身份证号查姓名,就会执行类似这样的SQL语句:select name from CUser where id_card = ‘xxxxxxxyyyyyyzzzzz’;所以,你一定会考虑在id_card字段上建索引。由于身份证号字段比较大,我不建议你把身份证号当做主键,那么现在你有两个选择,要么给i

2020-12-21 17:53:01 130

原创 索引的分类

索引的分类索引分为四类索引在MySQL中的分类B树B+树聚集索引和非聚集索引Hash索引MySQL中InnoDB和MyISAM的区别MySQL中存在索引但是不被使用的情况索引是在存储引擎中实现的,不同的存储引擎会使用不同的索引。MyISAM 和 InnoDB 只支持BTree索引MEMORY 和 HEAP 支持hash索引和Btree索引索引分为四类单列索引(普通索引,唯一索引,主键索引)普通索引:没什么限制,允许插入空值和重复值唯一索引:不允许重复值,允许空值主键索引:不允许空值,不

2020-12-21 17:52:04 3952

原创 计算机网络(一)为什么要进行四次挥手,不能进行两次握手,Http和Https区别,Http请求和DNS解析过程

计算机网络(一)1、为什么要进行四次挥手?2、为什么不能进行两次握手?3、TCP粘包4、Http请求的过程5、DNS解析过程6、Http和Https的区别6.1、基本概念6.2、Http和Https的主要区别6.3、Https的工作原理1、为什么要进行四次挥手?由于TCP是全双工的,因此每个方向都需要单独关闭。因为服务端的listen状态下的socket收到SYN报文的连接请求的时候,可以把...

2019-05-24 16:15:37 1308

原创 Spring中事务管理常见问题

Spring中事务管理常见问题1、Spring事务管理2、声明式事务(@Transactional)的使用:3、@Transactional常见问题1、Spring事务管理Spring事务管理分为编码式和声明式两种,编程式事务指的是通过编码方式实现事务,声明式事务基于AOP,将具体业务逻辑与事务处理解耦。声明式事务有两种方式,一种是在配置文件(XML)中做相关的事务规则说明,另一种基于**@...

2019-05-23 13:53:26 344

原创 多线程(五)ThreadLocal原理

多线程(五)ThreadLocal原理ThreadLocal概念get()方法set()和remove()方法getMap()与 createMap()ThreadLocal中的内存泄露内存泄露ThreadLocal概念ThreadLocal是一个为线程提供局部变量的工具类。为线程提供一个私有的变量副本,这样多个线程就可以随意更改自己局部的变量,而不影响别的线程。不过,需要注意的是,Thre...

2019-05-09 14:53:01 550 1

原创 多线程(四)并发与并行,守护线程,创建线程方式,Runnable与Callable,notify与notifyAll,sleep与wait,start与run

多线程(四)并发与并行,守护线程,创建线程方式,Runnable与Callable,notify与notifyAll,sleep与wait,start与run1、并发与并行的区别?2、守护线程是什么?3、创建线程的方式4、Runnable和Callable区别?5、notify和notifyAll的区别?6、sleep()和wait()的区别7、start()和run()方法的区别?1、并发与并...

2019-04-29 10:42:44 721

原创 Java中的容器

Java中的容器1、ArrayList 和 Vector 和 LinkedList 的区别是什么?2、java中的Collection和Collections的区别?3、List、Set和Map4、Array和ArrayList区别?5、ArrayList和Vector的扩容规则:6、Iterator迭代器:6.1、ListIterator 和 Iterator区别6.2、ArrayList 的 ...

2019-04-26 16:12:08 295

原创 Java面试程序题(一)

Java程序题(一)一、Integer装箱问题二、java 中的 Math.round(-1.5) 等于多少?三、Arrays.asList()方法四、值传递和引用传递1、StringBuffer2、String3、List一、Integer装箱问题public class TestMian { public static void main(String[] args) { Integ...

2019-04-26 13:45:54 773

原创 什么是缓存雪崩,缓存击穿,缓存穿透,缓存预热,缓存更新,缓存降级?

什么是缓存雪崩,缓存穿透,缓存预热,缓存更新,缓存降级?一、缓存雪崩:二、缓存穿透三、缓存预热四、缓存更新五、缓存降级一、缓存雪崩:由于原有缓存失效,新缓存未到期间(例如我们设置缓存采用了一样的过期时间,在同一时刻造成了所有的缓存失效),所有原本应该去访问缓存的请求都去查询数据库,对数据库CPU和内存造成了巨大的压力,严重的会造成数据库宕机。缓存雪崩的解决方案:(1)如果并发量不是特别多...

2019-04-12 16:05:03 844

原创 Redis使用场景,持久化机制,Redis为什么是单线程的,Redis回收策略

Redis使用场景,持久化机制,Redis为什么是单线程的一、Redis的使用场景二、Redis持久化机制2.1、**RDB**2.2、**AOF**三、什么是上下文切换?四、Redis为什么是单线程的?五、Redis为什么这么快?一、Redis的使用场景1、缓存热数据:使用:select之前,先查询Redis是否有,有的话就直接使用Redis中的数据,没有的话在查询数据库,将数据放入Re...

2019-04-12 15:49:47 1287

原创 分布式(一)分布式ID生成方案,分布式下数据库分库分表

分布式(一)、分布式ID生成方案,分布式下数据库分库分表一、分布式ID二、分布式下数据库分库分表一、分布式ID在互联网中,设计到各种各样的ID,如在支付系统中就有支付ID,退款ID等。分布式ID的特性:唯一性:确保生成的ID是全网唯一的有序递增性:确保生成的ID是对于某个用户或者业务是按一定的数字有序递增的。高可用性:确保任何时候都可以正确的生成ID。带时间:ID里面应该包含时间...

2019-04-12 15:38:23 644

原创 MySQL的存储引擎

MySQL中的存储引擎**1、InnoDB**2、MyISAM3、MEMORY简单来说,存储引擎就是指表的类型以及表在计算机上的存储方式。存储引擎是MySQL的概念,Oracle中没有存储引擎,Oracle中有OLTP和OLAP模式之分,不同的存储引擎决定了MySQL数据库中的表可以以不同的方式来存储。MySQL中的存储引擎有很多种,可以通过“SHOW ENGINES”语句来查看。主要有In...

2019-04-12 15:31:32 132

原创 JVM(一) GC垃圾回收,类加载器,java生命周期,强引用,软引用,弱引用,虚引用

JVM(一) GC垃圾回收,类加载器,java生命周期,强引用,软引用,弱引用,虚引用一、GC垃圾回收1.1 、判断对象是否“已死”的方法1.2 、常见GC回收算法1.3、Minor GC和Full GC 的触发条件二、类加载器2.1、类加载器2.2、双亲委派模型2.3、类加载器的工作原理三、java类的生命周期四、强引用,软引用,弱引用,虚引用4.1、强引用4.2、软引用4.3、弱引用4.4、虚...

2019-04-10 14:04:40 291

原创 多线程(三)偏向锁,轻量级锁,重量级锁,自旋锁,线程池的实现

多线程(三)偏向锁,轻量级锁,重量级锁,自旋锁,线程池的实现一、偏向锁1.1 、java对象在内存中的存储结构主要有以下三部分1.2、java虚拟机的对象头里主要包含两部分信息1.3、偏向锁1.4、轻量级锁1.5 、自旋锁1.6、重量级锁二、一个线程连续调用两次start()会出现什么?三、线程池的实现3.1、各个参数的含义3.2、ThreadPoolExecutor的继承关系3.3、Threa...

2019-04-04 16:07:19 506

原创 Java并发编程(二)CAS无锁算法,ABA问题,悲观锁和乐观锁,AQS同步队列,java中的原子操作类

CAS无锁算法,ABA问题,悲观锁和乐观锁,AQS同步队列,java中的原子操作类一、CAS无锁算法1.1 CAS1.2 CAS存在“ABA”漏洞:1.3 "ABA"问题JDK是如何解决的?1.4 AtomicStampedReference的源代码是如何实现的?二、悲观锁和乐观锁2.1 悲观锁2.2 乐观锁三、AQS同步队列3.1 AQS3.2 AQS定义**两种资源共享方式**:3.3 源码...

2019-04-02 11:05:29 1315

原创 排序算法总结

排序算法总结1.冒泡排序2.选择排序3.插入排序4.希尔排序5.归并排序6.快速排序1.冒泡排序分两层循环,外层循环负责循环整个数组,内层循环用来判断相邻两个元素的大小 经过第一遍循环之后,最大的元素已经被放到了最后一位针对所有的元素进行上面的操作,除了最后一位 直到没有一个元素需要交换,就return时间复杂度O(n^2) 最优时间复杂度O(n)最差时间复杂度O(n^2) ...

2019-03-29 10:43:09 128

原创 多线程(一)synchronized实现原理,volatile实现原理

synchronized实现原理,volatile实现原理一. synchronized实现1.1 synchronized的作用1.2 Synchronized三种用法1.3.Synchronized原理:1.3.1 同步代码块1.3.2 同步方法二.volatile实现原理2.1 并发编程中的三个概念:2.2 volatile的可见性2.3 volatile不能保证原子性2.4 volati...

2019-03-28 15:27:05 531

原创 java基础(三).ConcurrentHashMap原理,深拷贝和浅拷贝,序列化与反序列化,反射

java基础(三)1.ConcurrentHashMap原理2.new String("")创建几个对象?3.Java序列号与反序列化原理4.深拷贝和浅拷贝的区别5.反射1.ConcurrentHashMap原理HashMap缺点:     线程不安全,多线程情况下,同时进行resize操作可能引起死循环,还有,两个线程同时进行 put操作时,也可能导...

2019-03-25 16:35:56 1501

原创 java基础(二)HashMap相关问题,HashMap 1.7和HashMap 1.8的区别,ConcurrentHashMap1.7和1.8的不同实现

HashMap相关问题,HashMap 1.7和HashMap 1.8的区别1.时间复杂度2.HashMap的时间复杂度3.为什么采用哈希码 与(&) (数组长度-1) 计算数组下标?4.HashMap为什么不安全?5.HashMap 1.7和HashMap 1.8的区别1.时间复杂度常见的时间复杂度排序:Ο(1)<Ο(log2n)<Ο(n)<Ο(nlog2n)<Ο(n2)<Ο...

2019-03-25 10:01:45 891

原创 Linux学习(三)帮助命令,压缩命令

Linux学习(三)帮助命令,压缩命令1.帮助命令:2.压缩命令2.1  .zip 格式压缩2.2   .gz格式压缩2.3   .bz2格式压缩2.4   打包命令tar1.帮助命令:man 命令获取指定命令的帮助文档man -f 命令 相当于 whatis 命令查看命令拥有哪个帮助级别的命令...

2019-03-19 11:14:33 220

原创 Linux学习(二)文件搜索命令

Linux学习(二)文件搜索命令1.locate命令2.命令搜索命令whereis和which3.PATH环境变量4.find命令5.grep命令1.locate命令格式:locate 文件名在后台数据库中按照文件名搜索,搜索速度更快。后台数据库默认路径是==/var/lib/mlocate==(根据Linux版本不一致,路径可能不一样,可以用locate locate命令查找)。但是数据...

2019-03-18 13:49:12 238 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除