自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 问答 (1)
  • 收藏
  • 关注

原创 Java多线程:wait/notify机制-实现生产者消费者(4)

wait和notify都是Object类里面的方法wait是用来阻塞当前线程,线程调用wait方法后会被阻塞并释放线程持有的锁notify使用来唤醒阻塞的线程,线程调用notify方法后并不会立马释放锁,只有执行完同步方法后才会释放锁。除了wait和notify,还有对应的和notifyAll是阻塞多少时间,notifyAll是唤醒所有阻塞线程。wait(0);回到最开始哪个问题,机制是来干什么的机制是用来通信的,并不是完全贴切,

2024-07-17 15:25:19 1037

原创 计算机网络之http:HTTPS和SSL协议介绍(二)

CA也叫做证书授权中心,承担公钥体系中公钥合法性校验的责任,为每个使用公钥的用户颁发一个数字证书,数字证书的作用是证明证书中的用户合法拥有证书中的公钥。现在有的CA机构如DigicertGlobalsign等。数字签名是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。数字签名可以保证数据的完整性,防止数据被篡改,因为数字签名是通过发送的数据产生的,如果数据被修改那么就和数字签名对应不上安全套接层是网景公司在1994年针对http。

2024-07-17 15:18:34 774

原创 springboot异常(二):异常处理的几种方法

Springboot。

2024-07-14 16:54:45 274

原创 springboot异常(一):springboot自定义全局异常处理

自定义一个异常,有两个变量异常代码、异常消息,定义了两个构造方法,一个无参构造方法,一个所有参数构造方法。在构造方法中要掉用父类的构造方法,主要目的是在日志或控制台打印异常的堆栈信息时,要把自己传的异常消息打印出来。

2024-07-13 21:34:08 275

原创 Java基础(三):Java异常机制以及底层实现原理

除了Java中提供的异常之外,我们也可以自定义一些异常,自定义异常可以自定义运行时异常和非运行时异常两种方式。自定义运行时异常之需要继承这个方法即可,这里我们加了一个构造方法,这样可以创建异常对象时加一些描述异常信息。自定义非运行时异常只需要继承Exception,这里也是加了一个构造方法,描述异常信息。

2024-05-07 11:19:24 893 2

原创 Springboot集成shiro,登录重定向跨域问题

现在核心问题,当登录失效之后就不返回状态码302,而是直接调用退出登录接口,这样也能达到重新登录的目的。后来思考了下,跨域是重定向和父页面不同的地址出现的,这个时候在后端怎么配置其实已经没有用了。:判断用户是否登录,如果登陆了直接返回了,如果没有登录就会执行第二个方法。的源码如何来判断用户登录过期的,并且返回302重定向到新接口的。从这里可以看出,如果我们想自己定义返回值的话就要重写这两个方法。这个问题在网上找了很多解决的办法都是通过解决跨域,比如使用注解。项目采用了前后端分离的结构,前端使用的是。

2024-04-08 18:11:53 793

原创 Java基础:枚举(二)

定义枚举类有几个点需要注意1.枚举类的修饰符是enum不是class2.枚举类的变量不需要new来创建3.枚举类必须要所有参数的构造方法,并且构造方法是privateZB(1, "中杯"),DB(2, "大杯"),CDB(3, "超大杯");Enum是Java.lang包下面的一个抽象类,我们自定义的枚举类都会自动的继承这个类。下面一一介绍枚举类的用法,先自定义一个枚举类。ZB(1, "中杯"),DB(2, "大杯"),CDB(3, "超大杯");EnumMap是。

2024-01-24 22:51:44 902

原创 位向量的理解

我们先看一个问题,如果我们有一千万个不重复的数,现在要对这一千万个数进行排序。🥇每一个数都用int来表示,然后把一千万数都读到内存中,然后进行排序。🥈首先一个int类型是四个字节,那么一千万个数就是:10000000 * 4B = 39062.5KB = 38M。

2024-01-23 22:46:10 2143

原创 Java基础:反射(一)

反射类反射方法反射字段反射注解Java反射

2023-11-04 12:51:42 118

原创 计算机网络之http:HTTPS和SSL介绍(二)

CA也叫做证书授权中心,承担公钥体系中公钥合法性校验的责任,为每个使用公钥的用户颁发一个数字证书,数字证书的作用是证明证书中的用户合法拥有证书中的公钥。现在有的CA机构如DigicertGlobalsign等。数字签名是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。数字签名可以保证数据的完整性,防止数据被篡改,因为数字签名是通过发送的数据产生的,如果数据被修改那么就和数字签名对应不上安全套接层是网景公司在1994年针对http。

2023-10-28 10:31:18 822

原创 计算机网络之http:http的基础知识介绍(一)

HTTP协议又叫做超文本传输协议,当我们在浏览器输入url之后,浏览器发送请求,服务端接收到这个请求之后响应请求,然后返回内容。在这一过程中需要一些规范来约束客户端的请求和服务端的响应,这个规范就是HTTP协议。HTTP是我们在开发过程中接触最频繁的,每当我们排查问题的时候第一件事就是f12看看HTTP请求。

2023-09-24 17:50:05 3137

