自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 资源 (2)
  • 收藏
  • 关注

原创 Base_seckill _project

1.电商秒杀项目简介 本项目是慕课网上的秒杀项目业务逻辑的基础版,后面还要加上性能优化,如项目中后期还针对高并发情况需要实现了系统缓存、降级和限流和支付通用功能等。本系统是使用SpringBoot开发的限时抢购秒杀系统,实现基本的登录、查看商品列表、秒杀、下单及其它异常的处理模板等功能。用户首先需要进行注册账号,通过随机数生成的校验码对手机账号进行校验,并将用户输入的密码进行加密,将密码和个人账号进行分表建库,注册完则需要进行登录,在登入页面未找到用户信息需重新注册,完成用户登录校验。...

2020-06-28 16:25:08 142

原创 redis之缓存查询优化技术

redis本质上是key-value的nosql数据库,可以进行数据存储,并且可以按照缓存更新策略,一般是影响多少个key时做一次缓存操作或者一分钟几分钟来进行缓存更新等,这是由redis的缓存策略RDB(记录数据以压缩二进制方式存储在rdb文件当中)或者AOF(通过记录数据的执行过程,即指令到aof文件中来进行缓存)来确定的,一般redis作缓存的方式有:单机版redis sential哨兵模式 Cluster 集群模式sential哨兵模式 :假设有两台物理机作为redis,一个为master

2020-08-10 20:38:46 477

原创 CDN静态文件部署

------------------------------------静态资源部署cdn分发网络的引入-----------------------------1.在获取前端页面时,我们知道是先加载静态资源,后面通过ajax请求来获取商品详情页信息来进行渲染页面的过程,任何一步没做到位都会拖累整站的QPS,TPS的响应,未将静态资源加载到cdn的情形下,TPS700左右,且平均响应时间也在300多,cdn作为前端静态资源请求的中间层节点,它充当者用户客户端访问的服务端,同时也是后端服务端的客户端,它需

2020-08-09 23:00:09 2923

原创 LRU缓存淘汰策略实现

一般来说,对于经常被访问的数据,希望可以快速的返回给访问者,采用内存进行缓存就是很好的方式,直接访问内存中已缓存的数据可以被更快的被访问到,分布式中常用的缓存Ehcache,Redis等等;下面介绍几种缓存中常用的缓存淘汰策略: FIFO:First In First Out,先进先出:判断存储时间,排队伍尾部(长时间未用)的先被淘汰; LFU: Least Frequently Used,最近最少使用,被使用次数最少的缓存先被淘汰; LRU:Least Recently...

2020-08-07 18:13:08 269

原创 FAR和FRR评价函数

1.FRR:错误拒接率(False Reject rate)。文字定义:错误拒绝率,把同一个人的图片对当成不同的人图片对的概率。其中:errorCount是指匹配失败的次数,totalCount是指同一个人的匹配次数。也就是说,假设我们定义匹配的时候设置的阈值为threshold,当两两匹配的时候的相似度值为value。在理想情况下,同一个人的匹配相似度value>threshol...

2020-08-06 10:20:33 799

原创 Java之反射机制及原理

- 反射是框架设计核心,反射的基本概念:将类的各个部分封装成对象,从而在程序运行时操作这些对象,便于程序解耦和扩展;- 在java中运用反射的原理需要下面三个部分: - 定义一个class对象在java文件中并通过javac命令编译成.class文件(字节码文件) - 通过ClassLoader进行字节码文件的加载,封装成Class类对象的各个功能方法,以便调用; -Class类对象是用来描述加载的字节码文件的信息,主要包括类的成员变量、类的构造方法、类...

2020-08-01 19:02:21 113

原创 多线程之交替输出

三个交替输出abc利用一个标记flag:当flag=1时打印a,当flag=2时打印b,当flag=3时打印c,并且在调用打印方法时打印完还需传递flag的下一个值,即a(1)->2,b(2)->3,c(3)->1,这里使用wait ,notify的有条件休眠来控制程序的进行,使用wait和notify的配套使用来进行交替打印:wait: 调用该方法会使当前线程进入阻塞状态并释放了当前的锁资源给其他线程去使用,是object类下的方法;notify:调用该方法可以唤醒单个休眠

