自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 工具类代码

这里使用了连接池管理器 `PoolingHttpClientConnectionManager`,并注册了 `http` 和 `https` 协议的连接工厂。这段代码是一个工具类 `HttpConnectionPoolUtil`,用于创建和管理基于连接池的 `HttpClient` 实例。- 设置 `HttpPost` 请求的参数,将参数转换为 `NameValuePair` 列表,并设置到 `HttpPost` 实例中。- 根据给定的 URL 获取相应的 `HttpClient` 实例。

2024-02-04 17:53:03 410

原创 Shiro 登录

SecurityManager 调用 Realm 的 doGetAuthenticationInfo 方法: Shiro 的 SecurityManager 接收到 AuthenticationToken 对象后,会调用配置的 Realm 的 doGetAuthenticationInfo 方法,传递 AuthenticationToken 给 Realm。在这个方法中,创建了 AuthenticationToken 对象(这里是 Oauth2Token),并将其返回。配置哪些url 不需要经过验证。

2024-02-01 18:13:50 170

原创 Spring 注解

加上该注解后,方法调用后生成SysLogEntity,记录方法调用的相关信息(请求参数,方法名,请求用户)

2024-01-31 18:38:37 159

原创 网盘功能整理

使用循环遍历文件分片列表,并且将每个文件分片的内容写入到合并后文件中。获取文件输出流的通道,用于进行文件操作 (FileChannel)。创建一个文件输出流,用于将文件分片内容写入合并后的文件。2 验证文件是否存在如果存在就复制到对应目录下。查询数据库中是否有对应Md5 的文件对象。将文件复制到目标路径,并创建新的文件对象。1 验证文件分块是否存在。获取目录中的所有文件分片。3 上传文件 分块上传。

2024-01-29 18:05:37 238

原创 MySQL

这些问题都是MySQL进行事务并发控制时经常遇到的问题。脏读:在事务进行过程中,读到了其他事务未提交的数据。不可重复读:在一个事务过程中,多次查询的结果不一致。幻读:在一个事务过程中,用同样的操作查询数据,得到的记录数不相同。处理的方式有很多种:加锁、事务隔离、 MVCC加锁1、脏读:在修改时加排他锁,直到事务提交才释放。读取时加共享锁,读完释放锁。2、不可重复读:同上3、幻读:加范围锁。事务隔离1、read uncommit读未提交。可能会读到其他事务未提交的数据,也叫做脏读。

2023-10-08 00:07:00 60

原创 Java8

它允许我们在运行时获取类的信息、创建对象、调用方法和修改字段的值,从而使程序更加灵活、可扩展和动态。相比于JDK 代理的反射调用,CGLIB 的方法调用更快速。反射是Java框架的灵魂技术,很多框架都使用了反射技术,如spring,Mybatis,Hibernate等。JDK Proxy 的性能略低,因为它涉及到反射调用的开销。JDK Proxy 是基于反射机制实现的,它利用Java的反射API 动态生成代理对象。CGLIB 可以代理普通的类,它通过继承目标类,并在子类中重写方法来实现代理。

2023-10-07 15:59:20 57

原创 Spring cloud

Nacos (服务注册,包内包含Ribbon,加上LoadBalance注解后实现负载均衡请求)Feign (配置FeignClient ,将外部服务的http请求封装起来)Sentinel (服务降级(拦截http请求,try catch ,需要配置Fallback) + 服务熔断 + 服务限流 ,原理是滑动时间窗口)Seata (分布式事务)

2023-10-06 12:13:22 46

原创 设计模式~

Java的单例模式是一种设计模式,它确保一个类只有一个实例,并提供全局访问点。在Java中,实现单例模式的方式有很多种,其中最常用的有两种:懒汉式和饿汉式。

2023-09-03 12:33:53 50

原创 JAVA面试题

== 和 equals 的区别是什么?== 解读对于基本类型和引用类型 == 的作用效果是不同的,如下所示: 基本类型:比较的是值是否相同; 引用类型:比较的是引用是否相同; String x = "string";String y = "string";String z = new String("string");System.out.println(x==y); // trueSystem.out.println(x==z); // falseSystem.o

2021-07-16 00:53:43 195

转载 多线程/线程池

Java 给多线程编程提供了内置的支持。 一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。多线程是多任务的一种特别的形式,但多线程使用了更小的资源开销。这里定义和线程相关的另一个术语 - 进程:一个进程包括由操作系统分配的内存空间,包含一个或多个线程。一个线程不能独立的存在,它必须是进程的一部分。一个进程一直运行,直到所有的非守护线程都结束运行后才能结束。并行与并发:并行:多个cpu实例或者多台机器同时执行一段处理逻辑,是真正的同时。

