自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java基础

Java基础Java基础介绍一下Java面向对象的三大特点JDK与JRE有什么区别?java 有哪些数据类型?包装类型的常量池技术了解么?自动装箱与拆箱了解吗?原理是什么?简述Java访问修饰符构造方法、成员变量初始化以及静态成员变量三者的初始化顺序?接口和抽象类的相同点和区别?重载和重写什么区别?常见的异常有哪些?异常要怎么解决?简述throw与throws的区别== 和 equals() 的区别hashCode() 与 equals()final、finally和finalize的区别是什么?出现在Ja

2022-03-05 15:44:49 848

原创 Java集合

Java集合Java集合Java 集合概览说说 List, Set, Queue, Map 四者的区别?集合框架底层数据结构总结Collection 子接口之 ListArraylist 和 Vector 的区别?Arraylist 与 LinkedList 区别?说一说 ArrayList 的扩容机制吧Collection 子接口之 Set比较 HashSet、LinkedHashSet 和 TreeSet 三者的异同无序性和不可重复性的含义是什么HashSet中,equals与hashCode之间的关系

2022-03-05 15:41:28 1057

原创 计算机操作系统

操作系统操作系统基础概述基本特征基本功能什么是用户态和内核态?为什么要分用户态和内核态?如何从用户态切换到内核态?中断分类进程的异常控制流:陷阱、中断、异常和信号进程管理进程和线程的区别?进程间通信(IPC)有哪些方式?进程同步进程有哪几种状态?进程调度策略有哪些?什么是僵尸进程?线程同步有哪些方式?互斥量和临界区有什么区别?什么是协程?I/O 模型什么是文件描述符?有哪些常见的IO模型?什么是IO多路复用?怎么实现?什么是水平触发?什么是边缘触发?为什么边缘触发一定要用非阻塞IO?select/poll/

2022-03-05 15:39:47 653

原创 计算机网络

计算机网络计算机网络网络分层结构TCP三次握手四次挥手TCP有哪些特点?TCP和UDP的区别?TCP怎么保证传输过程的可靠性?TCP拥塞控制和流量控制都是什么,两者的区别?HTTP协议的特点?HTTP报文格式HTTP状态码有哪些?HTTP1.0和HTTP1.1的区别?HTTP1.1和 HTTP2.0的区别?HTTPS与HTTP的区别?HTTPS原理简述DNS协议DNS 的解析过程?浏览器中输入URL返回页面过程?简述cookie简述sessionCookie和Session的区别?什么是对称加密和非对称加密

2022-03-05 15:38:17 386

原创 Redis

RedisRedis简介什么是Redis,Redis有哪些特点?Redis的优点?Redis为什么这么快?Redis为何选择单线程?Redis应用场景有哪些?Redis 除了做缓存,还能做什么?分布式缓存和本地缓存有啥区别Memcached和Redis的区别?Redis基础数据类型Redis 数据类型有哪些?为什么使用跳跃表搜索过程:能说一下Redis每种数据结构的使用场景吗?Redis线程模型讲解一下Redis的线程模型?Redis6.0 之后为何引入了多线程?Redis的过期策略过期的数据的删除策略了解

2022-03-05 15:34:41 247

原创 MySQL

MySQL说一说三大范式事务的四大特性?会出现哪些并发一致性问题?事务的四种隔离级别?什么是索引?索引的优缺点?索引的作用?什么情况下需要建索引?什么情况下不建索引?索引的数据结构Hash索引和B+树索引的区别?为什么采用 B+ 树,而不是 B-树为什么推荐使用自增 id 作为主键?索引有什么分类?什么是最左匹配原则?聚集索引非聚集索引聚集索引和非聚集索引的区别什么是索引下推?什么是覆盖索引?什么是前缀索引?索引的设计原则?索引什么时候会失效?常见的存储引擎有哪些?MyISAM和InnoDB的区别?MVCC

2022-02-24 14:45:51 210

原创 JUC笔记-同步器(AQS原理、ReentrantLock原理)

