自定义博客皮肤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)
  • 收藏
  • 关注

原创 spark美食推荐系统+sparksql数据分析

基于大数据美食推荐系统+spark数据分析系统源码 美食分享系统。基于spark als基于模型协同过滤算法推荐。hadoop中的hdfs存储日志和用户行为。框架:springboot+vue。spark sql实现数据分析。echart实现图表展示。

2023-11-21 22:43:44 262 3

原创 python+django基于用户协同过滤的音乐推荐系统

基于用户协同过滤的音乐推荐系统技术栈:python+django+基于用户协同过滤,应用余弦相似度推荐思路:用户登陆系统后,听歌时会记录听歌次数,听歌的次数可以代表用户对歌曲的喜好度,一次一分,最高10分,有了记录后再应用余弦公司计算用户相似度,得到相似度矩阵,在通过相似度矩阵*用户评分矩阵得到推荐分数矩阵,按分数高低排序推荐

2022-12-18 03:15:04 1181 5

原创 基于SSM的零食推荐商城

基于SSM的零食推荐商城源码 推荐思路:以购物车,收藏,订单三种记录来评用户喜好,购物车3分,收藏2分,订单5分,构建评分矩阵,应用余弦相似度先计算出用户相似度矩阵,再将矩阵相乘得到推荐矩阵,矩阵的每一行代表每个用户对每个商品的评分,推荐结果则按评分高低排序进行推荐

2022-11-27 02:40:59 415 1

原创 ThreadLocal源码分析与实践

