自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

欢迎光临雨落星辰的博客

欢迎光临雨落星辰的博客

  • 博客(743)
  • 资源 (13)
  • 问答 (25)
  • 收藏
  • 关注

原创 电商项目设计

秒杀业务流程图_00。

2023-01-28 16:24:14 9

原创 图片图片图片

图片

2023-01-27 19:34:00 8

原创 csdn博客系统

这个系统中存在虚拟货币,可以在商店购买流量(提高文章热度),还可以进行转账,为了提高系统响应速度以及避免出现死锁,我破坏了形成死锁条件,在获取交易双方的信息的时候,按照id进行排序,然后按序拿竞态资源,为了避免发布文章时进行转账导致锁冲突的偶然事件,我设定了一种新的字段(用来记录“可用文章数量”),在商店中可以通过这个数量来兑换虚拟货币,当发生锁冲突的时候提示“缺货,正在补货”。并且为了避免系统压力过大(毕竟是一个小服务器),没有开发私聊功能,并且在聊天室中发送消息是有时间限制的,每10秒才可以发送一次。

2023-01-27 19:25:32 14

原创 ArrayList和LinkedList的区别。

从结构来看ArrayList内部是一个Object数组,LinkedList则是一个双向链表。也正是因为数据结构的特点,A在尾部进行add、delete操作时时间复杂度为O(1),但是在中间则需要对数据进行copy,性能是比较差的;而L对于这种写操作性能是比较好的,仅仅修改对应node中指针的引用即可,对于读操作,如果指定具体的下标位置的话,A的性能比较好(随机访问)。在空间占用方面A仅仅可能在尾部存在未存储数据的空间,而L则是因为Node节点需要维护双线链表,引用较多造成的空间占用比较大。

2023-01-14 14:00:04 12

原创 ArrayList和Vector的区别。

ArrayList和vector都是list的实现类,前者是线程不安全的,后者虽然打着线程安全的旗号,但事实是vector并不能保证线程安全,vectot的线程安全是通过加锁来实现的,使用关键字对非静态方法进行修饰,那么也仅仅是对多个线程调用同一个方法起到线程同步的作用,但事实是开发者再使用list的时候难免会出现delete和add都是用的情况,因为锁的对象不一致,就会出现vector所维护的数组数据出现不可预估的状态。然后arrayList扩容一次1.5倍,相较于vector的2倍来说更加平滑。

2023-01-14 13:33:40 15

原创 netty有哪些组件?

2、EventLoopGroup:这个我把它理解为一个Reactor池,可以存在一个处理连接事件的Reactor池以及处理io的Reactor池,池里面的EventLoop就是事件循环,就是一个EventLoop中可以绑定多个channel,并对其进行监听,这其实也可以理解为EventLoop就是网络编程中的selector,channel就是socket,绑定的事件就是selectKey。1、BootStrap:这个相当于是一个启动器,通过它将管道、事件循环、channelHandle等进行加载控制。

2023-01-12 16:26:19 11

原创 netty有哪些应用场景?

注册中心比如dubbo,用netty实现一些信息传输,心跳什么的。消息队列也可以使用netty。个人也可以做一个http服务器啥的,而且netty也可以实现ssl,做好之后用浏览器试试。还可以用来做IM系统,都是可以的,而且很方便。netty的应用场景很广泛,有些比较有名气的框架多多少少都使用了netty来实现网络交流。具体来说,可以用netty来实现一个。

2023-01-12 15:52:07 16

原创 说一下你对netty的理解

netty是一个优秀的网络编程框架,操作系统根据五层模型开发了各种各样的协议,然后为了方便开发者使用,对协议进行了包装,也就是socket,但是直接使用socket开发难度比较高,容易出现内存溢出或者性能不佳、难以维护和扩展等情况。netty本身支持多种io模型,而且对部分应用广泛的协议做了实现,比如http、ftp、ssl等,他的可扩展性很高,应用的功能(具体什么功能,就比如解码编码,加密解密,数据包的解析等等)通过一批channelhandle来实现,并且对下层协议的粘包分包等特性做了相关的优化实现。

2023-01-12 14:34:57 11

原创 得到 K 个黑块的最少涂色次数

