自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 常见技术场景

多等级(电脑、手机)

2024-03-08 23:44:20 121

原创 java引言

缓存相关缓存击穿、穿透、雪崩、缓存过期淘汰、数据一致性分布式锁相关redisson原理集群分片集群。

2024-03-08 22:24:30 72

原创 JVM重难点

线程私有的,没有安全问题。

2024-03-07 20:30:56 265

原创 Redis业务应用场景

DB缓存,减轻DB服务器压力提高系统响应作为Key-Value形态的内存数据库,Redis 最先会被想到的应用场景便是作为数据缓存。而使用 Redis 缓存数据非常简单,只需要通过string类型将序列化后的对象存起来即可,不过也有一些需要注意的地方:必须保证不同对象的 key 不会重复,并且使 key 尽量短,一般使用类名(表名)加主键拼接而成。选择一个优秀的序列化方式也很重要,目的是提高序列化的效率和减少内存占用。

2024-03-07 20:30:25 200

原创 消息中间件重难点

主节点宕机,会存在数据丢失,少见。强一致性会影响到高可用,性能。一般说高可用都是集群等策略。数据库做个定时任务,重发。低阶、系数、常量可以忽略。

2024-03-07 20:29:52 234

原创 SSM重难点

如果对象增强了,把对象工厂对象放到三级缓存中9(左面三级缓存,上面二级缓存,右边单列池.一级缓存)实例化只是用到了bean生命周期的构造函数,后面的都没用,所以是半成品。Spring管理的事务,底层用的就是AOP,AOP底层用的是动态代理。用户的请求来了后,后台有四个请求的接口,有这些操作时就要记录日志。延迟加载,什么时候需要对象,再进行bean对象的创建。根据用户id查询,又有多个订单,查订单信息。四个请求,获取id,保存修改删除。无状态的bean是线程安全的。自定义的注解,你的模块的名称。

2024-03-07 20:29:31 453

原创 微服务重难点

一个服务宕机,另一个服务调用失败但没有释放不断堆积导致另一个服务宕机,连锁反应,可能会导致服务雪崩服务熔断针对于整个服务,降级针对于接口部分服务不能用。

2024-03-07 20:29:09 233

原创 servlet重难点

ServletContext对象的作用是在整个Web应用的动态资源(Servlet/JSP)之间共享数据。处理请求抽取作成Servlet,Servlet随着发展分出三层架构,分担到Service和Dao层。Filter用到了责任链模式,Listener用到了观察者模式,Servlet使用设计模式:模板方法模式。由于父类提供了doXxx()方法,它本身没有意义的,为了避免有人直接new实例并调用,声明为抽象类。大容器,是个map。接受,响应请求是共性功能,都是JSON数据,抽取成Web服务器。

2024-03-07 20:28:44 355

原创 线程重难点

无锁状态,执行方法创建一个锁,创建一个锁记录。每个线程的栈帧会存储锁定对象的markword。用CAS去交换对象数据的markword(原子操作)。LOCK是对象锁,跟Monitor关联,先判断Owner属性,null就绑定只能一个。每个线程都能访问,存在线程安全问题,所以多个线程访问要通过主内存。创建固定大小的线程池,调用一个submit方法,提交任务。存线程内的私有数据,线程间无法访问,线程安全。对象锁,加上票数正常,不会出现超卖问题。判断当前锁记录库,重复,所记录减1。

2024-03-07 20:27:39 428

原创 序列化和反序列化

序列化 (Serialization)是将对象的状态信息转换为可以存储或传输的形式的过程。当两个进程在进行远程通信时,彼此可以发送各种类型的数据。无论是何种类型的数据,都会以二进制序列的形式在网络上传送;发送方需要把这个类型数据(对象)转换为二进制字节序列,才能在网络上传送;接收方则需要把字节序列再恢复为对象。而我们进行跨平台存储和网络传输的方式就是IO,而我们的IO支持的数据格式就是字节数组。

2024-03-05 15:41:45 867

原创 工作,成长,人生

选择和努力哪个重要?肯定选择呀。

2024-02-16 22:39:57 905

原创 jvm内存管理