JUC-同步器(AQS原理、ReentrantLock原理)一、AQS原理核心思想设计原理模板对象自定义一个不可重入锁一、AQS原理核心思想AQS:AbstractQueuedSynchronizer,是阻塞式锁和相关的同步器工具的框架,许多同步类实现都依赖于该同步器AQS 用状态属性来表示资源的状态(分独占模式和共享模式),子类需要定义如何维护这个状态,控制如何获取锁和释放锁独占模式是只有一个线程能够访问资源,如 ReentrantLock共享模式允许多个线程访问资源,如 Semaphor

2022-02-10 10:58:17 873

原创 JUC笔记-共享模型之工具

共享模型之工具一、线程池(重点)1.1 自定义一个简单的线程池1.2 ThreadPoolExecutor1.2.1 线程池的继承关系1.2.2 Executor 框架结构1.3 线程池状态1.4 线程池的成员属性1.5 构造方法及参数1.6 ExecutorsnewFixedThreadPoolnewCachedThreadPoolnewSingleThreadExecutor1.7 执行/提交任务 execute/submit一、线程池(重点)池化技术有很多, 比如线程池、数据库连接池、HTTP

2022-02-09 19:45:26 744

原创 JUC笔记-共享模型之不可变

JUC-共享模型之不可变一、不可变类设计二、final原理三、享元设计模式四、实现一个简单的连接池五、State一、不可变类设计不可变:如果一个对象不能够修改其内部状态(属性),那么就是不可变对象不可变对象线程安全的,不存在并发修改和可见性问题,是另一种避免竞争的方式String 类也是不可变的,该类和类中所有属性都是final的类用final修饰保证了该类中的方法不能被覆盖,防止子类无意间破坏不可变性无写入方法(set)确保外部不能对内部属性进行修改属性用final修饰保证了该

2022-02-08 00:40:53 827

原创 JUC笔记-共享模型之无锁

JUC-共享模型之无锁一、CAS原理特点二、问题提出解决思路-无锁三、CAS 与 volatile (重点)3.1 cas + 重试 的原理3.2 volatile的作用3.3 为什么CAS+重试(无锁)效率高四、Atomic4.1 常用API4.2 原理分析4.3 原子引用4.4 原子数组4.5 原子更新器4.6 原子累加器 (重要)五、Addr优化机制伪共享源码解析六、ABA(重点)6.1 AtomicStampedReference (加版本号解决ABA问题)6.2 AtomicMarkableRef

2022-02-07 23:12:51 1046

原创 JUC笔记-共享模型之内存

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码

2022-02-06 22:04:57 601

原创 JUC笔记-共享模型之管程 (Monitor)

JUC-共享模型之管程( Monitor)一、线程安全问题(重点)1.1 同步1.2 线程出现问题的根本原因分析1.3 synchronized 解决方案1.3.1 同步代码块1.3.2 synchronized原理1.3.3 同步方法二、线程八锁2.1 锁住同一个对象都是this(e1对象),结果为:1,2或者2,12.2 锁住同一个对象都是this(e1对象),结果为:1s后1,2 || 2,1s后12.3 a,b 锁住同一个对象都是this(e1对象), c没有上锁。结果为:3,1s后1,2 ||

2022-01-24 00:11:22 1596

原创 JUC笔记-线程

JUC-线程一、进程线程、并行并发、同步异步概念1.1 进程与线程1.2 并发与并行1.3 同步与异步二、线程的创建(重点)2.1 通过继承Thread创建线程2.1 使用Runnable配合Thread (推荐)2.3 使用FutureTask与Thread结合(Callable接口)三、线程运行原理(重点)3.1 虚拟机栈与栈帧3.2 线程上下文切换(Thread Context Switch)3.3 线程的常用方法3.3.1 start 与 run方法的区别3.3.2 sleep 与 yield3.3

2022-01-18 22:28:51 381

原创 JVM笔记-类的加载篇详解

