- 博客(49)
- 收藏
- 关注
原创 数据运营与数据分类
数据有很多种,当你不使用它们的时候,他们就是一堆杂乱的数据,只有你有了明确了数据分析的目的,才能进行数据分析。电商后台就有很多数据,如商品的名称、型号、尺寸大小、价格、货源产地、购买者的淘宝账号、下单号、下单地址、购买者的身份(是否为新老用户)
2025-04-13 20:41:29
476
原创 protobuf 介绍与安装
Protobuf 是由 Google 开发的序列化协议,消息格式为二进制,独立于平台和语言,与 JSON 和 XML 等其他消息格式相比效率更高。
2025-02-19 21:15:54
144
原创 SQL中的Date相关函数
总结下MySQL中的Date相关函数用法,date函数,date_add用法,datediff,timestampdiff函数用法,lead用法
2024-12-07 16:51:44
815
原创 MapReduce工作机制&源码解析
MapTask一共分为五个阶段:Read、Map、Collect、溢写、Merge阶段。ReduceTask一共分为三个阶段:Copy、Sort、Reduce阶段。
2024-10-11 09:25:02
1269
原创 退出登录时如何使JWT令牌失效?
JWT 最大的一个优势在于它是无状态的,自身包含了认证鉴权所需要的所有信息,服务器端无需对其存储,从而给服务器减少了存储开销。不过无状态引出的问题也是可想而知的,它无法作废未过期的JWT。但是可以借助外力保存JWT的状态,常用的方案有两种,白名单和黑名单方式。
2024-08-29 17:57:06
657
原创 JWT结构详解与JWT设置
Token是服务端生成的一串字符串,以作客户端进行请求的一个令牌,当第一次登录后,服务端生成一个token并返回给客户端,以后客户端只需带上这个token前来请求数据即可,无需再次带上用户名和密码。JWT是 JSON Web Tokens 的简称,从单词可以看出它也是一种 token,其实可以理解为一种生成token的框架或规范。
2024-08-29 17:05:51
1584
原创 会话技术:Cookie、Session、JWT的优缺点分析与实践
会话跟踪:一种维护浏览器状态的方法,服务器需要识别多次请求是否来自同一浏览器,以便在同一次会话的多个请求间共享数据。为什么要共享数据呢?由于 HTTP 是无状态协议,在后面请求中怎么拿到前一次请求生成的数据呢?此时就需要在一次会话的多次请求之间进行数据共享。
2024-08-24 16:22:28
922
原创 数据库设计中什么时候需要给表设计唯一id而不用自增id
给表设计唯一ID而非自增ID通常在分布式系统、多数据中心、需要隐藏数据规模、高并发场景、数据迁移或合并、以及数据库分片时更为合适。唯一ID能确保全局唯一性、去中心化生成、避免ID冲突,但会增加存储开销和复杂性。在选择使用唯一ID还是自增ID时,需根据项目需求权衡利弊。
2024-08-23 14:08:29
633
原创 Java中的拦截器配置-- HandlerInterceptor
拦截器配置笔记(token认证拦截器和JWT校验拦截器)1、创建配置类WebInterceptorConfig实现WebMvcConfigurer;2、向InterceptorRegistry中依次注册拦截器;3、总结:多个拦截器的执行顺序。
2024-08-15 20:44:55
1276
1
原创 Java中的全局异常处理器 -- GlobalExceptionHandler
java中的全局异常处理器配置 -- GlobalExceptionHandler
2024-08-15 20:21:59
472
原创 Java时间类型 | 类型转换 及 java.util.Date与java.time.LocalDateTime区别
java.util.Date与java.time.LocalDateTime有什么区别?怎么对时间格式转换?java.util.Date 类是在 Java 1.0 中引入的,它是基于类似于 Unix 时间戳的毫秒数的。但设计存在一些问题,因此在 Java 8 中引入了 java.time 包来提供更强大和易用的日期时间 API。
2023-12-26 14:58:58
1164
原创 Vue学习
Vue 是一套构建用户界面的渐进式框架。与其他重量级框架不同的是,Vue 采用自底向上增量开发的设计。Vue 的核心库只关注视图层,并且非常容易学习,容易与其它库或已有项目整合。vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。
2023-08-02 22:03:36
129
原创 JavaScript事件
什么是事件呢?当事件触发时,我们可以给这些事件绑定函数,自动的完成对应的功能,这就是事件监听。举个例子:在登录界面中,当用户输入完内容,在标签外点击了鼠标,对于用户名输入框来说,失去焦点,然后执行绑定的函数,函数进行用户名内容的校验等操作。
2023-08-02 12:39:54
107
原创 JavaScript学习
外部脚本:将JS代码定义在外部 .js 文件中,然后引入外部 js 文件中,只包含JS代码,不包含标签标签不能自闭和2. JS基础语法2.1 语法规则语法规则:2.2 输出语句输出语句:2.3 变量变量:JS中主要通过如下3个关键字来声明变量:在JS中声明变量还需要注意如下几点:数据类型和运算符:JS中的数据类型分为 :原始类型 和 引用类型使用 typeof 函数可以返回变量的数据类型:JS中的运算符和运算规则绝大多数是和java中一
2023-08-01 23:02:29
164
原创 初识Web前端
HTML:负责网页的结构(页面元素和内容).CSS:负责网页的表现(页面元素的外观、位置等样式,如颜色、大小等).JavaScript:负责网页的行为(交互效果).
2023-07-31 15:56:05
81
原创 在 conda 中配置Python虚拟环境
浏览器打开Tsinghua Open Source Mirror,找到下面的 miniconda 安装包下载地址,点进去后,拉到最下面,找到 Miniconda3-latest-Linux-x86_64.sh,右键点击后选择“复制链接”。按提示完成安装。
2023-07-07 16:03:33
2142
原创 Java基础:String、StringBuffer、StringBuilder区别
三者共同之处:都是final类,不允许被继承,主要是从性能和安全性上考虑的,因为这几个类都是经常被使用着,且考虑到防止其中的参数被修改影响到其他的应用。StringBuffer是线程安全,可以不需要额外的同步用于多线程中;StringBuilder是非同步,运行于多线程中就需要使用着单独同步处理,但是速度就比StringBuffer快多了;
2023-02-20 20:28:35
115
原创 Java中String对象不可变及字符串常量池
String对象不可变 原因与本质• String是一个final类,代表不可变的字符序列• 字符串是常量,用双引号引起来,他们的值在创建之后不可更改• String对象的内容是存储在字符数组value[ ]中的
2023-02-19 21:47:57
169
原创 Java中File类方法整理
现将File类中对于文件的操作进行整理。• 自定义获取功能是在高级获取功能的基础上,加了一个过滤器,所以高级功能的特点它都有。FileFilter是一个接口,它只有下面一个方法。 这个方法相当于把高级功能中listFiles()获取的File数组中File对象遍历一遍,然后逐个判断
2023-02-18 17:32:07
189
原创 Java的comparator接口中compare方法比较原理
可通过重写Comparator接口中的抽象方法compare,自定义元素的排序方式。• Compare的返回值反应的是两个参数的权重,返回值正整数时,前者(o1)权重大,返回值为负整数时,后者(o2)权重大。然后排序结果按照权重(注意这里不是值的大小)由小到大进行排序。即权重默认升序排列。
2023-02-17 19:18:51
2930
原创 Java为什么在局部内部类当中访问作用域内部的局部变量,是final常量
这个和JVM以及编译器的实现有关。1.局部内部类对象生命周期和局部变量不同,
2023-02-16 19:37:54
169
原创 Java抽象类的注意事项(抽象类不能创建对象为什么提供了构造器)
理解:抽象类中已经实现的是模板中确定的成员,抽象类不确定如何实现的定义成抽象方法,交给具体的子类去实现。理解:假设创建了抽象类的对象,调用抽象的方法,而抽象方法没有具体的方法体,没有意义。抽象类不能创建对象,如果创建,编译无法通过而报错。抽象类的子类,必须重写抽象父类中所有的抽象方法,否则子类也必须定义成抽象类。抽象类一定有而且是必须有构造器,是供子类创建对象时,初始化父类成员使用的。抽象类中,不一定包含抽象方法,但是有抽象方法的类必定是抽象类。抽象类存在的意义是为了被子类继承,抽象类体现的是模板思想。
2023-02-12 17:10:57
388
原创 抽象类vs接口 特点及区别分析
抽象类的作用:作为模板或对共性属性和行为抽象,与子类is-a关系,故抽象类不可以创建对象抽象类的使用 1.如果子类是一个普通类,要实现抽象父类中的所有抽象方法 2.如果子类是一个抽象类,可以选择性的实现抽象父类中的抽象方法 另外,抽象类还可以继承普通类
2023-02-12 17:02:17
89
原创 JAVA设计模式之单例模式
单例设计模式是一种应用程序维护实例的方式,单例即一个,即应用程序中只有一个唯一的实例对象。两种模式:• 懒汉模式(懒加载) 懒汉指在第一次用到的时候才实例化自己• 饿汉模式(立即加载) 饿汉指的是不管用不用,先把对象创建好
2023-02-08 14:51:30
98
原创 Java中数组长度为0和数组是null以及数组未初始化,有啥区别
数组未初始化:这个数组完全是不可用的,没有初始化的数组毫无意义,一旦使用会编译报错。数组长度为0和数组为null都是可以使用的,可以认为是经过初始化的,但都不是正常数组。数组长度为0:(只在内存中存在结构但没有存储单元,不能存储任何数据)
2023-02-04 18:50:24
1414
原创 JVM堆和栈中内容的区别
从三个角度来分析这个问题• 存储的类型• 默认值• 生命周期存储类型1、堆上存储的是new出来的东西,是引用数据类型的实质——对象1. 栈上存储的是局部变量(基本数据类型和引用类型的引用)
2023-01-31 12:48:25
86
原创 基本数据类型与引用数据类型及其区别
• 什么是引用数据类型?引用数据类型是Java的两大数据类型之一,我们可通过数组初始化的内存分配过程来一窥引用数据类型的特点。引用数据类型的创建分为两部分:1. 首先是在栈上分配一片空间给引用数据类型的引用,简称`引用`,它是一个局部变量,直接存储在栈帧中。2. 在堆上开辟一片空间,用于存放引用数据类型的实际信息,称之为`对象`或者`实例`……
2023-01-31 12:27:19
344
原创 JVM运行内存空间模型
一个Java程序在虚拟机运行的过程中,在内存中需要保存很多种类型的数据。为了更好地管理这些不同类型数据,jvm将自己的内存空间划分为五大区域,各个区域针对不同类型的数据,其内存空间有不同的管理方式。这五大区域,示意图如下:1、JVM栈(以后简称栈,stack):
2023-01-31 12:07:24
135
原创 数组的随机访问与数组的优缺点
数组的随机访问与数组的优缺点思考:数组里的数据,为什么非要有序且数据类型一样??答:这实际上和数组的数据结构有关系,数组是线性表的典型物理实现。数组最显著的特征是支持随机访问,而数组随机访问实现方式是:根据数组的首地址和下标……
2023-01-31 11:08:05
580
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人