首先它是一个32位的长度,主要存放我们的Java的八大基础数据类型,一般32位就可以存放下,如果是64位的就使用高低位占用两个也可以存放下,如果是局部的一些对象,比如我们的Object对象,我们只需要存放它的一个引用地址即可。,它就是一个栈,先进后出的栈结构,操作数栈,就是用来操作的,操作的的元素可以是任意的java数据类型,所以我们知道一个方法刚刚开始的时候,这个方法的操作数栈就是空的,操作数栈运行方法就是JVM一直运行入栈/出栈的操作。在每个 Java 方法被调用的时候,都会创建一个栈帧,并入栈。

2024-02-07 22:39:48 852

原创 RabbitMQ面试题

Exchange是消息的交换机,它接收发布到RabbitMQ的消息,并根据指定的规则将消息路由到一个或多个Queue中。在RabbitMQ中,Queue(队列)是消息的缓冲区,用于存储待处理的消息。RabbitMQ中的死信队列(Dead Letter Queue)是一种特殊的队列,用于存储无法被消费者成功处理的消息。Exchange(交换机)是RabbitMQ的重要组件,用于接收从生产者发送的消息,并根据一定的规则将消息路由到一个或多个队列中。生产者将消息发送到队列中,而消费者则从队列中接收并处理消息。

2024-02-03 09:34:42 1004

原创 JVM面试

JVM(Java Virtual Machine)是Java编程语言的关键组成部分之一,它是一个在计算机上运行Java字节码的虚拟机。JVM充当了Java程序和底层操作系统之间的中间层,提供了一种独立于硬件和操作系统的执行环境。JVM的主要功能是将Java字节码翻译成特定平台的机器码,以便能够在不同的计算机体系结构和操作系统上执行。它还负责内存管理、垃圾回收和安全性等方面的任务。负责加载Java字节码文件,并将其转换为JVM内部的数据结构。执行字节码指令,将其转换为机器码并执行。

2024-02-03 09:33:41 856

原创 IO流总结

从计算机结构的视角来看的话, I/O 描述了计算机系统与外部设备之间通信的过程。我们再先从应用程序的角度来解读一下 I/O。根据大学里学到的操作系统相关的知识:为了保证操作系统的稳定性和安全性,一个进程的地址空间划分为 用户空间(User space) 和内核空间(Kernel space )。平常运行的应用程序都是运行在用户空间,只有内核空间才能进行系统态级别的资源有关的操作,比如如文件管理、进程通信、内存管理等等。也就是说,我们想要进行 IO 操作,一定是要依赖内核空间的能力。

2024-02-03 00:04:59 867

原创 Redis

键-值存储数据库是一种数据库类型,其中数据以键值对的形式进行存储和访问。每个键都是唯一的,通过键可以快速检索和获取对应的值。这种存储模型类似于字典或哈希表,它提供了快速的读写访问,并且通常具有良好的扩展性和高性能。简单性:键-值存储数据库的数据模型相对简单,只需要存储键和对应的值即可,没有复杂的关系模型或结构。高性能:由于数据存储在内存中,键-值存储数据库通常具有快速的读写性能,并可以提供低延迟的数据访问。

2024-02-02 17:22:28 920

原创 14_Spring Cloud面试题

​ 微服务是一种架构风格,将一个大型的应用程序拆分为一组小型、独立的服务,每个服务都可以独立开发、部署、扩展和管理。每个服务都具有自己的业务逻辑和数据存储,并通过轻量级的通信机制(通常是HTTP API)进行相互通信。微服务架构强调每个服务的自治性,各个服务可以使用不同的技术栈,并且可以独立进行部署和升级。

2024-02-02 17:19:29 492

原创 13_Spring Boot 面试题

Spring Boot是一个用于简化和加快Spring应用程序开发的框架。它基于Spring框架,提供了自动化配置、快速开发和无需繁琐的XML配置的特性。Spring Boot通过约定大于配置的原则,使得开发人员可以更加专注于业务逻辑的实现,而无需关注框架的底层配置细节。JavaConfig是Spring框架提供的一种配置方式,用于替代传统的XML配置方式。它允许开发人员使用Java代码来定义和配置Spring Bean以及其他的配置元素。

2024-02-02 17:18:17 435

原创 12_Spring MVC 面试题