JVM-类的加载篇详解常见面试题一、类的加载过程(类的生命周期)详解1.1 概述1.2 #### 过程一:Loading(加载)阶段2.2.1 加载完成的操作常见面试题描述一下JVM加载Class文件的原理机制?类加载过程哪些情况会触发类的加载(时机)一、类的加载过程(类的生命周期)详解1.1 概述在Java中数据类型分为基本数据类型和引用数据类型。基本数据类型由虚拟机预先定义,引用数据类型则需要进行类的加载。按照Java虚拟机规范,从class文件到加载到内存中的类,到类卸载出内存为

2022-01-14 19:57:26 360

原创 JVM笔记-Class文件结构详解

JVM-Class文件结构1.1 Class字节码文件结构1.2 魔数1.3 文件版本号1.4 常量池集合1.4.1 常量池计数器 constant_pool_count1.4.2 常量池表1.4.3 总结1.5 访问标识(access_flag、访问标志、访问标记)1.6 类索引、父类索引、接口索引1.6.1 this_class(类索引)1.6.2 super_class(父类索引)1.6.3 interfaces1.7 字段表集合1.7.1 字段计数器1.7.2 字段表1.8 方法表集合1.8.1

2022-01-13 16:35:42 470

原创 JVM笔记-垃圾回收详解

JVM-垃圾回收详解前言常见面试题一、堆内存的常见分配策略1.引入库2.读入数据总结前言常见面试题如何判断对象是否死亡(两种方法)。简单的介绍一下强引用、软引用、弱引用、虚引用(虚引用与软引用和弱引用的区别、使用软引用能带来的好处)。如何判断一个常量是废弃常量如何判断一个类是无用的类垃圾收集有哪些算法,各自的特点?HotSpot 为什么要分为新生代和老年代?常见的垃圾回收器有哪些?介绍一下 CMS,G1 收集器。Minor Gc 和 Full GC 有什么不同呢?一、堆内存

2022-01-13 15:10:23 568

原创 Spring5

Spring5源码一、Spring概述1. 什么是Spring2. Spring框架的设计目标,设计理念,和核心是什么3. Spring的优缺点是什么?4. Spring由哪些模块组成?5. Spring 框架中都用到了哪些设计模式?二、IOC容器1. IOC(控制反转)概述1.1 什么是Spring IOC 容器?1.2 IOC有什么作用?2. IOC底层(实现机制)3. Spring提供的IOC容器实现的两种方式(两个接口)4. 什么是Spring的依赖注入?5. 有哪些不同类型的依赖注入实现方式?三、

2022-01-04 20:12:48 261

原创 Java基础—反射与动态代理

反射与动态代理前言一、反射的概述1. 反射的概述2. 获取Class示例的三种常见方式3. Class类的理解4. 创建Class对应运行时类的对象的通用方法,代码实现。以及这样操作,需要对应的运行时类构造器方面满足的要求。二、反射的应用:动态代理1. 代理模式与动态代理2. 静态代理举例3. 动态代理类举例前言一、反射的概述1. 反射的概述Reflection(反射)是被视为动态语言的关键,反射机制允许程序在执行期借助于Reflection API取得任何类的内部信息,并能直接操作任意对象的内

2022-01-04 20:00:56 379

原创 JVM笔记-内存区域详解

JVM-内存区域详解

2021-12-30 20:58:16 1132

原创 windows下mysql增量备份和全量备份

文章目录前言一、增量备份1. 准备工作2. 增量备份3. 脚本4. java后端二、全量备份1. 脚本2. java后端前言Windows下mysql的增量备份和全量备份,并利用java定时任务执行bat脚本。一、增量备份1. 准备工作首先在进行增量备份之前需要查看一下配置文件,查看log_bin是否开启 。首先,进入到 mysql 命令行,输入如下命令:show variables like '%log_bin%';如下命令所示,则为未开启mysql> show variab

2021-08-05 18:53:54 2651 2

原创 上传下载功能

