自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Redis系列:安装和基础知识(一)

在Linux中使用docker安装1. docker pull redis:latest //下载redis2. docker images //查看3. docker run -itd --name redis-twy -p 6379:6379 redis //运行redis容器4. docker ps //查看是否运行5. docker exec -it redis-twy /bin/bash //使用 docker exec -it redis /bin/bash进入redis

2020-11-21 09:54:34

原创 SpringBoot系列:Redis消息的发布和订阅(三)

序言redis不但能用于对数据的CRUD,也可以作为一个消息中间件,用来进行消息的发布和订阅。在下面的demo中,配置了多个监听器,来监听不同的通道。消息的发布创建一个消息发布者类MessageSender.java,两个发送者分别向通道chatA和通道chatB发送消息:/** * 消息发布者 */@EnableScheduling//开启定时器功能@Component//自动注入public class MessageSender { @Autowired priva

2020-11-19 21:46:49 37 2

原创 SpringBoot系列:Redis的不同类型值的存取(二)

序言在SpringBoot系列:简单整合redis(一)文章中已经具体的阐述了怎么安装Redis及SpringBoot整合Redis的环境的配置等,在接下来关于Redis的文章中就不会去一一阐述环境的配置了。Redis的不同类型值的存取/** * Redis的值的各种方式的存储与取出 */@RestController@RequestMapping("RedisStoreValueTest")public class RedisController { @Autowired

2020-11-19 10:17:38 72 3

原创 SpringBoot系列:自动装配原理分析

序言不管在工作中还是在求职面试中,SpringBoot成为了我们必会的知识技能之一。当然,作为Spring Boot的精髓,自动配置原理首当其冲。在本文章的下面,也是自己在源代码中挣扎的一些简单理解。原理分析首先打开一个基本的springboot项目,我们可以看到@SpringBootApplication,说明这个类是SpringBoot的主配置类,SpringBoot就会运行这个类的main方法来启动SpringBoot项目:点进去@SpringBootApplication注解,我们

2020-11-15 23:01:01 27

原创 SpringBoot系列:多数据源动态切换(AOP方式实现)

序言在平常,项目中经常会有集成其他数据库的情况,项目是使用spring Boot+Druid+Mybatis Plus开发的前提下。在本次的文章中主要使用SpringBoot+Mybatisplus+druid实现多数据源的动态切换,使用AOP的方式动态的获取数据源。在上一篇的文章中具体讲了怎么去整合MybatisPlus:SpringBoot系列:带你整合MybatisPlus。环境搭建首先我们准备好要用的数据源,在这里我准备了两个环境的数据库,一个是本地的MySql,还有一个是服务器上的MyS

2020-11-14 19:15:18 50

原创 SpringBoot系列:带你整合MybatisPlus

简介MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。特性(来自:官网):无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD操作,更有强大的条件构造器,满足各类使用需求支持 Lambda 形式调用:

2020-11-13 17:12:07 43

原创 你最想要的RabbitMQ干货来啦!!!

序言在文章的开始,首先引出几个问题:你是否还在为两个(多个)系统间需要通过定时任务来同步某些数据而苦恼?你是否在为异构系统的不同进程间相互调用、通讯的问题而苦恼、挣扎?如果是,那么恭喜你,消息服务让你可以很轻松地解决这些问题。消息服务擅长于解决多系统、异构系统间的数据交换(消息通知/通讯)问题,你也可以把它用于系统间服务的相互调用(RPC)。本文将要介绍的RabbitMQ就是当前最主流的消息中间件之一。主要通过概念的阐述和示例的结合来简单的介绍RabbitMQ,希望能有所帮助。基本概念Ra

2020-11-07 11:32:14 72

原创 Spring5----学习笔记(下)

前言Sping5学习的下半部分主要是围绕AOP(面向切面编程),进行基础的学习和巩固。代理模式

2020-11-01 22:13:53 48

原创 Spring5----学习笔记(上)

IOC理论推导在这里我会通过一个简单的例子来引出IOC,首先我们简单的新建一个maven项目,里面主要有dao层和service层,具体的代码如下://userDao层接口public interface UserDao { void getUserData();}//获取mysql数据的实现public class UserMysqlDaoImpl implements UserDao{ public void getUserData() { System.ou

2020-10-22 14:32:00 37 4

原创 Java编程思想:动态代理的实现

简介代理是基本的设计模式之一,它是你为了提供额外的或不同的操作,而插入的用来代替“实际对象”的对象,这些操作通常涉及与“实际对象”的通信,因此代理通常充当中间人的角色,我们首先展示简单的静态代理从而引出动态代理。静态代理/** * 简单静态代理 */interface Interface{ void doSomething(); void somethingElse(String arg);}class RealObject implements Interface{

2020-10-11 20:10:55 40

原创 Java编程思想:关于Java中 ? extends T 和 ? super T 的理解

?通配符类型<? extends T> 表示类型的上界,表示参数化类型的可能是T 或是 T的子类;(上界通配符)<? super T> 表示类型下界,表示参数化类型是此类型的超类型(父类型),直至Object;(下界通配符)上界通配符<? extends T>不能往里存,只能往外取public class test { public static void main(String[] args) { List<Class&

2020-10-11 09:02:08 42

原创 SpringBoot系列:简单整合redis(一)

简介Redis的特点:1,Redis读取的速度是110000次/s,写的速度是81000次/s;2,原子 。Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行。3,支持多种数据结构:string(字符串);list(列表);hash(哈希),set(集合);zset(有序集合)4,持久化,集群部署5,支持过期时间,支持事务,消息订阅redis的配置依赖<!-- redis --> <dependency> <grou

2020-09-29 00:10:25 33

原创 letcode_实现strStr()

题目实现 strStr() 函数。给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。示例 1:输入: haystack = "hello", needle = "ll"输出: 2示例 2:输入: haystack = "aaaaa", needle = "bba"输出: -1来源:力扣(LeetCode)解法一:(窗口移动)思路 子串逐一比较:沿

2020-08-31 19:18:36 38

原创 letcode_合并两个有序链表

题目将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4解法一:迭代思路 (1)当l1或者l2其中一个为空时,则返回相对应的链表 (2)当l1和l2都不为空的时候,判断l1和l2哪一个链表的头节点值更小,将较小值添加到结果链表里 (3)当一个节点被添加到结果链表中时,将对应链表的指针向后移一位代码/**

2020-08-29 10:53:58 27

原创 letcode_有效括号

题目给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: "()"输出: true示例 2:输入: "()[]{}"输出: true示例 3:输入: "(]"输出: false示例 4:输入: "([)]"输出: false示例 5:输入: "{[]}"输出: true解法一:暴力解法

2020-08-29 10:45:33 33

原创 letcode--最长公共前缀

题目示例 1:输入: ["flower","flow","flight"]输出: "fl"示例 2:输入: ["dog","racecar","car"]输出: ""解释: 输入不存在公共前缀。解法一:暴力解法思路 (1)找到字符串数组中字符串最短的长度 (2)循环截取每个字符串放到数组中,循环(1)获取的最短长度,在对每个list去重 (3)如果list去完重以后的长度为1,则说明是公共字符串,否者退出循环,返回代码 /** * 解法一: *

2020-08-23 19:35:12 57

原创 letcode-回文数

普通解法最简单粗暴的解法,把整数转为字符串,并把字符串分割成字符串数组,循环一般的数组判断是否相等。代码一class Solution { public boolean isPalindrome(int x) { //遍历一半数组,判断是否相等 if(x < 0){ return false; } char[] num_char = (x+"").toCharArray(); for(

2020-08-19 14:15:34 42

原创 letcode--最小栈

题目设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。push(x) —— 将元素 x 推入栈中。pop() —— 删除栈顶的元素。top() —— 获取栈顶元素。getMin() —— 检索栈中的最小元素。示例输入:["MinStack","push","push","push","getMin","pop","top","getMin"][[],[-2],[0],[-3],[],[],[],[]]输出:[null,null,null,null

2020-08-12 19:30:09 41

原创 Letcode--整数反转

题目给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例 1:输入: 123输出: 321示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。普遍的思路,新建一个数组反过来存,简单除暴,但是效率和内存消耗大class Solution { public int

2020-08-10 20:46:02 51

原创 Letcode-两数之和

题目给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1](1)方法一:双重for循环,简单粗暴class Solution { public int[] twoSum(int[] nums, int target) { int[] index = new int[2]; //双重递归 for(int i = 0;i < nums.

2020-08-09 20:19:40 62

原创 Hystrix的快速入门

Spring Cloud调用接口过程Spring Cloud 在接口调用上,大致会经过如下几个组件配合:Feign ----->Hystrix —>Ribbon —>Http Client(apache http components 或者 Okhttp) 具体交互流程上,如下图所示:接口化请求调用当调用被@FeignClient注解修饰的接口时,在框架内部,将请求转换成Feign的请求实例feign.Request,交由Feign框架处理。Feign :转化请求Feign是一

2020-07-22 21:41:08 50

原创 Nacos和Feign的简单使用

nacosSpring Cloud相关基础服务组件服务发现——Netflix Eureka (Nacos)服务调用——Netflix Feign熔断器——Netflix Hystrix服务网关——Spring Cloud GateWay分布式配置——Spring Cloud Config (Nacos)消息总线 —— Spring Cloud Bus (Nacos)基本概念(1)Nacos 是阿里巴巴推出来的一个新开源项目,是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理

2020-07-21 09:05:27 609 1

原创 Java实现阿里云视频点播的功能

获取视频的播放地址1.在阿里云中开通视频点播功能,上传一个测试视频视频基本信息:(视频ID)2.创建一个maven项目,引入依赖<dependencies> <dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-java-sdk-core</artifactId> </d

2020-07-19 11:37:43 433

原创 在Linux服务器上安装SVN并上传项目

安装svn(1)安装svn服务器:yum install subversion(2)查看版本(随自己意愿):svnserve --version创建svn仓库并配置(1)创建svn仓库在/home下创建svn目录并用svn管理员创建库:[root@izbp19p16mcz7awt4d8kahz /]# cd /home [root@izbp19p16mcz7awt4d8kahz home]# mkdir svn[root@izbp19p16mcz7awt4d8kahz home

2020-07-18 10:38:47 109

原创 Tensorflow深度学习的日常——day-5

什么是过拟合(overfitting)?其实过拟合就相当于我们生活中的自负,机器学习模型于自信,已经到了自负的阶段了,这样往往得不到我们想要的结果.分类例子(图引用莫凡python)上图分类的例子中(我们的目的是把红色和蓝色区分开来),其中黑色的曲线是正常的模型。然而绿色的线就是过拟合模型,尽管它很精确的区分了训练数据,但是并没有具体描述这些数据的整体特征,因此我们换上新的测试数据时,适应性会很差。Regression(回归)(图引用莫凡python)由回归例子的图可以看出,..

2020-06-29 18:17:34 43

原创 Tensorflow深度学习的日常——day-4

分类学习基于TensorFlow,实现softmax Regression手写体分类首先先上完整的代码,过后再具体的解析:代码softmax Regression可以算作没有隐含层的最浅的神经网络,实现的过程主要分为四个阶段:1. 定义算法公式,即神经网络前向传播的计算;2. 定义损失函数,选定优化器,并且制定优化器优化损失函数;3. 迭代地对数据进行训练;4. 在测试集或者验证集上对准确率进行计算。具体一些介绍和定义以及代码中重要语法看:http://www.ten

2020-06-29 18:17:00 53

原创 Tensorflow深度学习的日常——day-3

1.可视化神经网络(TensorBoard)在我们运行完程序后,图结构将以日志文件的形式保存到给定的路径下。然后在命令行启动Tensorboardtensorboard --logdir=C://Users//Administrator//Desktop//tensorboard运行完上述代码后,我们可以得到一个ip》》》》http://SC-201706201654:6006然后把其复制粘贴到浏览器打开就好2.可视化day_2 代码的神经网络的建造过程代码:运行结果

2020-06-29 18:16:19 46

原创 Tensorflow深度学习的日常——day-2

1.定义变量,Veriable(代码演示)Veriable2.placeholder 传入值placeholder3.TensorFlow 激活函数的使用- 激活函数activation function 运行时激活神经网络中某一部分神经元,将激活信息向后传入下一层的神经网络。- 神经网络之所以能解决非线性问题(入语音、图像识别),本质上就是激活函数加入了非线性因素,弥补了线性模型的表达力,把“激活的神经元的特征”通过函数保留并映射到下一层。- 因为神经网络的数学基础是.

2020-06-29 18:14:35 42

原创 Tensorflow深度学习日常——day-1

序言:俗话说好记性不如烂笔头,在我们学习的过程中,特别是搞程序这一块的,每天的学习的东西有很多,光靠我们的大脑来记忆,那是不怎么可能的,如果可以的话,那你应该去参加最强大脑了。因此我们可以每天在学习完以后,自己把知识点梳理一下,然后写成一个笔记,这样我们如果在以后的工作学习中用到这方面的知识我们也可以通过自己的学习笔记来快速的掌握,我之前也写过文章,但是由于别的事情就没写了,我因此在这立下一个flag,只要自己每天学习到的东西,都会把它整理成文章。在之后我也会整理关于python基础,爬虫,数据分析的几个重

2020-06-29 18:13:53 44

原创 使用EasyExcel添加多级分类功能

绪论当面对很多数据要处理,并且需要导入导出Excel表格时。在使用POI时发现非常耗内存,这时GitHub上的阿里开源项目Easy Excel可以解决此类问题,它是基于java的读写Excel,十分省内存。本篇博文主要是总结其简单使用以及关于添加分类功能的实现。快速入门创建项目导入依赖(此依赖依靠PIO模块,项目还需要导入PIO模块)<dependency> <groupId>com.alibaba</groupId> <ar

2020-06-29 17:55:31 343 1

原创 Nginx实现请求转发

什么是请求转发?环境配置到官网下载nginx,这里使用的windows版本,最好使用Linux版本(性能好)把下载好的文件解压,在Nginx.conf进行配置(1)修改Nginx默认端口,把80修改为81listen 81;server_name localhost;(2)配置Nginx转发规则,在http{}加入下面配置: server { listen 9001; server_name localhost;

2020-06-28 23:34:15 364 1

原创 服务端(后端)OSS的使用(图片丶视频等资源的存储)

准备首先去阿里云官网,注册账号,实名认证,充一点钱,开通OSS服务,到下面的页面:控制台的使用创建Bucket,填完信息,点击确认。进入创建的Bucket页面上传文件访问(根据URL可以访问下载)Java代码中实现(因为在实际工作中,不会有操作控制台的权限)准备工作:创建阿里云oss的许可证(阿里云颁发的id和密钥)创建一个maven项目service_oss引入依赖<dependencies> <!-- 阿里云os

2020-06-28 19:24:05 279

原创 深度学习+OpenCV+python实现实时目标检测

环境安装安装Anaconda,官网链接Anaconda使用conda创建py3.6的虚拟环境,并激活使用 conda create -n py3.6 python=3.6 //创建 conda activate py3.6 //激活安装依赖numpy和imutils//用镜像安装pip install -i https://pypi.tuna.tsinghua.edu.cn/simple numpypip install -i https://pypi.tuna.tsinghua.

2020-06-23 10:44:42 263 2

原创 经典排序算法的总结(Java实现)

冒泡排序算法思想比较前后相邻的二个数据,如果前面数据大于后面的数据,就将这二个数据交换这样对数组的第0个数据到N-1个数据进行一次遍历后,大的一个数据就“沉”到数组第 N-1个位置N=N-1,如果N不为 0就重复前面二步,否则排序完成演示代码 //冒泡排序 public static void bubbleSort(int [] arr,int n){ int i,j; for(i=0;i<n;i++){

2020-06-21 21:18:10 50

原创 计算机基础学科面试题整理

操作系统(1)简单说明一下进程和线程的区别?进程是系统进行资源调度和分配的一个独立单位线程是进程的实体,是CPU调度和分配的基本单位,比进程更小能独立运行的单位一个进程可以有多个线程,多线程也可以并发执行(不了解进程和线程的点击链接)(2)线程同步的方式互斥量:采用互斥对象机制,只有拥有互斥对象的线程才有访问公共资源的权限。因为互斥对象只有一个,所以可以保证公共资源不会被多个线程同时访问。信号量:它允许同一时刻多个线程访问同一资源,但是需要控制同一时刻访问此资源的最大线程数量。事件(

2020-06-07 10:49:25 101

原创 基础数据结构(Java实现)(1)

基础数据结构的Java实现简介基础数据结构:Java自带类集合框架及继承关系:数组Array:数组的实现package 数据结构.数组;/** * 数组的实现 * */public class Arrary<E> { private E[] data; private int size; public Arrary(int ca){ // String[] data = (String[]) new Object[4];

2020-06-06 00:28:46 69

原创 JDK中常见的设计模式

JDK中常见的设计模式单例模式(Singleton pattern)用于 Runtime,Calendar 和其他的一些类中。工厂模式(Factory pattern)被用于各种不可变的类如 Boolean,像 Boolean.valueOf。观察者模式(Observer pattern)被用于 Swing 和很多的事件监听中。装饰器设计模式(Decoratordesign pattern)被用于多个 Java IO 类中。#单例模式单例模式重点在于在整个系统上共享一些创建时较耗资源的对象。整个

2020-06-04 22:37:34 187 1

空空如也

空空如也

空空如也

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

TA关注的人 TA的粉丝

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