ThreadLocal是什么?ThreadLocal是一个线程内部存储类,提供线程内部存储功能,在一个ThreadLocal对象中,每一个线程都存储各自独立的数据,互不干扰示例如下:public class ThreadLocalTest { @Test public void test() throws InterruptedException { T...

2020-09-23 18:19:00 213

原创 基于jdk1.8的LinkedList源码分析

前言LinkedList实现了List与Deque接口。数据结构为双端链表结构,当执行随机位置插入和删除的操作时不需要跟ArrayList一样执行一次复制移动数据的过程,只需要修改前后节点的前后连接即可,所以可以相对高效的执行的插入和移除操作。源码分析构造函数(空构造方法)  /** * Constructs an empty list. */ public...

2020-09-21 16:35:00 51

原创 Spring编程式事务使用不当导致其他事务无法正常提交

1.事故背景原本在使用的是注解式事务,后面因为需要在事务中增加异步推送机制,所以需要将推送机制放到事务之外,修改后发现系统经常出现事务长时间无法提交导致回滚。2.排查流程(1)一开始重启应用是能恢复正常,所以肯定是在某种情况下会触发异常的产生(2)查看在mysql控制台查看当前正在执行的事务(SELECT * FROM information_schema.INNODB_TRX),分析该...

2020-08-24 11:20:00 358

原创 Spring Redis开启事务支持错误用法导致服务不可用

1.事故背景在APP访问服务器接口时需要从redis中获取token进行校验,服务器上线后发现一开始可以正常访问,但只要短时间内请求量增长服务则无法响应2.排查流程(1)使用top指令查看CPU资源占用还远远达不到瓶颈,排查因为CPU资源不足导致服务不可用的可能(2)查看tomcat线程池配置,默认最大线程数为200,理论上可以支持目前服务器的访问量(3)使用jmap指令保存堆栈信息,...

2020-06-28 17:27:00 66

原创 MySQL主从数据库配置与原理

1.为什么要搭建主从数据库(1)通过增加从库实现读写分离,提高系统负载能力(2)将从库作为数据库备份库,实现数据热备份,为数据恢复提供机会(3)根据业务将不同服务部署在不同机器同时又共享相同的数据2.主从数据库原理分析主从数据库同步流程步骤一:主库开启binlog日志后,会启动dump将数据数据变化写入binlog步骤二:从库开启slave参数后,会与主库建立一个连接步骤三...

2020-04-29 14:35:00 51

原创 如何理解面向对象与面向过程的区别

1.面向对象和面向过程的本质是什么?面向对象与面向过程本质来说都是代码结构的设计或者思想,而编程则是通过编程语言将事物的逻辑根据需求描述出来,所以我觉得并不能说Java就是一种面向对象的语言,而c就是一种面向过程的语言,我的理解是Java内置的语法对面向对象的代码结构支持比较好。2.为什么先出现面向过程后出现面向过程?现代社会中一个新事物或者新概念的出现往往是伴随着需求而产生的。比如我想...

2020-04-28 20:46:00 193

原创 初识docker与理解

因最近公司的一个新项目,有一个业务场景是需要给多个甲方的服务器配置运行环境与部署,所以考虑使用docker来实现环境配置的统一1.docker是什么docker是一种容器虚拟化技术的实现,相当于在一台服务器上可以虚拟化成多个服务器,各自运行各自的服务,例如tomcat,,mysql,nginx等服务,互不影响与干扰。2.为什么要用docker(1)避免重复配置环境,例如在一个集群中多态服...

2020-04-14 11:19:00 190

原创 @NotEmpty、@NotNull、@NotBlank注解解析

源码解析@NotEmpty根据JDK源码注释说明,该注解只能应用于char可读序列(可简单理解为String对象),colleaction,map,array上,因为该注解要求的是对象不为null且size>0,所以只有上述对象是拥有size属性的,而Integer,Long等基础对象包装类没有该属性/** * The annotated element must not be ...

2019-12-05 16:07:00 127

原创 Java基本数据类型

1.整形类型占用空间取值范围int4字节-2147483648 - 2147483647short2字节-32768 - 32767long8字节-9223372036854775B08 - 9223372036854775807byte1字节-128 - 127Java的基础数据类型的整形和浮点数都是带符号的,即有正负之分,在与c语...

2019-11-14 15:19:00 322

原创 Java创建线程的四种方式

Java创建线程的四种方式1.继承Thread类创建线程定义Thread类的子类,并重写该类的run方法,run()方法的内容就是该线程执行的内容创建Thread子类的实例,即创建了线程对象。调用线程对象的start()方法来启动该线程。代码演示public class MyThread extends Thread { @Override public void...

2019-11-08 10:44:00 32

原创 浅谈HTTP与其工作流程

一、什么是HTTP协议HTTP协议(Hyper Text Transfer Protocol)翻译过来是超文本传输协议,也是一种restful风格的协议,在web开发和APP接口开发都很常用。HTTP协议是应用层协议,同样是应用层协议的还有FTP,MQTT,SMAP等,但总结来说都是基于TCP/IP之上传输,应用层的协议可以理解为根据不同的协议传输不同格式的字节。比如以下是一个HTTP协议...

2019-07-25 17:15:00 540

原创 浅谈ActiveMQ与使用

一、什么是消息中间件消息中间件顾名思义实现的就是在两个系统或两个客户端之间进行消息传送二、什么是ActiveMQActiveMQ是一种开源的基于JMS(Java Message Servie)规范的一种消息中间件的实现,ActiveMQ的设计目标是提供标准的,面向消息的,能够跨越多语言和多系统的应用集成消息通信中间件。三、什么时候需要用ActiveMQActiveMQ常被应用与系统业...

2019-07-20 15:06:00 35

原创 浅谈MQTT

一、什么是MQTTMQTT的全称是“Message Queuing Telemetry Transport”,即消息队列遥测传输,是一种基于订阅/发布模式的应用层协议,而http是一种基于restful风格的一种应用层协议。MQTT协议是一种轻量级协议,作为一种低开销、低带宽占用的即时通讯协议,常被应用于物联网项目。同样基于订阅/发布模式的中间件有ActiveMQ,Kafka等消息中间件,...

2019-07-20 12:48:00 75

原创 深入理解Java的浅克隆与深克隆

前言克隆,即复制一个对象,该对象的属性与被复制的对象一致,如果不使用Object类中的clone方法实现克隆,可以自己new出一个对象,并对相应的属性进行数据,这样也能实现克隆的目的。但当对象属性较多时,这样的克隆方式会比较麻烦,所以Object类中实现了clone方法,用于克隆对象。Java中的克隆分为浅克隆与深克隆一、实现克隆的方式1.对象的类需要实现Cloneable接口2.重...

2019-06-28 10:37:00 58

原创 openssl实现自签名证书

前言证书的作用加密通信数据,验证对象身份,保证数据完整性什么是自签名证书公认的证书往往都需要收费,如果客户端与服务端都是由我们自己来操控,那便可以使用自签名证书(说白了就是只是自己认可的证书)ca签名证书ca签名证书,也就是我们自己当是认证的机构去认证一个证书,那么客户端新人该ca证书也代表着信任该ca证书签名的所有的自签名证书。openssl是什么OpenSSL是一套开源的密码...

2019-04-23 14:52:00 55

原创 深入理解Java设计模式之观察者模式

前言观察者,即时observer,总结来说就是一个当一个被观察的对象的状态发生变化时,会通知相应的观察者对象。观察者模式定义了四种角色:抽象主题、具体主题、抽象观察者、具体观察者1.抽象主题(Subject):通常为接口或抽象类,定义一系列操作,如订阅,取消订阅,通知等方法2.具体主题(Concrete Subject):具体主题,继承或实现抽象主题,实现相应的逻辑,如维护与观察者的关...

2019-04-12 11:25:00 46

原创 深入理解Java自带的线程池和缓冲队列

前言线程池是什么线程池的概念是初始化线程池时在池中创建空闲的线程,一但有工作任务,可直接使用线程池中的线程进行执行工作任务,任务执行完成后又返回线程池中成为空闲线程。使用线程池可以减少线程的创建和销毁,提高性能。举个例子:我是一个包工头,代表线程池,手底下有若干工人代表线程池中的线程。如果我没接到项目,那么工人就相当于线程池中的空闲线程,一但我接到了项目,我可以立刻让我手下的工人去工作,每...

2019-01-09 15:32:00 34

原创 深入理解Java的三种工厂模式

一、简单工厂模式简单工厂的定义:提供一个创建对象实例的功能,而无须关心其具体实现。被创建实例的类型可以是接口、抽象类,也可以是具体的类实现汽车接口public interface Car { String getName();}奔驰类public class Benz implements Car { @Override public String ge...

2018-12-29 09:47:00 16

原创 深入理解JAVA中的代理模式

前言代理是什么事故现场:我家的宠物今天生病了,而我又没有相关的医学知识,所以我只让我的宠物多喝热水吗?结果显然是不行的,所以我需要去找宠物医生这些更专业的人来帮我的宠物治病。这个时候,代理就出现了,而宠物医生就是代理,而我就是目标对象。总结起来就是代理代替目标对象执行相关操作,即是对目标对象的一种功能扩展。使用代理模式的条件1、两个角色:执行者,被代理对象2、注重过程,必须要做,...

2018-12-28 10:13:00 31

原创 maven项目导入依赖jar包并打包为可运行的jar包

1.在pom.xml文件中添加插件<build> <finalName>LeadServer</finalName> <!-- jar包名前缀,如果没有指定,则会使用{artifactId}作为前缀 --> <plugins> <plugin> <artifact...

2018-12-27 20:13:00 48

原创 深入理解单例模式的几种实现方式

前言单例模式是一种很常用的设计模式,其定义是单例对象的类只允许有一个实例存在。在使用spring自动创建对象时默认就是单例的。使用场景需要频繁的对对象进行创建与销毁,如果工具类对象一、饿汉式(静态变量)public class Singleton1 { private static final Singleton1 INSTANCE = new Singleton1();...

2018-12-27 09:59:00 18

原创 Java使用AES算法进行加密解密

一、加密/** * 加密 * @param src 源数据字节数组 * @param key 密钥字节数组 * @return 加密后的字节数组 */ public static byte[] Encrypt(byte[] src, byte[] key) throws Exception { SecretKeySpe...

2018-12-16 19:50:00 37

原创 深入理解this关键字

this是什么?在Java语言中,当创建一个对象后,Java虚拟机就会为其分配一个指向对象本身的指针,这个指针就是“this”。this关键字有哪些用法?一、调用本类的成员变量class Person{ private String name; public Person(String name){ this.name = name; }}...

2018-12-15 16:35:00 26

原创 基于jdk1.8的ArrayList源码分析

前言ArrayList作为一个常用的集合类,这次我们简单的根据源码来看看AarryList是如何使用的。ArrayList拥有的成员变量 1 public class ArrayList<E> extends AbstractList<E> 2 implements List<E>, RandomAccess, Cloneable, ja...

2018-12-10 20:54:00 35

原创 linux下安装与配置Redis

1.安装(1)获取源代码  wget http://download.redis.io/releases/redis-4.0.8.tar.gz(2)解压  tar xzvf redis-4.0.8.tar.gz(3)安装  解压后生成redis-4.0.8文件夹  cd redis-4.0.8  make(因获取的是源代码,需要在本机编译)  cd src  make ins...

2018-10-12 16:31:00 14

空空如也

空空如也

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

TA关注的人

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