文章目录一、上传功能1. 后端代码2. 前端代码二、 下载功能1. 后端代码2. 前端代码一、上传功能1. 后端代码com.xx.xx.controller.CommonController@Api(tags = "通用方法")@RestController@RequestMapping("/common")public class CommonController { @Autowired CommonService commonService; @ApiO

2021-08-04 17:00:36 311

原创 Export2Excel--Excel导出功能

文章目录2. 参数3. 引入js文件4. 页面调用方法示例### 1. 安装依赖Export2Excel依赖js-xlsx、file-saver和script-loader。安装命令:npm install xlsx file-saver -Snpm install script-loader -S -D由于js-xlsx体积还是很大的,导出功能也不是一个非常常用的功能,所以使用的时候建议使用懒加载。使用方法如下:import('@/vendor/Export2Excel').then(e

2021-07-30 12:15:19 9208 6

原创 实现用户无感知刷新token

文章目录1. 需求2. 解决思路3. 代码实现4. 其他4.1 前置守卫4.2 token存储方式1. 需求前端登录后,后端返回token和refreshToken,当token过期时要求用refreshToken去获取新的token,前端需要做到无感知请求刷新token。2. 解决思路当用户发起一个请求时,判断token是否已过期,若已过期则先调用refreshToken接口,拿到新的token后再继续执行之前的请求。方法:在响应拦截器中对请求返回结果进行拦截,判断token 返回过期后,调用

2021-07-30 11:23:54 2353 5

原创 SpringSecurity+JWT+redis认证流程

文章目录1. 整合SpringSecurity1.1 工作流程1.2 SpringSecurity的重要概念1. SecurityContext2. SecurityContextHolder3. Authentication4. AuthenticationManager1.3 引入Security与jwt2. 准备工作2.1 重写UserDetailsService2.2 Redis工具类2.3 ResponseUtil2.4 解决跨域问题2.5 TokenService3. 具体实现流程3.1 Sec

2021-07-29 21:57:56 3167 1

原创 Redis学习笔记

文章目录1、NoSQLNoSQL四大分类2、Redis入门2.1 Redis能干嘛?2.2 Windows安装Redis2.3 Redis基本操作命令1. String2. List(列表)3. Set(集合)4. Hash5. Zset(有序集合)2.5 Redis三种特殊数据类型1. geospatial 地理位置2. Hyperloglog 基数统计3. Bitmap 位图场景3、事务4、监控! Watch (面试常问!)5、Jedis1. 导入对应依赖2. 编码测试连接3. 通过Jedis再次理解事

2021-07-29 14:46:41 259

原创 Java学习笔记

1、项目创建方式使用 IDEA 直接创建项目1、创建一个新项目2、选择spring initalizr3、填写项目信息4、选择初始化的组件(初学勾选 Web 即可)5、填写项目路径6、等待项目构建成功通过上面步骤完成了基础项目的创建。就会自动生成以下文件:1、程序的主启动类2、一个 application.properties 配置文件3、一个 测试类4、一个 pom.xml2、pom.xml <parent> <groupId&gt

2021-07-29 14:34:59 159

原创 windows部署项目后台启动程序相关

一、Windows上后台运行jar包1. 创建启动和停止两个.bat脚本在jar文件的同级目录下面编写两个.bat文件,分别是“启动.bat”和“停止.bat”。2. 启动.bat@echo offtitle 准备启动设备驱动...................color 3Estart javaw -jar -Dloader.path=.,resources,lib monitor-v01.jarecho .echo ------------ 启动成功 -----------

2021-07-26 21:57:50 284

原创 Linux云服务器部署项目相关

一、通过xshell在Linux上安装Java1. 执行命令 cd /usr/ 进入文件夹;再输入 mkdir java 创建java文件夹(路径随你选择)2. 网上下载JDK8(JDK8下载),通过xftp将其传至服务器的java文件夹下3. tar -zxvf jdk-8u301-linux-x64.tar.gz(压缩包文件名)4. 继续执行 vim /etc/profile 进行环境变量的配置在vim编辑器里,点击i键开始编辑,在最下面添加:export JAVA_HOME=/usr/ja

2021-07-26 19:49:16 883

空空如也

空空如也

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

TA关注的人

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