Spring MVC是基于Java的开源Web应用程序框架,用于开发基于MVC(Model-View-Controller)模式的Web应用程序。它是Spring框架的一部分,提供了一个结构清晰、灵活和可扩展的方式来构建Web应用程序。在Spring MVC中,模型(Model)表示应用程序的数据模型,视图(View)负责呈现模型的数据给用户,控制器(Controller)负责处理用户请求、更新模型数据,并选择合适的视图进行渲染。

2024-02-02 17:16:22 824

原创 11_Spring 面试题

Spring是一个开源的Java应用开发框架,它提供了一种综合性的编程和配置模型,用于构建企业级应用程序。Spring框架提供了各种功能和组件,使得开发人员可以轻松地构建可扩展、模块化和高效的Java应用。Spring IOC(Inversion of Control,控制反转)容器是Spring框架的核心组件之一。它负责管理应用程序中的对象(称为bean),并处理它们之间的依赖关系。IOC容器通过控制对象的创建、初始化和注入来实现控制反转的概念。

2024-02-02 17:14:43 779

原创 10_MyBatis面试题

MyBatis 是一种持久层框架,用于简化数据库访问的开发。它提供了一种将 SQL 语句与 Java 对象之间的映射关系的方式,通过配置文件或注解来定义 SQL 语句,并通过 Java 代码来执行和处理数据库操作。MyBatis 支持各种关系型数据库。MyBatis 插件(Plugins)是一种扩展机制,可以在 MyBatis 的执行过程中插入自定义的逻辑。通过插件,可以拦截 MyBatis 的核心组件的方法调用,对其进行增强或修改。插件可以用于实现一些通用的功能,例如日志记录、性能监控、权限验证等。

2024-02-02 17:13:10 759

原创 09_多线程面试题

线程是计算机中执行的最小单位。它是进程内的一个独立执行序列,包括线程的指令、程序计数器和一组相关的系统资源。线程是进程的一部分,多个线程可以共享同一个进程的资源。多线程编程是指在一个程序中同时使用多个线程来执行任务。提高程序的并发性:多个线程可以同时执行,从而提高程序的执行效率和响应性。提高资源利用率:多线程共享同一进程的资源,避免了创建多个进程时的资源开销。简化编程模型:多线程编程相对于多进程编程更轻量级,线程之间的通信和数据共享更加简单,编程模型更容易理解和实现。

2024-02-02 17:10:35 454

原创 08_Tomcat、Servlet面试题

Tomcat是一个开源的Java Web应用服务器,也是Apache软件基金会的一个项目。它的作用是用于托管和运行Java Web应用程序。Tomcat是一个Servlet容器,它可以解释和执行Java Servlet、JavaServer Pages(JSP)和相关的Java Web技术。它充当了一个Web服务器和一个Servlet容器的双重角色,可以处理客户端的HTTP请求,并将其传递给适当的Servlet进行处理。

2024-02-02 17:08:43 721

原创 07_设计模式面试题

设计模式是在软件设计中经常出现的问题的解决方案的经验总结和最佳实践。它们提供了一种被广泛接受的、可重用的设计思想和模式,用于解决特定类型的设计问题。设计模式描述了如何在给定情况下构建和组织代码,以满足特定需求,并提供了一种可扩展、可维护和可复用的设计结构。提高代码可读性和可维护性:设计模式提供了一套通用的设计原则和模式,使代码更易于理解和维护。通过采用常见的模式,开发人员可以更快地理解代码的意图和结构。促进代码复用:设计模式提供了经过验证的设计思想和模式,可以在不同的项目和场景中重复使用。

2024-02-02 17:07:20 794

原创 06_IO流面试题

Java IO流(Input/Output Streams)是Java编程语言中用于输入和输出操作的机制。它提供了一种处理不同类型数据流的方式,可以从源读取数据或将数据写入目标。在Java中,IO流被视为一个抽象层,用于处理不同类型的输入和输出数据。它提供了一组类和接口,可以用于读取和写入字节流和字符流。字节流(Byte Streams)和字符流(Character Streams)是Java IO流的两种基本类型,它们用于处理不同类型的数据。

2024-02-02 17:04:44 679

原创 05_Java异常面试题