原创 架构设计:登录设计 - Springboot整合shiro及shiro源码阅读

springboot集成shiroshiro源码阅读

2023-09-24 17:15:20 154

原创 设计模式之 - 责任链模式

报销审批业务,现在有经理、部门经理、总经理三个角色,我们在报销的时候需要所有角色审批通过才能报销,而且审批的时候有先后顺序,先经理审批,审批通过交给部门经理,部门经理审批通过交给总经理。请假审批业务,现在有经理、部门经理、总经理三个角色,我们请假的时候只要有一个角色审批了就可以请假了;责任链模式就是完成一件任务,现在有一群做任务的主体,完成这件任务可能需要这些主体中的一个或者多个。上述过程存在的缺点,每个实现类不仅要实现业务,还要负责传递任务,我们把传递任务这个事情交给一个类。的方式来优化一下上述写法。

2023-09-07 20:13:43 83

原创 设计模式之-策略模式

策略通俗的说就是方式方法,做一件事情根据不同的选择,可以有不同的做事方式,不同的方式就是不同的策略。举一个生活中的例子比如要回家这件事,回家需要交通工具,而交通工具有很多种,我们可以通过自己的需求来选择不同的交通工具。🥇如果想快一点,可以选择飞机;🥈如果想看风景,可以选择高铁;🥉如果想舒服一点,可以选择开车想走就走想歇息就歇息;

2023-08-26 22:35:18 56

原创 架构设计:登录设计 - Session和Cookie实现登录

http请求是无状态的,每次请求和响应都是独立的,不会根据前面的请求来处理后面的请求,在。在cookie中存的东西越来越多,导致了每次请求都要带上 这些内容,后来又有一种新的方式。中能获取到用户名称,如果能获取到说明用户是登陆了的,如果不能就跳转到登录页面。又叫做会话控制,是服务器用来保存用户状态而创建的一个对象,每一个。获取到登录输入的用户名和密码,这里不做校验,直接把用户名放到。请求都是独立的,系统没办法识别哪些请求是同一个用户发送的。里面就包含了状态和信息,第一次请求的 时候服务器在。

2023-08-21 15:34:49 723

原创 Java多线程:wait/notify机制(5)

wait和notify都是Object类里面的方法wait是用来阻塞当前线程,线程调用wait方法后会被阻塞并释放线程持有的锁notify使用来唤醒阻塞的线程,线程调用notify方法后并不会立马释放锁,只有执行完同步方法后才会释放锁。除了wait和notify,还有对应的和notifyAll是阻塞多少时间,notifyAll是唤醒所有阻塞线程。wait(0);回到最开始哪个问题,机制是来干什么的机制是用来通信的,并不是完全贴切,

2023-07-14 22:50:31 107

原创 Java多线程:objectMonitor源码解析(4)

wait和notify实现的底层原理objectMonitor源码阅读管程实现原理

2023-07-13 20:35:59 1189 1

原创 JVM:什么是伪共享问题,如何解决伪共享问题(2)

1.什么是伪共享问题2.MESI协议导致伪共享问题3.@Contented注解解决伪共享问题

2023-06-28 22:34:31 468

原创 Window端口占用,强制关闭进程

Window端口占用,找到占用端口的进程,强制关闭进程

2023-06-26 09:28:40 560

原创 JVM:Java内存模型(1)

CPU缓存通常分为了三级缓存,即L1 CacheL2 CacheL3 Cache通常级别越小越靠近CPU,速度越快,容量越小。程序执行的时候会将数据先读取到L3 Cache,然后L2 Cache,最后L1 Cache,而CPU读取的时候先在L1 Cache中查找,如果没找到再到L2 Cache中查找,如果还是没找到最后再到L3 Cache中查找,还是没找到,那只能到内存中查找。在CPU缓存中读取数据都是以缓存行Cache Line为单位的,Cache Line的结构如下在Linux。

2023-06-24 21:31:31 251

原创 Java多线程:线程同步(1)- volatile关键字

可见性就是当一个线程修改了共享变量,其它线程能够立马得知这个修改。

2023-05-31 09:26:07 332

原创 查看java汇编源码报错:Could not load hsdis-amd64.dll; library not loadable; PrintAssembly is disabled

Could not load hsdis-amd64.dll; library not loadable; PrintAssembly is disabled

2023-05-19 09:20:27 580

原创 Java多线程:线程同步(2)- ThreadLocal理解与分析

因为当被回收了以后Entry的key就会为null,而的set方法会主动的清理一次这样的脏Entry,就算是用户忘了手动remove,这里也多了一次程序自动操作,这样能避免内存溢出。如果设计成强引用,就算是的引用断开了,也会因为Entry的key引用导致堆空间的对象不能被回收,这样加大的内存溢出的概率。

2023-04-11 23:40:40 628

原创 Mybatis自定义拦截器@Intercepts失效

mybatis自定义分页拦截器失效,没有执行

2023-03-07 13:02:44 3345 2

原创 typora中插入emoji表情

typora使用emoji表情

2023-01-31 09:27:44 1181

原创 SpringBoot缓存(一)Cache介绍

