自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 重入锁概念

1.指的是同一个线程外层函数获得锁之后,内层递归函数仍然能获取该锁的代码,在同一个线程在外层方法获取锁的时候,在进入内层方法会自动获取锁。也就是说,线程可以进入任何一个他已经拥有锁的所有同步代码块。synchronized 和 ReentrantLock 都是可重入锁。2.synchrionizedpublic class Kechongru { Lock lock = new ReentrantLock(); public synchronized void g.

2021-11-16 14:53:03 1559

原创 reentrantlock和synchronized

1.reentrantlock是现式加锁和释放锁,sync是隐式加锁和释放锁。2.使用tryLock(long timeout, TimeUnit unit) 方法来防止多线程死锁。tryLock(long time, TimeUnit unit)方法和tryLock()方法是类似的,只不过区别在于这个方法在拿不到锁时会等待一定的时间,在时间期限之内如果还拿不到锁,就返回false。如果一开始拿到锁或者在等待期间内拿到了锁,则返回true。...

2021-11-16 14:39:17 527

原创 JVM知识点

1.JVM组成2.​​​​​​​程序计数器3.虚拟机栈

2021-09-15 23:36:50 147

原创 滤器和拦截器

滤器和拦截器都属于面向切面编程的具体实现。1、Filter是依赖于Servlet容器,属于Servlet规范的一部分,而拦截器则是独立存在的,可以在任何情况下使用。2、Filter的执行由Servlet容器回调完成,而拦截器通常通过动态代理的方式来执行。3、Filter的生命周期由Servlet容器管理,而拦截器则可以通过IoC容器来管理,因此可以通过注入等方式来获取其他Bean的实例,因此使用会更方便。...

2021-09-12 19:55:33 79

原创 spring声明式事务控制

1.平台事务管理器2.事务通知的配置3.事务AOP织入的配置

2021-09-10 11:27:55 67

原创 需要不断学习

1.网络2.操作系统3.数据库 数据库设计底层树,最左前缀

2021-09-08 16:56:05 60

原创 spring的简介

1.方便解耦,简化开发2.AOP编程的支持3.声明式事务控制

2021-09-07 15:46:35 39

原创 序列化和反序列化

1.ObjdectOutputStream,ObjectInputStream2.给对象SerializableUid3.transient不被序列化1)一旦变量被transient修饰,变量将不再是对象持久化的一部分,该变量内容在序列化后无法获得访问。2)transient关键字只能修饰变量,而不能修饰方法和类。注意,本地变量是不能被transient关键字修饰的。变量如果是用户自定义类变量,则该类需要实现Serializable接口。3)被transient关键字修饰的变量不再能被序

2021-09-07 10:27:58 48

原创 java复习纲领

1.并发编程2.JVM3.集合4.spring:IOC,AOP,事务5.springboot springcloud6.mysql7.redis nginx rabbitmq es

2021-09-06 18:55:42 86

原创 阻塞队列和非阻塞队列

(非阻塞队列) 一个线程的失败或挂起不应该影响其他线程的失败或挂起,这样的算法称为非阻塞算法;ava中提供了基于CAS非阻塞算法实现的队列,比较有代表性的有ConcurrentLinkedQueue和LinkedTransferQueue。ConcurrentLinkedQueue:是一个基于链表的无界线程安全队列,它采用先进先出的规则对节点进行排序,当我们添加一个元素的时候,它会添加到队列的尾部;当我们获取一个元素时,它会返回队列头部的元素。Concurren...

2021-09-06 14:38:49 526

原创 正则校验手机号

手机号1:"^[1][3,4,5,7,8][0-9]{9}$"手机号2:"^((13[0-9])|(14[5,7,9])|(15[^4,\\D])|(17[0,1,3,5-8])|(18[0-9]))\\d{8}$"

2021-09-06 11:34:09 47

原创 事务失效场景