在Java中,异常(Exception)是指在程序执行过程中发生的错误或异常情况。它们表示程序无法继续正常执行的情况,可能由错误的输入、意外的条件、资源不足等引发。Java异常是通过异常类的实例来表示的,这些异常类都继承自Throwable类。受检异常(Checked Exception):受检异常是指在编译时必须处理的异常。它们是指那些可能在程序执行期间出现的情况,需要在代码中显式地处理或向上抛出。受检异常包括IOException、SQLException等。

2024-02-02 17:02:25 943

原创 04_Java并发编程面试题

在计算机科学中,线程和进程是操作系统用于管理和执行程序的基本概念。进程(Process)是指在计算机中运行的一个程序实例。它是一个独立的执行单位,具有自己的内存空间、数据和资源。一个进程可以包含多个线程,每个线程都可以执行独立的任务。线程(Thread)是进程中的一个执行路径。一个进程可以同时拥有多个线程,这些线程共享进程的资源,如内存空间和文件句柄。线程可以独立执行特定的任务,也可以与其他线程协同工作。进程和线程之间的关系可以类比为工厂和工人的关系。

2024-02-02 17:00:26 434

原创 03_JVM面试

CMS(Concurrent Mark Sweep)垃圾回收器是一种并发的垃圾回收器,旨在减少垃圾回收过程对应用程序的停顿时间。它适用于对停顿时间敏感的应用程序,其中较短的停顿时间是至关重要的。初始标记(Initial Mark):在这个阶段,CMS回收器会暂停应用程序的线程,并标记所有从根对象直接可达的对象。这个阶段的停顿时间相对较短,只标记了少量的对象。并发标记(Concurrent Mark):在初始标记之后,CMS回收器会与应用程序并发运行,同时标记从根对象开始的可达对象。

2024-02-02 16:58:12 379

原创 02_java容器面试

在Java中,集合(Collection)是一种用于存储和操作一组对象的数据结构。Java提供了多个集合类,位于java.util包中,用于满足不同的需求和场景。List(列表):List是有序的集合,可以包含重复元素。常见的List实现类有ArrayList和LinkedList。Set(集):Set是无序的集合,不允许包含重复元素。常见的Set实现类有HashSet和TreeSet。Map(映射):Map是一种键值对(key-value)的集合,每个键对应一个值。

2024-02-02 16:56:33 318

原创 01_java基础

*Java虚拟机(JVM)**是Java编程语言的关键组成部分之一,它是一个在计算机上运行Java字节码的虚拟机。JVM充当了Java程序和底层操作系统之间的中间层,提供了一种独立于硬件和操作系统的执行环境。字节码与平台无关:Java源代码在经过编译器编译后,会生成字节码文件(以.class为扩展名),而不是特定平台的机器码。这些字节码是一种与具体硬件和操作系统无关的中间代码。Java虚拟机负责将字节码解释成底层机器码并执行,因此同一份字节码可以在任何装有相应版本JVM的机器上运行。

2024-02-02 16:55:06 580

原创 01_1_java基础补充

静态变量可以被类的所有实例共享。无论⼀个类创建了多少个对象,它们都共享同⼀份静态变量。通常情况下,静态变量会被 final 关键字修饰成为常量。这个关键字很特殊,既属于程序控制,也属于类,方法和变量修饰符,还属于访问控制。2.字节码面向jvm虚拟机(.class文件)1.jvm虚拟机+jdk编译程序+jre运行。3.java语言=编译型+解释型共存。

2024-02-01 23:33:27 903

原创 分布式商城项目

⼀、《锋迷商城》项⽬介绍1.1 项⽬功能https://www.processon.com/view/link/606bde8b1e08534321fd21031.2 技术清单项⽬架构:前后端分离前端技术:vue、axios、妹⼦UI、layui、bootstrap后端技术:SpringBoot+MyBatis、RESTful、swagger服务器搭建:Linux、Nginx⼆、项⽬架构的演进分布式基于redis实现 分布式锁分布式数据库mycatredis集群数据库中间件消

2024-01-28 23:30:52 2831

原创 RESTful

SpringMVC 对 RESTful ⻛格提供了很好的⽀持,在我们定义⼀个接⼝的 URL 时,可以通过 @RequestMapping(value=“/{id}”,method=RequestMethod.GET)形式指定请求⽅式,也可使⽤特定请求⽅式的注解设定 URL。是⼀种 Web api 的标准,也就是⼀种 url 设计⻛格 / 规范。每个URL请求路径代表服务器上的唯⼀资源。使⽤不同的请求⽅式表示不同的操作。