2021-07-13 17:02:15 1727

原创 并发/多线程面试题

什么是进程?线程?区别?1)进程是一个独立的运行环境,它可以被看作是一个程序或者一个应用。而线程是在进程中执行的一个任务。eg:打开360安全卫士,它本身是一个程序,也是一个进程,它里面有杀毒,清理垃圾,电脑加速等功能,当你点击杀毒的时候,杀毒任务就相当于一个线程。2)进程是操作系统进行资源分配的基本单位,而线程是操作系统进行调度的基本单位。3)进程让操作系统的并发性成为可能,而线程让进程的内部并发成为可能。什么叫线程安全?  一个类或者程序所提供的接口对于线程来说是原子操作或者多个线程

2021-07-12 22:15:14 156

原创 JVM面试题

JVM 内存区域JVM 内存区域主要分为线程私有区域【程序计数器、虚拟机栈、本地方法区】、线程共享区域【JAVA 堆、方法区】、直接内存。线程私有数据区域生命周期与线程相同, 依赖用户线程的启动/结束 而 创建/销毁(在 Hotspot VM 内, 每个线程都与操作系统的本地线程直接映射, 因此这部分内存区域的存/否跟随本地线程的生/死对应)。线程共享区域随虚拟机的启动/关闭而创建/销毁。直接内存并不是 JVM 运行时数据区的一部分, 但也会被频繁的使用: 在 JDK 1.4 引入的 ..

2021-07-12 17:19:27 241

原创 面试题(Redis)

Redis什么是RedisRedis(Remote Dictionary Server) 是一个使用 C 语言编写的,开源的(BSD许可)高性能非关系型(NoSQL)的键值对数据库。Redis 可以存储键和五种不同类型的值之间的映射。键的类型只能为字符串,只支持五种数据类型:字符串、列表、集合、散列表、有序集合。与传统数据库不同的是 Redis 的数据是存在内存中的,所以读写速度非常快,因此 redis 被广泛应用于缓存方向,每秒可以处理超过 10万次读写操作,是已知性能最快的Key-Val

2021-07-11 22:13:20 249

原创 CAP和BASE理论

CAP理论 一致性(consistency):这里的一致性指是「线性一致性」。(关于线性一致性的解释,点我可阅读) 可用性(availability):每个请求都在一定时限内得到响应。 分区容忍性(partition-tolerance):这应该是这三点中最晦涩的。允许丢失以一个节点发给另一个节点的任意多的消息。只要是分布式系统,这项是无法逃避的,因为网络、硬件说不准啥时候就出问题了。 BASE理论 基本可用(Basically Available)。分布式系统在...

2021-07-09 00:17:27 135

原创 Kubernetes(K8S)

kubernetes,简称K8s,是用8代替8个字符“ubernete”而成的缩写。是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes提供了应用部署,规划,更新,维护的一种机制。Kubernetes是Google开源的一个容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理。在生产环境中部署一个应用程序时,通常要部署该应用的多个实例以便对应用请求进行负载均衡。K8s架构的组成...

2021-07-07 22:38:12 73

原创 Docker

Docker 是一个开源的应用容器引擎,基于Go 语言并遵从 Apache2.0 协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。Docker的应用场景 Web 应用的自动化打包和发布。 自动化测试和持续集成、发布。 在服务型环境中部署和调整数据库或其他的后..

2021-07-07 22:20:17 84

原创 Kafka

Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。Kafka的目的是通过Hadoop的并行加载机制来统一线上和离线的消息处理,也是为了通过集群来提供实时的消息。说到Kafka,则需要先了解消息系统。目前有两种主要的消息传递模式:点对点传递模式、发布-订阅模式。点对点传递模式:在点对点消息系统中,消息持久化到一个队列中。此时,将有一个或多个消费者消费队列中的数据。但是一条消息只能被消费一次。当一个消费者消费了队列中的某条数据之后,该条数据则从消息队列中删除。该

2021-07-03 00:27:21 232 2

原创 Redis

Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。一,五大数据类型 1,String(字符串) String 是 redis 最基本的类型。 2,Hash(哈希) Redis hash 是一个键值(key -> value)对集合。适合用于存储对象。...

2021-07-01 23:22:03 95

空空如也

空空如也

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

TA关注的人

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