leetcode 2379. 得到 K 个黑块的最少涂色次数给你一个长度为 n 下标从 0 开始的字符串 blocks ,blocks[i] 要么是 ‘W’ 要么是 ‘B’ ,表示第 i 块的颜色。字符 ‘W’ 和 ‘B’ 分别表示白色和黑色。给你一个整数 k ,表示想要 连续 黑色块的数目。每一次操作中,你可以选择一个白色块将它 涂成 黑色块。请你返回至少出现 一次 连续 k 个黑色块的 最少 操作次数。示例 1:输入:blocks = “WBBWWBBWBW”, k = 7输出:3解释:一种得到

2022-12-06 12:33:41 386 4

原创 重复的DNA序列

leetcode 187. 重复的DNA序列DNA序列 由一系列核苷酸组成,缩写为 ‘A’, ‘C’, ‘G’ 和 ‘T’.。例如,“ACGAATTCCG” 是一个 DNA序列 。在研究 DNA 时,识别 DNA 中的重复序列非常有用。给定一个表示 DNA序列 的字符串 s ,返回所有在 DNA 分子中出现不止一次的 长度为 10 的序列(子字符串)。你可以按 任意顺序 返回答案。示例 1:输入:s = “AAAAACCCCCAAAAACCCCCCAAAAAGGGTTT”输出:[“AAAAACCCCC”

2022-12-06 12:30:30 33

原创 无重复字符的最长子串

示例 1:输入: s = “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: s = “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例 3:输入: s = “pwwkew”输出: 3解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。请注意,你的答案必须是 子串 的长度,“pwke” 是一个子序列,不是子串。

2022-12-06 11:25:45 24

原创 长度最小的子数组

leetcode209.给定一个含有 n 个正整数的数组和一个正整数 target 。找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, …, numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。示例 1:输入:target = 7, nums = [2,3,1,2,4,3]输出:2解释:子数组 [4,3] 是该条件下的长度最小的子数组。示例 2:输入:target = 4, nums = [1,4,4]输出:1示

2022-12-06 10:32:59 13

原创 说一说你对Spring IoC的理解

ioc控制反转,ioc容器内部就是beanFactory,它通过di——依赖注入的共功能将xml、通过注解、扫描包的形式将字节码加载为bean,这些bean通过name或者type的形式作为key在单例池中进行存储,我们在使用的时候通过di,可以减少类与类之间的耦合关系,以及开发人员的后期维护也会减轻很多压力,因为在启动的过程中单例bean都已经创建好了,所以在运行时使用这些bean的效率也很高,可以提高系统性能,因为spring中后置处理器的存在,ioc容器的扩展性也很高,可以通过值定义某些beanfac

2022-09-13 19:58:37 89

原创 介绍一下Java中的序列化与反序列化

序列化就是将对象转化成字节序列,这些字节序列可以传到磁盘中也可以在网络中传输。序列化是将对象写入IO流中,反序列化时将IO流中的字节序列写入对象。在java中若是要进行序列化,就要添加Serializable接口,说明是可以进行序列化的类。类中的引用变量也是可序列化的,类的父类或者间接的父类也具有serializable接口或者具有无参构造函数。序列化的目的时将对象中的参数转化成字节序列,与成员方法无关,一个对象只能被序列化一次。

2022-09-13 19:46:22 98

原创 介绍一下mysql数据库分页

limit在m比较大的时候性能比较低。因为他会舍弃一大部分的数据,造成巨大的性能浪费,所以在使用的时候如果可以的话可以使用范围查询然后再进行分页,或者尽量使用到覆盖索引。mysql数据库分页是通过limit来实现的,limit有两种用法,第一种:从第一条数据开始读取n条数据。第二种:从第m条数据开始读取n条数据。

2022-09-13 19:06:12 113

原创 说说怎么保证线程安全

jmm本身的结构时不同于系统内存的,在JMM中存在堆栈,这些堆栈都存储在系统内存中,当有线程执行的时候才会加载到cpu缓存和寄存器中。volatile使用lock前缀指令来实现这些功能从而保证可见性,volatile使用到了内存屏障(storestore、storeLoad、loadstore、loadload)来禁止指令重排序、比如说在volatile写前面无论是任何操作都会保证有序性、在volatile读后面的任何操作也不会重排序,volatile写+volatile读也不会发生重排序。

2022-09-13 18:43:51 86

原创 请你说说多线程

随着计算机的发展,现在一颗CPU上可以存在多个核心。相比于曾经的分时操作系统同时只能执行一个应用,再多核CPU系统中,可以同时执行多个应用。线程时系统的最小执行单元,一个进程中存在多个线程,这些线程可以共享进程的堆栈、代码段(代码块)、数据段(全局变量,静态变量)等内存空间,并且可以共享进程的IO资源、文件、CPU。每个线程都拥有各自的线程栈空间用来存储操作数、局部变量等信息。多个线程共享进程的CPU资源以达到同时运行的情况,利用多线程可以更好地利用系统资源。

2022-09-12 11:44:10 141

原创 请你说说MySQL索引,以及它们的好处和坏处

3、这些索引的优缺点:hash索引能够更快的支持单点查询、In操作、但是因为数据的分布是随机的,所以在进行一些逻辑操作,比如group by、order by、排序等操作时它的效率很低很低,并且hash索引还存在hash冲突问题,进一步降低了hash索引的效率。B+树则是分配一页大小的大节点,然后再大节点上分配小节点和间隙节点,而且不同于红黑树,B+树再小节点中仅仅存储索引字段,而数据存在于叶子节点中,叶子节点还通过双向指针相互指向,使得在进行函数计算时也可以很好的利用到索引。

2022-09-12 11:34:40 161

原创 线程和进程的区别

1、资源分配:进程的IO和内存资源由系统分配,每个进程的分配的内存资源都不相同的同时系统还给其分配了供进程进行系统调度操作的共享内存资源,以进行进程间通信;线程则存在于进程中,一个进程可以包含多个线程,这些线程使用共同的进程资源。然而同一个进程中的线程则是可以互相影响的,一旦线程之间存在同步操作,一个线程出错可能导致整个进程崩溃。4、上下文切换:进程所持有的资源要多于线程,在上下文切换时,寄存器指令计数器的部分组件之中的数据更多,使得PCB更大,在生成和解析的过程会占用更多的时间。

2022-09-12 11:07:43 61

原创 什么是CAS

简单来说,cas就是比较并交换,它是一种用户态不涉及进程上下文切换的一种无锁的保证数据原子性的操作。它的原子性始在硬件层面通过lock前缀和比较并切换指令来实现的。在java层面的实现是Unsafe里面的compareAndSwapObject、conpareAndSwapInt、compareAndSwapLong,这三个方法都是native修饰的,也就是jvm层面实现的。用的时候按顺序给他传对象实例,字段偏移量,预估值,更新值,来使用。他在硬件方面的实现,主要就是对字段偏移量的操作,这个字段偏移量就是对

2022-07-07 22:40:38 154 1

原创 vue学习笔记

vue的特点采用组件化模式,提高代码复用率、且让代码更好维护。声明式编码(与之对应的是命令式编码),让编码人员无需直接操作DOM,提高开发效率。使用虚拟DOM+优秀Diff算法,尽量复用DOM节点。...

2022-05-31 08:26:44 96 3

原创 spring startup

首先引入依赖。 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency>启动类: SpringApplication application = n

2022-04-23 19:50:54 502

原创 当对象为null时,如何toString()

package aa;import org.apache.commons.lang3.StringUtils;import java.util.Objects;public class AADemo_4 { public static void main(String[] args) { User1 user1 = new User1("xiaowang",17); User1 user11 = null; System.out.print

2022-04-21 20:14:30 1034

原创 重写hashCode和equals方法

本文已参与「新人创作礼」活动,一起开启掘金创作之路。首先写入三个学生,学生的唯一标识是学号。import java.util.HashMap;public class AADemo_2 { public static void main(String[] args) { HashMap<Student,String> map = new HashMap<>(); Student student1 = new Student("1号",1

2022-04-17 22:01:43 438

原创 接口幂等性

本文已参与「新人创作礼」活动,一起开启掘金创作之路。一、什么是接口幂等概念接口幂等性就是用户对于同一个接口发起的一次请求或者多次请求的结果是一致的,不会因为多次请求而产生不同的结果。案例用户购买商品后需要进行支付,支付扣款成功,但是返回结果的时侯报网络异常,此时钱已经扣了,用户不知道并再次点击支付按钮,此时会进行第二次扣款,返回结果成功,用户查询余额发现扣了两次款,多扣钱了,流水记录也生成了两条,这其实就没有保证接口的幂等性。增删改查涉及的幂等性问题查询操作select * fro

2022-04-16 23:01:11 3512

原创 java String的intern()方法

本文已参与「新人创作礼」活动,一起开启掘金创作之路。本文章所用jdk版本为jdk1.8先看第一个例子public class HelloWorld { public static void main(String[] args) { String s1 = new String("hello") + new String("world"); s1.intern(); String s2 = "helloworld"; Syste

2022-04-15 21:19:43 1292

原创 JVM——运行时常量池

1、常量池,就是一张表,虚拟机指令根据这张表找到要执行的类名、方法名、参数类型、字面量信息。2、运行时常量池,常量池是 *.class文件中的,当该类被加载,它的常量池信息就会放入运行时常量池,并把里面的符号地址变为真实地址。https://www.bilibili.com/video/BV1yE411Z7AP?p=26&spm_id_from=pageDriver...

2022-04-14 15:46:10 939

原创 JVM——方法区_常量池

javap -v Helloworld.class可以显示反编译后的详细信息示例:C:\Users\top\Downloads\untitled5>javap -v target/classes/aa/HelloWorld.classClassfile /C:/Users/top/Downloads/untitled5/target/classes/aa/HelloWorld.class Last modified 2022年4月14日; size 539 bytes SHA-256

2022-04-14 15:39:39 57

原创 Mybatis(3)

二级缓存为什么有了一级缓存后,还需要有二级缓存呢?二级缓存是应用级缓存,也使得它具有更多的存储方式(redis,内存),而一级缓存只能在内存中存储数据。并且二级缓存存储的是应用整个生命周期的缓存,所以必须限制它的容量。既然要限制它的容量,就要有数据淘汰的机制。而一级缓存是不需要考虑这些的。二级缓存的组件结构...

2022-04-14 12:53:19 639

原创 Mybatis(2)

一级缓存的作用域默认情况下,一级缓存的作用域是Session(会话级别的)源码如下:它一共有两种级别,源码如下:现在我将他的级别修改为STATEMENT。修改mybatis-config.xml<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/m

2022-04-13 16:21:02 760

原创 Mybatis(1)

JDBC执行流程https://blog.csdn.net/YJT180/article/details/99828947Mybatis执行流程详细来看就是首先学习会话和执行器两部分Mybatis核心执行组件——会话(SqlSession)首先先看Executor最简单的实现——SimpleExecutor先引入Mybatis <dependency> <groupId>org.mybatis.spring.boot&l

2022-04-12 23:53:21 607 2

转载 java深拷贝

https://www.bilibili.com/video/BV1A54y1d7ZLhttps://www.cnblogs.com/xinruyi/p/11537963.html

2022-04-02 15:01:45 44

原创 concurrenthashmap

有参构造后第一次put时会进行初始化。初始化的容量并不是所传入的数。源码: public ConcurrentHashMap(int initialCapacity) { if (initialCapacity < 0) throw new IllegalArgumentException(); int cap = ((initialCapacity >= (MAXIMUM_CAPACITY >>> 1)) ?

2022-03-27 16:25:50 180

原创 equals

基本类型没有equals方法。但是这些基本类型的包装类具有equals方法。Objects中的equals public boolean equals(Object obj) { //判断是不是同一个引用对象,而不是对象中定义变量的内容。 return (this == obj); }eg:public class Car { Integer a; public Car(Integer a) { this.a = a;

2022-03-25 15:21:40 268

转载 什么是线程组,为什么在Java中不推荐使用?

2022-03-08 20:47:50 249

转载 Java中用到的线程调度算法是什么?

2022-03-08 20:42:00 199

转载 CountDownLatch和CyclicBarrier

作者:一团捞面链接:https://www.jianshu.com/p/333fd8faa56e来源:简书著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。CyclicBarrier 是什么?从字面上的意思可以知道,这个类的中文意思是“循环栅栏”。大概的意思就是一个可循环利用的屏障。它的作用就是会让所有线程都等待完成后才会继续下一步行动。举个例子,就像生活中我们会约朋友们到某个餐厅一起吃饭,有些朋友可能会早到,有些朋友可能会晚到,但是这个餐厅规定必须等到所有人到齐之后才会让我

2022-03-08 20:16:06 20

转载 为什么我们调用start()方法时会执行run()方法,为什么我们不能直接调用run()方法?

2022-03-08 19:58:59 46

转载 什么是Callable和Future?

2022-03-08 18:36:20 106

转载 什么是Executors框架?

2022-03-08 18:31:09 100

spring源码万字分析

spring源码万字分析spring源码万字分析spring源码万字分析spring源码万字分析spring源码万字分析

2023-01-28

如何使用Xshell连接VMware上的Linux虚拟机.7z

如何使用Xshell连接VMware上的Linux虚拟机

2021-05-29

bootstrap-3.4.1.zip

bootstrapbootstrapbootstrapbootstrap

2021-05-15

django TIME_ZONE.7z

django TIME_ZONE

2021-05-11

django重定向应用程序.7z

RedirectFallbackMiddleware

2021-05-11

django内置组件ContentTypes.7z

django内置组件ContentTypes

2021-05-10

etag的讲解etag的讲解

etag etag

2021-05-09

flex布局教程.7z

flex布局教程

2021-05-06

学生用水管理系统.7z

django写的小项目

2021-01-20

django2.7z

Django 2 By Example Django 2 By Example Django 2 By Example Django 2 By Example Django 2 By Example

2021-01-14

计算机组成原理期末试题总结.txt

计算机组成原理试题总结

2021-01-01

adblock-3.57.0-Crx4Chrome.com.crx

去除谷歌浏览器的广告

2020-12-24

Dark Reader.7z

Dark Reader 谷歌浏览器护眼插件 解压后,将所解压文件中的crx文件拖拽到谷歌浏览器的扩展程序中就行了。

2020-12-24

djangoProject11.zip

djangoProject11.zip djangoProject11.zipdjangoProject11.zipdjangoProject11.zipdjangoProject11.zipdjangoProject11.zipdjangoProject11.zipdjangoProject11.zipdjangoProject11.zipdjangoProject11.zipdjangoProject11.zipdjangoProject11.zipdjangoProject11.zipdjangoProject11.zipdjangoProject11.zipdjangoProject1

2020-10-22

http报文头部设置httponly之后js脚本就不能获取cookie了吗?

2022-09-26

服务器中Etag存放在哪里?

2022-09-25

bean的延迟初始化

2022-05-04

Setter注入的问题

2022-05-03

websocket可以使用sctp作为应用层协议吗

2022-05-01

sctp如何保证数据的可靠传输?

2022-05-01

socket返回数据失败

2022-04-27

spring中的beanDefinitionMap加锁问题。

2022-04-24

在静态代码块中进行AADemo_5.class.getClass();操作有什么用?

2022-04-23

今天在看Mybatis的视频时,看到了一个弹幕,不知道我的理解对不对。

2022-04-18

关于String的intern

2022-04-14

RabbitMq消费者多次消费同一条数据

2022-04-08

springboot 使用redis构造一个分布式锁,如何定时刷新过期时间。

2022-04-06

请问java如何创建一个bit[] ?

2022-04-06

请问java程序员应该刷leetCode中的哪些算法题?

2022-04-05

请问刷算法题对Java程序员有什么提升

2022-04-05

关于@Transactional的疑惑

2022-03-31

我想要找个师傅带我?

2022-03-16

为什么我使用了范型,输出结果却不是想要的结果?

2022-03-11

volatile在高并发环境下能保证可见性和指令重拍吗?

2022-03-10

idea中的target文件夹,是类加载器的文件夹吗

2022-03-06

打开IDEA出现这种情况?

2022-03-05

为什么ArrayList构造时是{},输出却是[]

2022-03-04

现在很多云厂商的PaaS Redis服务禁用了scan和keys,这种场景下怎么获取所有key呢?

2021-06-12

django 原生user中的字段

2021-05-12

django设置了全站缓存后,配置etag无效,请问如何解决?

2021-05-10

<input type=file> 无法上传文件

2020-10-29

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

TA关注的人

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