2020-07-19 17:32:07 604 2

原创 多线程之生产者消费者模型Java实现

- 生产者消费者模型常见于消息队列中,由一个或多个线程进行消息的生成并放入到队列当中,根据先到先消费的策略,由消费者从队列中取出消息并进行消费,所以一般生产的消息从队尾加入,需要消费的消息从队头取出,队列的消息存满了就需要生产者进行等待,队列的消息为空时需要消费者进行等待:代码实现:在消费者等待生产时采用Object的wait()方法,进行有条件的等待while,一旦不满足就唤醒全部的生产者同样等待队列的元素在有位置的情形进行生产,队列满了就需要该线程进入休眠并有条件的...

2020-07-16 22:30:58 228

原创 Linux常用入门

- 服务器领域:互联网应用,java应用,PHP应用均使用linux的服务器- 虚拟机:通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统- VMware的安装,安装CentOS环境,设置本机的的Intel Virtual Technology为enabled(按F12进入bios设置)- 远程工具:可以通过网络连接到公司机房的linux服务器上(XShell/Xftp、SecureCRT)- 常用命令:1.查看本机的ip地址:ifconfig2.磁盘管理

2020-07-03 18:03:13 97

原创 Base_seckill _project_question

1.开发环境:后端基于idea2020版 Springboot2.0.5 jdk 1.8 Maven 3.6.3 Mybaits mysql5.5;前端是基于Hbuilder开发环境,采用bootstrap的metroic框架快速开发小页面1.用户验证码的获取:通过random产生一个五位数的随机数,并转化成String类型用户验证码与用户手机的绑定:使用httpsession的方式将手机号与验证码做一个绑定,通过向容器注入HttpServletRequest的对象即可拿到httpsessio

2020-06-29 22:37:59 94

原创 树的三种遍历非递归操作

1.前序遍历前序遍历是:根节点-左节点-右节点;和深度优先遍历一致,这里可以参照之前写的 BFS(广度优先遍历)和DFS(深度优先遍历)其文章链接:https://blog.csdn.net/sdshdutx/article/details/1067218272.中序遍历中序遍历是:左子树-根节点-右子树(每一个子树都满足这种访问方式),如下所示:输出为5->2->6->1->4那么我们在经过某一个子根节点时前面节点不能释放, 因为需要遍历到其底部,才算完成左边子树的遍

2020-06-13 20:25:23 1650

原创 BFS(广度优先遍历)和DFS(深度优先遍历)