1.@Transactional应用在非public修饰的方法上2.@Transactional 注解属性 propagation 设置错误 事务的传播行为值设置错误3.Propagation.REQUIRED:如果当前存在事务,则加入该事务,如果当前不存在事务,则创建一个新的事务。( 也就是说如果A方法和B方法都添加了注解,在默认传播模式下,A方法内部调用B方法,会把两个方法的事务合并为一个事务 );4.@Transactional 注解属性 rollbackFor 设置错误(继承自 Runt

2021-09-06 11:21:25 59

原创 mybatis和jpa区别

1.jap是对象与对象之间的映射,而mybatis是对象与结果集的映射。2.项目移植时候mybatis修改修改大量sql配置文件。3.修改字段时mybatis特别费事。

2021-09-06 10:31:31 678

原创 防止死锁:

线程在获得一个锁L1的情况下再去申请另外一个锁L2,也就是锁L1想要包含了锁L2,也就是说在获得了锁L1,并且没有释放锁L1的情况下,又去申请获得锁L2,这个是产生死锁的最根本原因。 在对象的同步方法中又条用了另一个对象的同步放方法,就存在死锁的可能性。 public void m2(){ ···· synchronized(this){ // do something } ····b.method1(); ...

2021-09-06 10:05:23 89

原创 spring事务的传播机制

Spring支持7种事务传播行为:PROPAGATION_REQUIRED 如果当前没有事务,就新建一个事务,如果已经存在一个事务中,加入到这个事务中。这是最常见的选择。 PROPAGATION_SUPPORTS 支持当前事务,如果当前没有事务,就以非事务方式执行。 PROPAGATION_MANDATORY 使用当前的事务,如果当前没有事务,就抛出异常。 PROPAGATION_REQUIRES_NEW 新建事务,如果当前存在事务,把当前事务挂起。 PROPAGATION_NOT_SUPPOR

2021-09-06 09:44:06 62

原创 mybatis常用标签

<where>,<if>,<resultType>,<resultMap>,<paramterType>,<association>,<collection>,<choose>,<otherwise>:类似于Java 的switch 语句,choose为switch,when为case,otherwise则为default。<foreach>:可在sql中对集合进行迭代。也常用到批

2021-09-06 09:40:46 47

原创 Docker

1.docker是一个进程,管理了好多容器。

2021-09-05 17:50:36 49

原创 分布式事务

一次事务操作涉及多个系统通过网络协同完成的过程称为分布式事务。1.充值加积分 充值系统是一个独立的系统,积分系统是个独立的系统 。用户充值两个系统协同工作。CAP理论 :c一致性(consistency),可用性(availability),分区容忍性; 节点越多:一致性越差,可用性越高 分区容忍性就是允许系统通过网络协同工作。(分布式系统必须满足分区容忍性)解决方案: 1.两阶段提交协议(2pc)数据库分布式: 第一阶段:准备...

2021-09-02 15:49:11 58

原创 SQL优化

1.先看慢查询日志,输入showprocesslist,查询出那些sql查询起来比较慢,对sql进行优化.2. 按照主键顺序插入:使用mysql搜索引擎是inndb数据结构是B+树中数据是有序的。1.建议导入文件时按照主键顺序,这样比较快。2.关闭唯一性校验,导入完成后开启唯一性校验。 3.关闭自动提交.3.insert优化:insert时候对主键进行排序;一次性insert插入多条数据,每次insert都只插入一条数据的话,会与数...

2021-09-01 22:04:17 50

原创 springbean生命周期

1.createBeanInstance() 实例化2.populatebean()属性赋值3.initializeBean() 初始化4.销毁

2021-09-01 21:32:37 76

原创 redis面试题

1.redis的物种数据结构:字符串、列表、集合、hash、有序集合2.redis为什么快: 1.数据加载到内存. 2.数据结构简单 3.采用的单线程,不存在多进程和多线程导致cpu的消耗,不存在加锁和释放锁的操作,不会出现死锁。 4.使用多路 I/O 复用模型,非阻塞 IO.3.持久化: 1.AOF: 每次写命令记录到单独的日志文件。 2.RDB: 按照一定的时间将内存的数...

2021-09-01 11:49:53 65

原创 事务的特性和隔离级别

特性:原子性,隔离性,一致性,持久性隔离级别:1.脏读:事务A读取到了事务B的更新数据,但是B事务进行了回滚操作,A 事务读到的数据成了脏数据。2.不可重复读:事务A对事务B的同一数据读取多次,在这期间事务B对数据做了更新和提交,导致A读取的数据不一致。3.幻读:系统管理员A 将数据库中所有学生成绩分成了ABCD这是个等级,但是系统管理员B就在这时候插入了一条具体的分数,当系统管理员A提交结束后,发现有一条数据没有改过来,就好像发生了幻觉一样,这就是幻读。不可重复读的和幻读很容易混淆,不

2021-09-01 10:43:15 41

原创 beanfactory和ApplicationContext

1.applicationContext继承了beanfactory。2.beanfactory比较古老,无法支持spring插件,如aop和web应用等功能。3.如果配置bean是单例的化,applicationcontext会初始化bean饿汉式,beanfactory是懒汉式,用到了才会去实列化。...

2021-08-31 17:53:58 93

原创 springboot启动顺序

1.加载启动命令传入的参数2.加载操作系统的环境变量3.加载当前应用jar之外的properties文件或yaml文件4.加载当前应用jar之内的properties文件或yaml文件5.加载当前应用jar之外的properties文件或yaml文件内容6.加载当前应用jar之内的properties文件或yaml文件内容7.加载含有@Configuration注解类,通过@propertySource注解定义的属性8.最后加载默认属性...

2021-08-31 16:58:32 1884

原创 springboot自动装配

springboot中关于自动装配的源码都在一系列springbootautoconfigure-***.jar中。首先说一下springbootapplication这个注解,这个注解是一个联合注解,它是由@springbootconfiguration 表示这个类是一个配置类;@componentScan组件扫描;@EnableAutoConfuguration组成,在项目启动时会执行springapplication.run()这个方法,这个方法的内部又会去执行selectimports()这

2021-08-31 16:04:07 93

原创 springboot启动流程

1.

2021-08-31 15:15:26 40

原创 springnboot和springcloud常用注解

springboot:1.@springbootapplication注解;包含springbootconfiguration,@enableAutocConfiguration,@conpenentScan. @springbootConfiguration标注当前类是配置类,这个类继承@Configuration,并将当前类申明的一个或多个已@bean注解标记的方法纳入到spring容器里,实列名就是方法名。 @EnableAutoConfiguration自动配置的注解,这个注解会...

2021-08-31 11:26:56 363

原创 hashmap常见面试题

hashmap的特性: 1.hashmap是键值对存储实现快速存储,允许为null,key键不可重复,ruo键重复将覆盖; 2.非同步,线程不安全; 3.底层是hash表不能保证有序性。hashmap底层原理: 1.是基于hash的原理,(jdk7是数组和链结构)jdk8后采用了数组+链+红黑树的数据结构,通过get和put方法进行存储和获取对象, 当我们给put方法传递键和值时,先对键做一个hashcode()的计算得到它在bucket数组中的位置来存储entry...

2021-08-30 18:55:34 342

原创 Mysql常见面试题

1.linux远程链:1.需要mysql授权远程登录。2.关闭linux防火墙。2. 索引:数据结构(有序),高效获取数据,类似书本的目录。二叉树。搜索引擎:innodb(索引是b+树)索引分类:单值索引(单个列);唯一索引(列中值唯一,可以为null);复合索引(一个索引包含读个列);索引优劣:劣势:索引过多会引入相当高的维护代价。对于插入,更新,删除等操作增加操作时间。3.聚合函数:AVG;COUNT;MIN/MAX;SUM;存储过程:declare 申明变量;procedur...

2021-08-30 16:27:32 45

空空如也

空空如也

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

TA关注的人

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