Java
文章平均质量分 81
开心就好啦啦啦
这个作者很懒,什么都没留下…
展开
-
大厂面试题分享第二期
大厂面试题分享第二期原创 2024-08-11 16:37:14 · 779 阅读 · 0 评论 -
大厂面试题分享第一期
大厂面试题分享第一期原创 2024-08-09 16:13:56 · 907 阅读 · 0 评论 -
Java中三种方式实现多线程交替打印ABC
实现java通4个线程顺序打印ABC四个字母,第一个线程打印A,第二个线程打印B,第三个线程打印C,每个线程打印10次。原创 2024-06-19 10:49:03 · 435 阅读 · 0 评论 -
分布式事务Seata中XA和AT模式介绍
跨数据源的分布式事务跨服务的分布式事务订单的创建、库存的扣减、账户扣款在每一个服务和数据库内是一个本地事务,可以保证ACID原则。但是当我们把三件事情看做一个"业务",要满足保证“业务”的原子性,要么所有操作全部成功,要么全部失败,不允许出现部分成功部分失败的现象,这就是分布式系统下的事务了。原创 2024-06-05 10:50:47 · 1008 阅读 · 0 评论 -
SpringCloud整合Seata简易使用(注册中心Nacos)
启动成功后,即可访问 http://127.0.0.1:7091/#/login 该地址进入seata的webui,用户名与密码默认为seata,只需要在最外层方法上添加注解即可,子事务方法上不需要添加@GlobalTransactional与@Transactional注解。本案例是在windows中运行的,项目中启动的注册中心为Nacos,分布式事务Seata均在window下进行的。服务启动后,在Seata启动的控制台中可以看到相关日志如下。5. 在window中启动seata。原创 2024-06-04 19:31:23 · 773 阅读 · 0 评论 -
仿奈雪的茶项目(SPU和SKU)——免费分享
最近,在把奈雪的茶项目时,碰到了一个小难题,说难也不难,。这种情况该如何创建表结构呢?原创 2024-04-26 13:44:34 · 389 阅读 · 1 评论 -
uniapp微信小程序(商城项目)
经过我的测试,基本上能正常使用,用来做个毕业设计应该问题不大,但是可能还会出现一些我没发现的bug,但bug存在不是很正常的嘛,我就想问哪个软件没有bug呢,后面打算把这个商城的后台管理系统干出来,目前找到了一个成熟的后台管理系统,打算在此基础上面改。后面如果有可能的话(资金够的话),想部署到云服务器上。大家如果有需要的源码,可以来找我哦,至于有偿还是无偿都可以商量,原创 2024-04-20 10:45:24 · 1763 阅读 · 0 评论 -
常见的四种限流算法及基础实现
限流是对某一时间窗口内的请求数进行限制,保持系统的可用性和稳定性,防止因流量暴增而导致的系统运行缓慢或宕机。在高并发系统中,出于系统保护角度考虑,通常会对流量进行限流。在分布式系统中,高并发场景下,为了防止系统因突然的流量激增而导致的崩溃,同时保证服务的高可用性和稳定性,限流是最常用的手段。原创 2024-04-01 11:00:38 · 1191 阅读 · 0 评论 -
通俗易懂synchronized的底层原理
每个对象都是一个监视器锁(monitor),当monitor被占用时就会处于锁定状态,线程执行monitorenter指令时尝试获取monitor的所有权,过程如下:如果monitor的进入数为0,则该线程进入monitor,然后将进入数设置为1,该线程即为monitor的所有者。**指令执行时,monitor的进入数减1,如果减1后进入数为0,那线程退出monitor,不再是这个monitor的所有者。这是因为静态成员不属于任何一个实例对象,归整个类所有,不依赖于类的特定实例,被类的所有实例共享。原创 2024-03-21 20:01:18 · 727 阅读 · 0 评论 -
redis和rabbitmq实现延时队列
一般来说,producer 将消息投递到 broker 或者直接到queue 里了,consumer 从 queue 取出消息进行消费,但某些时候由于特定的原因导致queu 中的某些消息无法被消费,这样的消息如果没有后续的处理,就变成了死信,有死信自然就有了死信队列。例如,当用户完成某个操作后,系统可以将相关通知消息放入延迟队列,并设置一定的延迟时间,以便在合适的时机发送通知给用户。当QA和QB队列中的消息,达到设定的TTL(10s和40s)后,将进入指定的死信队列QD。组合实现延迟队列的效果。原创 2024-03-19 19:36:02 · 1522 阅读 · 0 评论 -
为什么MySQL选择B+树做索引
B+树非叶子节点上是不存储数据的,仅存储键值,而B树节点中不仅存储键值,也会存储数据。2. 从业务场景上说,如果只选择一个数据那确实是hash更快,但是数据库中经常会选中多条这时候由于B+树索引有序,并且又有链表相连,它的查询效率比hash就快很多了,hash还需要解决冲突。:由于B+树的数据都存储在叶子结点中,非叶子结点均为索引,方便扫库,只需要扫一遍叶子结点即可,但是B树因为其分支结点同样存储着数据,我们要找到具体的数据,需要进行一次中序遍历按序来扫,转载 2023-04-16 14:40:06 · 224 阅读 · 0 评论 -
Spring中Bean的安全性问题--面试题
Spring中除了很多内置Bean以外,其他的Bean都是通过Spring配置来声明的,然后由Spring容器统一加载。如:class(全类名)、id(Bean的唯一标识)、Scope(作用域),之后Spring容器根据配置内容使用对应的策略来创建Bean的实例。因此,多例 Bean 是不存在线程安全问题的。在 Spring 定义的作用域中,其中有 prototype(多例 Bean)和 singleton(单例 Bean)。Spring框架里的bean,在获取实例的时候都是默认的。原创 2023-04-12 14:25:00 · 305 阅读 · 0 评论 -
volatile、synchronize的特点和区别
各位,先大概了解什么是线程安全吧?原创 2023-04-04 21:43:22 · 547 阅读 · 0 评论 -
HashMap、ConcurrentHash面试题
插入到链表之后,会将链表的长度更新,如果链表长度大于等于8的话,会将该链表更新会红黑树。Segment数组的意义就是将一个大的table分割成多个小的table来进行加锁,也就是上面的提到的锁分离技术,而每一个Segment元素存储的是HashEntry数组+链表,这个和HashMap的数据存储结构一样。(2)如果Node节点是红黑树节点,会将key value封装成一个红黑树的Node节点将其添加到红黑树中,并且在这个过程中会判断红黑树是否存在要插入的key,如果存在该key,则直接更新value即可。原创 2023-03-29 16:39:18 · 211 阅读 · 0 评论 -
免费分享一个springboot+vue的办公系统
分享一个适合练手的springboot+vue的办公系统原创 2023-03-24 20:31:37 · 820 阅读 · 1 评论 -
基于ssm的BBS社区论坛系统
该项目可以用作计算机毕业设计、Java项目学习使用。运行环境 :idea+mysql5.7+jdk8+maven前端基于Vue开发后端是mysql+Spring+mybatis+SpringMVC注:该项目没有前后端分离部署访问链接本地后台访问:http://localhost:8080/leek_bbs/stair/admin/login本地前台访问:http://localhost:8080/leek_bbs/index。原创 2023-03-23 13:01:46 · 1402 阅读 · 6 评论 -
Spring 循环依赖的三种方式 !
Spring 循环依赖的三种方式 !第一种:构造器参数循环依赖Spring容器会将每一个正在创建的Bean 标识符放在一个“当前创建Bean池”中,Bean标识符在创建过程中将一直保持在这个池中。因此如果在创建Bean过程中发现自己已经在“当前创建Bean池”里时将抛出BeanCurrentlyInCreationException异常表示循环依赖;而对于创建完毕的Bean将从“当前创建Bean池”中清除掉。我们把三个Bean交给Spring管理,并用有参构造实例化StudentA有参构造是Stu原创 2021-02-25 21:36:00 · 201 阅读 · 0 评论 -
Async
异步方法使用static修饰异步类没有使用@Component注解(或其他注解)导致spring无法扫描到异步类异步方法不能与被调用的异步方法在同一个类中类中需要使用@Autowired或@Resource等注解自动注入,不能自己手动new对象如果使用SpringBoot框架必须在启动类中增加@EnableAsync注解@Async异步方法默认使用Spring创建ThreadPoolTaskExecutor。默认核心线程数:8,最大线程数:Integet.MAX_VALUE,队列使用LinkedB原创 2021-01-21 15:17:39 · 630 阅读 · 0 评论 -
JUC--集合不安全类
JUC转载 2020-11-16 10:52:31 · 261 阅读 · 0 评论 -
JUC-阻塞队列
这里写目录标题为什么要用阻塞队列?有什么好?实现类BlockQueue的一些方法生产者消费者模式的传统版实现?(synchronized版和Lock版)生产者消费者模式的阻塞队列版实现?为什么要用阻塞队列?有什么好?阻塞就是线程挂起,当满足条件后,又被唤醒。为什么需要BlockingQueue?不再需要关心线程阻塞和唤醒的时机,因为BlockQueue包办了这个细节在阻塞队列出现前,程序员必须手动控制这些细节,兼顾效率和线程安全,增加了开发难度实现类*ArrayBlockingQueue原创 2020-11-16 10:47:43 · 209 阅读 · 0 评论 -
ThreadLocal保证线程安全-面试题
ThreadLocalMap 使用 ThreadLocal 的弱引用作为 key,如果一个 ThreadLocal 没有外部强引用来引用它,那么系统 垃圾回收 的时候,这个 ThreadLocal 势必会被回收,这样一来,ThreadLocalMap 中就会出现 key 为 null 的 Entry,就没 有办法访问这些 key 为 null 的 Entry 的 value,如果当前线程再迟迟不结束的话,这些 key 为 null 的 Entry 的 value 就会一直存在,造成内存 泄漏。原创 2020-11-16 10:45:43 · 115 阅读 · 0 评论 -
springboot配置ELK日志分析系统
springboot配置ELK日志分析系统环境配置下载组件配置Elasticsearch配置Kibana配置Logstashspringboot服务测试环境配置下载组件下载组件官网https://www.elastic.co/cn/downloads配置Elasticsearch修改配置文件vim elasticsearch/config/elasticsearch.yml//配置外网连接,如果不能用请检查防火墙配置node.name: node-1network.host: 0.0.原创 2020-09-16 10:00:13 · 544 阅读 · 0 评论 -
springboot配置@spring.profiles.active@配置
一 pom.xml配置如下:<profiles> <profile> <id>dev</id> <properties> <spring.profiles.active>dev</spring.profiles.active> </properties> <act原创 2020-08-17 10:26:39 · 7309 阅读 · 0 评论 -
mybatis-plusjava.lang.IndexOutOfBoundsException:Index:11,Size:11
使用mybatis plus报错:mybatis-plusjava.lang.IndexOutOfBoundsException:Index:11,Size:11lombok中@Builder注解 :当数据库字段和实体类字段个数一样 可以不用加显示的声明构造方法, 但是如果需要加一些不属于该表的字段就需要加显示的声明构造方法,或者使用@AllArgsConstructor @NoArgsConstructor来声明构造。或者不用@Builder注解。 @TableField(exist = fa原创 2020-08-07 18:37:54 · 2914 阅读 · 0 评论 -
Logback.xml
<?xml version="1.0" encoding="UTF-8"?><configuration scan="true" scanPeriod="10 seconds" debug="false"> <!-- 项目名称 --> <property name="PROJECT" value="wsc-score" /> <!-- 日志路径 --> <property name="PATH" value=原创 2020-06-02 11:15:17 · 167 阅读 · 0 评论 -
跳跃链表
跳跃链表1跳跃链表2转载 2020-05-10 09:33:24 · 107 阅读 · 0 评论 -
redis集群
redis集群转载 2020-03-26 18:17:56 · 87 阅读 · 0 评论 -
springcloud整合LCN简易demo
LCN框架概念大概如下框架介绍LCN分布式事务框架其本身并不创建事务,而是基于对本地事务的协调从而达到事务一致性的效果。核心步骤创建事务组是指在事务发起方开始执行业务代码之前先调用TxManager创建事务组对象,然后拿到事务标示GroupId的过程。添加事务组添加事务组是指参与方在执行完业务方法以后,将该模块的事务信息添加通知给TxManager的操作。关闭事务组是指在发起方执...原创 2019-09-17 16:09:09 · 603 阅读 · 0 评论 -
端口被占用
1 win+R 打开dos输入netstat -ano查看本机开放的全部端口2 netstat -ano|findstr 6942 查看某个被占用的端口然后用taskkill /pid 5260 /f 删除该进程原创 2019-09-16 13:57:31 · 99 阅读 · 0 评论 -
hashcode()以及equals()方法
先从简单的开始铺垫一下: String str1="11"; String str2="11"; String str3=new String("111"); String str4=new String("111"); System.out.println("两个String类型== 和equals方法 底层都重写了equals方法"); System.o...原创 2019-08-17 19:22:20 · 102 阅读 · 0 评论 -
DBCP连接池简易实现(Oracle)
闲来无事,就看了看连接池,在这里主要讲一下DBCP连接池中的properties配置文件和简单的实现(Oracle数据库)准备工作:(本人小白还不知怎么上传文件)先说一下文件名吧:主要三个jar包:commons-dbcp2-2.6.0.jar、commons-pool2-2.4.2.jar、commons-logging-1.1.1.jar之后是properties配置文件driver...原创 2019-08-16 17:10:37 · 638 阅读 · 0 评论 -
org.springframework.jdbc.BadSqlGrammarException:报SQL语句拼写错误
https://blog.csdn.net/qq_35459724/article/details/85218744org.springframework.jdbc.BadSqlGrammarException:Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: ...转载 2019-08-09 16:43:03 · 727 阅读 · 0 评论 -
Java IO流处理 面试题汇总1
转载Java IO流处理 面试题汇总1. Java中有几种类型的流字符流和字节流。字节流继承inputStream和OutputStream,字符流继承自InputSteamReader和OutputStreamWriter。(注意:inputStream、OutputStream、Reader、Writer抽象类 InputSteamReader继承了Reader,OutputStre...转载 2019-08-04 21:52:42 · 521 阅读 · 2 评论 -
java实现支付宝简易支付
首先进入蚂蚁金服开发平台点击添加功能–> 添加沙箱应用、沙箱账号、沙箱工具即可进入沙箱应用可以看到APPID、支付宝网关、RSA2密钥这些稍后会用到注意:这里的RSA2密钥我已经设置好了,设置方式如下图:点击“生成方法”之后,可以看到如图进行工具下载(上面步骤很详细):生成后在工具文件夹中既可查看生成的公钥和私钥:之后私钥保存后面配置文件会用到,应用公钥设置到RSA2...原创 2019-06-18 20:49:30 · 1295 阅读 · 0 评论