1.BFS:广度优先遍历广度优先遍历,指的是从图的一个未遍历的节点出发,先遍历这个节点的相邻节点,再依次遍历每个相邻节点的相邻节点。树的广度优先遍历动图如下,每个节点的值即为它们的遍历顺序。所以广度优先遍历也叫层序遍历:先遍历第一层(节点 1),再遍历第二层(节点 2,3,4),第三层(5,6,7,8),第四层(9,10)。广度优先遍历要用队列来实现,我们以下图二叉树为例来看看如何用队列来实现广度优先遍历。步骤:首先将根节点(1)压入队列,然后判断队列是否为空,(作为循环输出的功能) :{1

2020-06-12 19:05:13 885

原创 KMP算法之字符串匹配

暴力匹配通过起始匹配的字符开始继续匹配,若匹配成功,则长度等于str2的长度,否则回到匹配的第二个位置重新开始package Kmp;public class Baolipi { //暴力匹配算法进行字符串匹配 public static void main(String[] args) { String str1 ="明天你好吗 明天你好挖 明天你好明天你好哈哇哇哈"; String str2="明天你好哈"; //匹配的起始下标是16 System.out.print..

2020-05-29 22:44:56 157

原创 背包问题(0-1)-动态规划

0-1背包问题 >>背包问题是指一个给定容量的背包,有若干价值和重量的物品,选择物品放入背包使其价值最大,这里每个物品最多只能挑选一件物品,因此是0/1背包问题。源代码:根据上面的表格所得可知其价值计算公式,然后编写代码1.只计算出最大价值package DynamicPromise;public class Package01 { //可以寻求0/1问题的最值解 public static void main(String...

2020-05-29 17:50:34 211

原创 数据结构之二叉树原理和实现

二叉树的概念前序遍历:(1)先输出当前节点,初始的时候是root节点(2)如果当前左子树不为空,则递归继续前序遍历(3)如果当前右子树不为空,则递归继续前序遍历中序遍历:(1)如果当前左子树不为空,则递归继续中序遍历(2)输出当前节点(3)如果当前右子树不为空,则递归继续中序遍历-后序遍历:(1)如果当前左子树不为空,则递归继续后序遍历(2)如果当前右子树不为空,则递归继续中序遍历(3)输出当前节点...

2020-05-27 20:25:02 431

原创 数据结构之哈希表和应用

**哈希表**哈希表是种数据结构,它可以提供快速的插入操作和查找操作。第一次接触哈希表时,它的优点多得让人难以置信。不论哈希表中有多少数据,插入和删除(有时包括侧除)只需要接近常量的时间即0(1)的时间级。一个实际需求:有一个公司,当有新员工来入职时,需要录入该员工的信息(id, 性别, 年龄, 地址…),当输入该员工的id时,可以找到其 所有信息,要求不使用数据库,尽量节省内存,速度越快越好==>>哈希表(散列)其实现的思路是数组+链表:通过初始化一个链表数组来存放每一个链

2020-05-20 21:14:02 495

原创 四大基本查找算法

查找算法主要有下面几种顺序查找/线性查找二分查找/折半查找插值查找斐波那契查找1.线性查找就是根据对应的元素在其遍历数组中比较,找到则返回,这里便不列出,贴b站老师的图,如下:2.二分查找首先将其元素进行排序,使得元素呈顺序出现,定义一个区间[left,right]取中值来进行查找,left = 0, right = length-1;如果该元素比其(目标值)小就向右 left = middle 进行缩小范围查找,如果中间的元素比其(目标值)大就向左 right =

2020-05-19 15:24:14 1301

原创 数据结构之双向链表和约瑟夫问题(单向环形链表)

双向链表的定义:双向链表的实现1.代码如下:注意删除时考虑最后一个节点的空指针异常 package List; public class doublelinkedlistdemo { public static void main(String[] args) { //测试 HeroNode2 hero1 = new HeroNode2(1,"宋江","及时雨"); HeroNode2 hero2 = new HeroNode2(2,"卢俊义","玉麒麟

2020-05-16 17:02:59 153

原创 Mysql和sql语句练习

**mysql基础**数据库操作sql练习一、数据库的创建:1、创建一个名称为mydb1的数据库create database mydb1;2、创建一个使用utf8字符集的mydb2数据库。create database mydb2 character set utf8;3、创建一个使用utf8字符集,并带比较规则的mydb3数据库。create database mydb3 ...

2020-05-14 19:44:22 296

原创 数据结构之队列和环形队列

队列实现1.队列是一种有序列表,遵循先进先出的原则。1.数组模拟队列,分别有队头和队尾指针,从-1开始,进队时队尾指针自增,出队时队头指针自增,队头是指向第一个数据的前一个位置。示意图如下: package Array; public class queuearray { public static void main(String[] args) { //测试队列 ArrayQueue aq = new ArrayQueue(3); aq.addData(1

2020-05-12 12:05:54 134

原创 Springmvc商品列表加载

从springmvc入门处copy工程,然后右键项目,点击Properties,找到Web Project setting后在Content-root改名字;*目录结构:1.1创建Item的pojo,定义商品传入对象,使得其以列表形式展示package com.itheima.springmvc.pojo;import java.util.Date;//商品数据模型public class Item { // 商品id private int id; // 商品名称 priva

2020-05-11 17:10:13 185

原创 Springmvc入门采坑

*编译环境:Jdk:jdk1.8EclipseTomcat:apache-tomcat-7spring:4.2.4注意:web.xml会在第一行报错,这是你的jar包版本与编译环境不一致,报no-Mappering…url是没有找到Controller注解下的类,也就是没有注入到容器中,调bug可以在左下角copy trace来看报错日志,以及在浏览器访问时,注意url的写法是否正确1.开发步骤1.1首先将所有的编码方式调成UTF-8编码方式,否则找不到映射文件,还以为配置写错了。1.2.创

2020-05-11 16:00:54 193

原创 数据结构之稀疏数组的原理与实现

二维数组与稀疏数组之间的相互转换稀疏数组的与二维数组转换的原理通常稀疏数组有n*3的矩阵组成,将二维数组中有值的元素进行保存,减少资源的开销,第一列表示的是元素值在二维数组的行数,第二列表示的是元素值在二维数组的列数,第三列表示元素的值;且第一行统计为原数组的矩阵大小和值的个数,稀疏数组的行数为值元素的个数加1,如下示意图所示: 两者相互转换的实现如下package Array; /* *将棋盘用二维数组表示,并转换成稀疏数组来存储

2020-05-10 22:52:03 120

原创 多线程基础入门简介

Java多线程入门 Java虚拟机允许应用程序并行地执行多个线程,多线程能满足程序员编写高效率的程序来达到充分利用 CPU 的目的。进程:一个进程包括由操作系统分配的内存空间,包含一个或多个线程。一个线程不能独立的存在,它必须是进程的一部分。一个进程一直运行,直到所有的非守护线程都结束运行后才能结束。多线程:一个进程有多个线程(效率高,安全性低)单线程:一个进程有一个线程(安全性高,效率低)进程:当前正在运行的程序,指一个程序在内存中的执行区域线程:是进程中的一个执行单元,或者是执行路径

2020-05-09 22:31:48 94

原创 手写JDK锁及Synchronized源码分析

1.CAS底层原理分析CAS全称为Compare-And-Swap,CAS并发原语体现在JAVA语言中就是sun.misc.Unsafe类中的各个方法。调用Unsafe中的CAS方法,JVM会帮我们实现出CAS汇编指令。这是一种完全依赖于硬件的功能,通过它实现了原子操作。再次强调,由于CAS是一种系统原语,原语属于操作系统用语范畴,是由若干条指令组成的,用于完成某个功能的一个过程,并且原语的执行...

2020-05-07 22:18:32 130

原创 liko刷题

67.二进制数进行相加给定两个字符串String a=“110111” String b=“1101”,求两数相加的整数和:1.利用现有的轮子借用:import java.math.BigInteger;class Solution {public String addBinary(String a, String b) {BigInteger aNum =new BigIntege...

2020-05-07 20:57:40 280

原创 Java database connectivity (jdbc)

JAVA对myqsl数据库操作的驱动JDBC学习1.首先构建了数据库dat1,建立了表product,表结构如下2.采用jdbc驱动操作来进行对数据库的链接与查询等表的结构如下:表的数据如下:下面给出代码(导入相应的包和对数据进行链接) package heimajd;import java.sql.Connection;import java.sql.Driver;impo...

2020-01-03 17:42:40 155

原创 递归和回溯算法的使用

回溯算法其实就是把所有的结果进行枚举,通过设定条件函数来搜索目标解做搜索、回溯问题的套路是画图,代码其实就是根据画出的树形图写出来的剪枝函数:描述合法解的一般特征,避免搜索不合法解条件:每一步搜索的解必须符合条件,其所有可能的解可以由空间状态树进行描述记录:当每次达到结束条件时对结果进行保存,通常是全局变量并作为传递参数这里以力扣39:组合总和,liweiwei1419 的解答过程进行描...

2019-12-04 20:09:02 110

原创 34题:在排序数组中查找元素的第一个和最后一个位置

1.题意如下,转载力扣上面的34题,该数组本身是升序的;很多人用二分查找法,我这里简单实现注意:当元素没有时返回【-1,-1】,当自有一个元素时,该元素下标既是第一个也是最后一个class Solution { public int[] searchRange(int[] nums, int target) { int start1 = -1; int e...

2019-11-22 10:56:47 196

原创 利用集合模拟斗地主的过程

1.将正确的牌序和牌面存入双列集合中,同时将牌序存入单列集合中;主要过程为:牌库的建立,洗牌操作,发牌操作,看牌操作,** 发牌时的牌序是将每次发放的牌序存入TreeSet中,在存放时自动根据底层的二叉树算法来对存入数字进行排序;** 看牌时,将看牌操作写成通用方法调用,根据自己单列集合的牌序来作为牌库双列集合的Key获取双列集合对应的Value,从而实现看牌的牌面从小到大排列;//模...

2019-11-21 15:58:13 228

原创 四数之和(集合)

1.给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素 a,b,c 和 d ,使得 a + b + c + d 的值与 target 相等?找出所有满足条件且不重复的四元组。注意:答案中不可以包含重复的四元组。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/4sum代码:impo...

2019-11-18 22:23:56 127

原创 八大基本排序算法

1.希尔排序是插入排序的一种改进,针对插入排序移动的数据元素过多,提出一种按间隔大小的增减来进行比较排序从而实现从小到大的排序。 插入排序:对头两个元素进行比较排序,将列表的第三个值插入到头两个值的恰当位置,如此第四个元素插入到前三个元素的恰当位置,依次下去进行排序。 1.1优点:希尔排序通过加大排序元素之间的间隔,并对这些间隔的元素进行插入排序,从而使得某元素可以进行大幅...

2019-10-15 17:40:04 163

原创 递归的用法

递归是一种方法内调用自身方法的一种编程技术,像一些阶乘、求和等数学问题可以实现,不过复杂度会提高,最能体现递归之美的当属汉诺塔问题。同样我们用递归实现了斐波那契数列和三角数字。汉诺塔问题:如下图所示,要求将一个座上的盘子全部搬运到最后一个支柱上,有一个辅助支柱。搬运规则:1.一次只能移动一张盘子2.不能将较大的盘子放在较小的盘子上面3.最后盘子只能全部放在某一个支柱上面搬运...

2019-10-15 16:21:50 144

原创 双向链表

1.双端链表1.1内部实现package Doublelist;//双端链表,(相比单链表,多个尾节点与首节点的链接引用)public class DoubleLinklist { private Node first;// 首个链接点,相当于车头 private Node last; // 尾部链接点 public DoubleLinklist() { ...

2019-10-10 17:21:53 106

原创 数据结构之链表构建及应用

单链表是一种链式存取的数据结构,用一组地址任意的存储单元存放线性表中的数据元素。链表中的数据是以结点来表示的,每个结点的构成:元素(数据元素的映象) + 指针(指示后继元素存储位置),相当于车厢与单向车链组成:1.定义单链package List;//链节点,有数据域和指针域构成public class Node { public long data; //数据域 public...

2019-10-09 20:13:15 392

原创 数据结构之栈及其应用

1.栈的构建栈的思想是先进后出,后进先出的模式,类似向容器加东西和向容器取东西1.1基于数组的栈构建,主要由栈顶指针来控制package stack;public class Stack {private long[] arr;private int top;//默认的构造方法public Stack() { arr = new long[20]; top = -1;}//...

2019-10-08 21:46:48 225

原创 keras搭建基本网络

说明:此处采用mnist数据集来进行分类,mnist是28*28的灰度图像,共有60000个数据,标签种类有10000个,如下所示:import numpy as npfrom time import timefrom keras.datasets import mnist from keras.utils import np_utils # keras自带的...

2019-01-16 10:16:44 458

原创 mnist数据集操作

1. mnist数据集操作import sysimport numpy as npimport matplotlib.pyplot as pltimport tensorflow as tfimport argparseimport matplotlib.image as mpimgfrom skimage import io  #利用skilt-image 将图片读成numpy...

2018-11-13 20:31:50 315

machine learning svm

支持向量机的代码,可以实现pso等等算法,是机器学习入门算法

2019-03-16

machine learning

machine learning contain practice ch2 and ch3.

2019-03-16

空空如也

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

TA关注的人

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