2024-01-28 17:42:54 349

原创 生产环境搭建和部署

在apollo目录下新建apollo-configservice目录,从课件中拷贝相关文件进来(jar+zip+Dockerfile)在apollo目录下新建apollo-adminservice目录,从课件中拷贝相关文件进来(jar+zip+Dockerfile)在apollo目录下新建apollo-portal目录,从课件中拷贝相关文件进来(jar+zip+Dockerfile)自己编写或从课件中找到Dockerfile文件并像上图一样复制到对应目录中。

2024-01-24 09:59:52 1184

原创 项目分层/分包总结

(1)继承 BaseMapper,BaseMapper 接口是 MyBatis Plus 提供的通用 Mapper 接口,用于执行常用的 CRUD 操作,包括插入、更新、删除和查询等操作,继承该接口后,能够自动获得数据库常用操作的方法,而不用在mapper内编写。存放数据库函数,与DAO层中的方法映射,可通过终端命令生成,也可自行编写(工作量较大),在调用DAO方法则会实际执行mapper层对应的数据库方法,是对数据库curd的接口桥梁,同时也需要增加mapper扫描以完成识别。DVO/VO 返回对象包。

2024-01-23 23:17:49 997

原创 09_充值/提现

在用户中心定义生成充值数据接口:1、接口描述​ 1)接收用户填写的充值数据​ 2)用户中心保存充值信息​ 3)请求存管代理生成签名数据​ 4)将签名数据返回给前端2、接口定义/*** 生成充值请求数据* @param amount 充值金额* @param callbackURL 回调地址* @return*/@Override@ApiOperation("生成充值请求数据")

2024-01-21 18:50:21 1158

原创 七牛云作为文件存储源使用文件服务

文件服务是我们抽取出来的专门用于处理文件上传、下载的微服务,可以为万信金融P2P项目的各个业务模块提供文件服务。该服务默认采用七牛云作为文件存储源,将来也会和百度云、阿里云做对接,成为一个通用的、独立的文件微服务。

2024-01-21 18:35:57 450

原创 身份认证API

用户中心请求百度AI识别身份证,在用户中心定义识别身份证照片接口:1、接口描述如下1)前端提交身份证照片到用户中心2)用户中心请求百度AI进行身份证识别3)百度AI返回识别结果给用户中心4)用户中心响应前端返回识别结果2、接口定义如下/*** 提交身份证图片给百度AI进行识别* @param file 被上传的文件* @param flag 身份证正反面 取值front 或 back* @return Map集合 识别成功后把身份证上的姓名和身份证号存到map中返回*/

2024-01-21 18:27:28 854

原创 08_用户还款

满标放款审核通过后,就意味着交易已经达成。借款人以后就需要按照借款时约定的还款方式,在还款日当天将应还本息通过平台归还给投资人,这叫用户还款。借款人应该在临近还款日时,把应还的金额充值到平台账户中,平台在还款日当天会自动进行扣款。1 、接口描述根据日期查询所有到期的还款计划2 、接口定义/*** 查询到期还款计划* @param date 格式为:yyyy-MM-dd* @return。

2024-01-19 00:34:08 788

原创 Elastic-Job分布式任务调度

当前软件的架构已经开始向分布式架构转变,将单体结构拆分为若干服务,服务之间通过网络交互来完成业务处理。在分布式架构下,一个服务往往会部署多个实例来运行我们的业务,如果在这种分布式系统环境下运行任务调度,我们称之为分布式任务调度。将任务调度程序分布式构建,这样就可以具有分布式系统的特点,并且提高任务的调度处理能力:1、并行任务调度并行任务调度实现靠多线程,如果有大量任务需要调度,此时光靠多线程就会有瓶颈了,因为一台计算机CPU的处理能力是有限的。

2024-01-19 00:25:53 1615

基于ssm的交友java系统,可用于毕设参考

基于ssm的交友java系统源码+sql+文档

2024-01-16

基于ssm的物业管理系统

基于ssm的物业管理系统ppt+源码+部署文档

2024-01-16

基于ssm的安保服务监管java系统

基于ssm的安保服务监管java系统源码+ppt

2024-01-16

空空如也

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

TA关注的人

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