Spring Cache介绍Spring Cache是spring3.1引入的基于注解的一个缓存技术,它是对缓存的一个抽象,有自己的缓存实现方案,在spring-context包下面org.springframework.cache包里面。缓存实现体系spring-context提供了对SpringCache的实现:ConcurrentMapCache。spring-boot-starter-cache实际上是引入了spring-context-support包,spring只是用这些

2022-04-19 23:07:02 961 1

原创 Java多线程:线程同步(3)- synchronized关键字

什么是线程同步在多线程环境下,当多个线程操作共享变量时,为了保证数据的准确性,而使用一些措施来保证数据的准确性。主要是解决三个问题:原子性,可见性,有序性。线程同步方法synchronizedvolatileLockThreadLocal阻塞队列原子类什么是线程安全​ Java是多线程涉及到多个线程操作共享资源的情况时,处理不好就可能产生线程安全问题。当多个线程共享资源时就会涉及到线程通信问题,线程通信主要的方式时共享内存。​ 共享内存要关注的三个点:可见性和有序性和原子性。Ja

2022-04-19 21:38:01 2301

原创 Java IO流

IO介绍什么是IO流在Java中提供了IO接口,主要用于读写,输入输出操作。IO是以流为基础进行操作的,流相当于是连续的数据流。可以从数据流中读取数据,也可以往流中写数据。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-b6gSZPCU-1649497170739)(./pic/iol.png)]IO分类按流向分:输入流和输出流按数据类型分:字节流和字符流按功能类型分:管道流、文件流、数组流、缓冲流、对象流、转换流、基本数据类型流按照角色类型:节点流和处理流

2022-04-09 17:44:46 480

原创 Java Instrument

JVMTI什么是JVMTIJVM Tool Interface简称JVMTI是一组对外接口,通过这组接口可以实现,获取虚拟机运行状态、线程分析、监控、调试、覆盖率分析等功能。JVMTIAgent什么是JVMTIAgent为了使用JVMTI提供的对外接口,一般采用Agent方式来实现JVMTI提供的对外接口,JVMTIAgent类似于c语言的动态库的概念。实现方式在Java1.5之前实现一个Agent只能通过原生的c/c++来实现Agent,在Java1.5之后提供了instrument的age

2022-03-07 20:50:43 1321

原创 JVM:类加载机制

类加载什么是类加载​ 虚拟机把描述类的数据从class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。​ 在Java语言中,类型的加载、连接和初始化过程都是在程序运行期间完成的。类的生命周期​ 类从加载到内存开始,到卸载出内存为止,它的整个生命周期包括:加载、验证、准备、解析、初始化、使用、卸载。其中验证、准备、解析三个过程统称为连接。​ 加载、验证、准备、初始化和卸载这5个阶段的顺序是确定的,但是解析过程有可能

2021-11-13 18:52:36 832

原创 JDK代理

代理模式代理模式介绍代理模式就是某一个类需要访问一个目标类,不是通过直接访问的方式,而是先访问一个中间类,再由这个中间类去访问目标类。代理模式一般用于保护目标类,或者增强目标类。代理模式类图interface是顶层接口,proxy是代理类,Impl是目标类,client通过访问proxy进而访问到真正的Impl。代理模式的优缺点优点1.代理模式能的能保护目标类的实现细节。2.增强目标对类,可以不修改目标类的情况下在代理类中添加一些其他实现。3.降低了目标类和调用类之间的耦合。缺点

2021-10-04 18:05:58 331

原创 Java多线程:线程基础(1)

线程线程和进程进程是操作系统分配资源的最小单位,而线程是程序执行的最小单位,他们都是可以并发执行的。一个进程至少有一个线程,这些线程共享进程的资源空间。线程简介每个线程都有一个优先级,高优先级的线程比低优先级的线程先执行。优先级的取值范围是1到10的整数,默认是5。每个线程有可能被标记为一个守护线程。当一个线程创建另外一个新的线程对象,新的线程的优先级等于创建他的线程的优先级;如果新的线程对象是一个守护线程当且仅当创建他的线程是一个守护线程。线程分类Java线程分为守护线程(Daemon Thr

2021-04-08 11:55:11 407

原创 SpringCloud搭建Eureka

Eureka什么是EurekaEureka是Netflix微服务套件中的一部分,它是基于REST的服务。主要负责微服务架构中各个服务的自动注册与发现。Eureka包含了两部分:Eureka Server和Eureka Client。Eureka ServerEureka Server即服务注册中心,各服务启动后都需要在注册中心进行注册。Eureka ClientEureka Clien...

2020-03-03 16:31:32 388

原创 缩小文件系统和磁盘分区

需求描述一个linux的系统盘是400G,划了200G做系统分区,后来因为其他原因还要在磁盘中放置超过200G的东西,所以只能缩小系统盘的分区大小。盘符:/dev/sda1。容量200G实现过程1.调整文件系统大小为100G。备注:此时是在200G分区的时候调整文件系统的大小。2.删除200G系统分区(由于系统盘原因,这里以sdd为例),重建系统分区为120G(因为文件系统时1...

2018-12-07 17:16:34 1046

空空如也

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

TA关注的人

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