- 博客(659)
- 资源 (15)
- 收藏
- 关注
原创 Mybatis 嵌套循环Map
前言: mybatis有默认的list,array,但是没有默认的map。所以不能直接写collection="map",如果这么写,它会当成是根据map.get(“map”)来取value值,大部分情况下是一个map中是不会有“map”这个key的,于是就是报错。如果你想用这个“map”标识取参数map,就需要保证传入的Map参数有@Param("map")注解。mybatis入参map的基本语法:service,dao的写法://service:public Lis...
2020-09-29 14:14:09 1572
原创 使用Java8 的Lambda将List转为Map
常用方式代码如下:public Map<Long, String> getIdNameMap(List<Account> accounts) { return accounts.stream().collect(Collectors.toMap(Account::getId, Account::getUsername));}收集成实体本身map代码如下:public Map<Long, Account> getIdAccountMap(
2020-09-29 14:05:12 982
原创 多用组合少用继承
面向对象编程时,有十条很重要的原则:代码复用 封装变化 开闭原则 单一职责原则 依赖注入/依赖倒置原则 里氏替换原则(LSP) 接口隔离原则(ISP) 多用组合,少用继承 面向接口编程 委托原则上图摘自《Head First - Java 设计模式》本文列举“多用组合,少用继承”的五条原因。1. Java 不支持多继承Java 不支持多继承,这个限制导致只能其继承一个基类。如果想赋予一个类多个功能,选择只有两个:接口和组合。多个功能将以成员变量的形式存在于宿主类中。
2020-09-23 20:16:37 1091
原创 【高并发】面试官:讲讲什么是缓存穿透?击穿?雪崩?如何解决?
性别字段能不能建立索引什么字段适合建索引,什么字段不适合建索引。性别字段可以建索引吗?我回答得不是很好。性别字段这种重复性很强的字段,不要建立索引。为什么不能呢?下面建立表测试下。如:我建了个tb_test表,往里面插入了七百多万数据,先给性别建立索引,查询开启 sql运行时间记录。创建名为tb_index_test 的索引alter table tb_test add index tb_index_test(genenre) # 开启时间记录 set..
2020-09-23 17:10:21 228
原创 如何提高代码质量
说起代码质量,脑子里会冒出很多词,命名规范、格式规范、日志规范、单元测试覆盖率…但我觉得,代码质量总结起来就两个:好看和好用。好看是指代码可读性好,容易理解、容易维护,别人接手了不骂你;好用则指代码健壮,不容易出错,机器跑着不骂你。即使出错,也容易定位,容易止损和恢复。为何需要提高代码质量?以下是我认为的几点:提升代码的可维护性,降低新人接手的成本 促进交流,促进知识共享,做好 backup 促进风格一致,降低团队间应用流转的难度 建设写好代码、做好设计的团队氛围但有一点需要说明.
2020-09-23 17:01:28 713
原创 函数式编程初探
诞生50多年之后,函数式编程(functional programming)开始获得越来越多的关注。不仅最古老的函数式语言Lisp重获青春,而且新的函数式语言层出不穷,比如Erlang、clojure、Scala、F#等等。目前最当红的Python、Ruby、Javascript,对函数式编程的支持都很强,就连老牌的面向对象的Java、面向过程的PHP,都忙不迭地加入对匿名函数的支持。越来越多的迹象表明,函数式编程已经不再是学术界的最爱,开始大踏步地在业界投入实用。也许继"面向对象编程"之后,"函数
2020-09-23 16:35:37 1323 2
原创 python 局部变量和全局变量
局部变量在def中, 我们可以定义一个局部变量, 这个变量a只能在这个功能fun中有效, 出了这个功能,a这个变量就不是那个局部的a.def fun(): a = 10 print(a) return a+100print(fun())"""10110"""下面这个例子就验证了如果在fun外面调用a, 会报错, 这表明外...
2020-04-03 17:59:18 386 2
原创 15 个提高效率的 Python 编程技巧
每次写 Python 都会忘记该怎么写,最后只能去 Stack Overflow 查?我也一样。时间一长,这让人厌倦。这 15 个 Python 技巧和窍门,可以帮你提高效率。1. 交换值x, y = 1, 2print(x, y)x, y = y, xprint(x, y)2. 字符串列表合并为一个字符串sentence_list = ["my", "...
2020-03-22 17:38:53 318
原创 pip安装国内镜像
解决方法:pip install 需要安装的包 -i 链接地址--trusted-host 域名如使用阿里云:pip install pymongo -i http://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com国内链接地址:阿里云http://mirrors.aliyun.com/p...
2020-03-18 23:05:08 1487 1
原创 python+opencv直方图均衡化
前言直方图均衡化的三种情况,分别是:- 灰度图像直方图均衡化- 彩色图像直方图均衡化- YUV 直方图均衡化插入原图:灰度图像直方图均衡化对直方图均衡化主要使用opencv提供的一个equalizeHist()方法.import cv2import numpy as npimg = cv2.imread("1.jpg", 1)gray = cv2.cvtCol...
2020-02-28 16:56:49 3889 1
原创 DDSM database、INbreast database、MIAS等乳腺MG数据获取方式
收集医学数据目前来说是无法使用,其一是数据杂乱,其二没有专家标记或者注释,只有很范的有无病灶 而且也不确切。故需要搜索公开的公共库(BreastMammography),现在搜索到的有MG数据库有以下几个方面:INbreast database:115 case containing 410 images,并且包括xml注释文件。没有直接给出下载链接 需要发邮件索取,邮箱为m...
2020-02-15 16:47:29 7110 7
原创 线性表及其算法(java实现)
线性表线性表是最简单和最常用的一种数据结构,它是有n个数据元素(节点)组成的有限序列。其中,数据元素的个数n为表的长度,当n为零时成为空表,非空的线性表通常记为:(a1,a2,… ,ai-1,ai, ai+1,…,an)一. 线性表的顺序存储及算法线性表的顺序存储指的是将线性表的数据元素按其逻辑次序依次存入一组地址连续的存储单元里,用这种方法存储的线性表称为顺序表。1....
2020-01-07 18:14:36 536
原创 java数据结构与算法之双链表设计与实现
出自【zejian的博客】关联文章:java数据结构与算法之顺序表与链表设计与实现分析java数据结构与算法之双链表设计与实现java数据结构与算法之改良顺序表与双链表类似ArrayList和LinkedList(带Iterator迭代器与fast-fail机制)java数据结构与算法之栈(Stack)设计与实现java数据结构与算法之队列(Queue)设计与实现jav...
2020-01-07 18:14:33 827
原创 mysql之慢查询
分析MySQL语句查询性能的方法除了使用 EXPLAIN 输出执行计划,还可以让MySQL记录下查询超过指定时间的语句,我们将超过指定时间的SQL语句查询称为“慢查询”。含义超过指定时间的SQL语句查询记录方法开启“慢查询”记录功能等记录办法记录慢查询的方法:查看/设置“慢查询”的时间定义mysql> show variables like ...
2020-01-07 18:14:13 155
原创 Http协议状态码
响应响应,由服务端返回给客户端,可以分为三部分:响应状态码(Response Status Code)、响应头(Response Headers)和响应体(Response Body)。1. 响应状态码响应状态码表示服务器的响应状态,如 200 代表服务器正常响应,404 代表页面未找到,500 代表服务器内部发生错误。在爬虫中,我们可以根据状态码来判断服务器响应状态,如状态码为...
2020-01-07 18:13:01 213
原创 数据结构 —— java 单链表、双端链表、双向链表、无序链表、有序链表
0、节点结点 是数据结构中的基础,是 构成复杂数据结构的基本组成单位。public class Node { public long data; public Node next; public Node(long value) { this.data = value; } }1、链表链表:通常由一连串节点组成,每个节点包含任意的实例数据(data ...
2020-01-04 17:11:14 826
原创 Java ArrayList add(index,element) 方法抛出Exception in thread "main" java.lang.IndexOutOfBoundsException
准备使用ArrayList 的 add(index,element) 来插入元素,天真的以为这样能给list排序,结果抛出:Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 2, Size: 1代码如下:import java.util.ArrayList;import java.ut...
2020-01-04 16:36:12 934
原创 Java队列(Queue)了解及使用
1.什么是队列?队列是数据结构中比较重要的一种类型(是一种数据结构),它支持 FIFO,尾部添加、头部删除(先进队列的元素先出队列),跟我们生活中的排队类似。2.什么情况下使用队列?一般情况下,如果是对一些及时消息的处理,并且处理时间很短的情况下是不需要队列的,直接阻塞式的方法调用就可以了。但是如果在消息处理的时候特别费时间,这个时候如果有新消息来了,就只能处于阻塞状态,造成用户...
2020-01-04 16:29:32 1416
原创 【深度学习】VGG-16网络结构
VGG-16,输入层224*224*3,经过两层相同的卷积,卷积filter为3*3,stride为1,filter数为64,然后经过一层pooling。接着按照相同的方式,让宽和高越来越小,而通道数逐倍增加,直到512。最后用两层相同全连接加一个softmax。VGG-16的性能与VGG-19差不多,所以基本用VGG-16...
2020-01-04 15:01:58 1359
原创 深度学习模型中的参数数量(备忘)
原文地址:huay’ blog/模型中的参数数量(备忘)记录模型参数数量的计算方法最早使用 tensorflow 的时候没怎么注意这个问题;后面高级 API 用的多了,有点忘记怎么计算模型的参数数量了;特此记录以作备忘参数来源模型的参数数量 = 每一层的参数数量之和每一层的参数数量需要由该层的规模(n_units)和上一层的输出(n_features)共同决定全连接层...
2020-01-04 14:57:53 1397
原创 vgg 16模型的内存和参数量的计算
cs231n上关于VGG-16模型的内存和参数的计算过程如下。INPUT: [224x224x3] memory: 224*224*3=150K weights: 0CONV3-64: [224x224x64] memory: 224*224*64=3.2M weights: (3*3*3)*64 = 1,728CONV3-64: [224x224x64...
2020-01-04 14:41:23 3017 1
原创 VGG-16详解
VGG16输入224*224*3的图片,经过的卷积核大小为3x3x3,stride=1,padding=1,pooling为采用2x2的max pooling方式:1、输入224x224x3的图片,经过64个卷积核的两次卷积后,采用一次pooling。经过第一次卷积后,c1有(3x3x3)个可训练参数2、之后又经过两次128的卷积核卷积之后,采用一次pooling3、再经过三次...
2020-01-04 14:32:53 5455
原创 【深度学习】多通道图像卷积过程及计算方式
之前,有写了一篇博文,【深度学习入门】——亲手实现图像卷积操作介绍卷积的相应知识,但那篇文章更多的是以滤波器的角度去讲解卷积。但实际上是神经网络中该博文内容并不适应。之前的文章为了便于演示,针对的是二维卷积,比如一张图片有 RGB 三个颜色通道,我的方式是每个通道单独卷积,然后将各个通道合成一张图片,再可视化出来。但真实工程不会是这样的,很多东西需要进一步说明白。熟悉 TensorFlow...
2020-01-04 14:29:34 2762
原创 【深度学习入门】——亲手实现图像卷积操作
深度学习中有一个很重要的概念就是卷积神经网络 CNN,卷积神经网络中又有卷积层、池化层的概念。尤其是卷积层,理解难度比较大,虽然书中或者是视频中都有详细介绍过它的基础概念,但对于求知欲望很强烈的我,我总心里痒痒的,总想亲手实现,看看效果,怕的就是自己会眼高手低,做技术人最可怕的就是眼高手低。所以,我打算用 python 来亲自验证一遍。什么是卷积?卷积(convolution)是数学知识,...
2020-01-04 13:10:11 2315
原创 用Python 爬虫批量下载PDF文档
更新:之前代码是用 python2 写的,有关 python3 的代码可以参考这位博主的:https://blog.csdn.net/baidu_28479651/article/details/76158051代码如下:# coding = UTF-8# 爬取李东风PDF文档,网址:http://www.math.pku.edu.cn/teachers/lidf/docs/textr...
2020-01-04 12:27:43 10381
原创 Http协议状态码
响应响应,由服务端返回给客户端,可以分为三部分:响应状态码(Response Status Code)、响应头(Response Headers)和响应体(Response Body)。1. 响应状态码响应状态码表示服务器的响应状态,如 200 代表服务器正常响应,404 代表页面未找到,500 代表服务器内部发生错误。在爬虫中,我们可以根据状态码来判断服务器响应状态,如状态码为...
2020-01-02 14:46:17 205
原创 Python 爬虫介绍
一、什么是爬虫爬虫:一段自动抓取互联网信息的程序,从互联网上抓取对于我们有价值的信息。二、Python爬虫架构Python 爬虫架构主要由五个部分组成,分别是调度器、URL管理器、网页下载器、网页解析器、应用程序(爬取的有价值数据)。调度器:相当于一台电脑的CPU,主要负责调度URL管理器、下载器、解析器之间的协调工作。 URL管理器:包括待爬取的URL地址和已爬取的URL地址,...
2019-12-26 11:32:55 166
原创 疯狂java笔记之树和二叉树
树的概述树是一种非常常用的数据结构,树与前面介绍的线性表,栈,队列等线性结构不同,树是一种非线性结构1.树的定义和基本术语计算机世界里的树,是从自然界中实际的树抽象而来的,它指的是N个有父子关系的节点的有限集合。对于这个有限的节点集合而言,它满足如下条件:当N=0时,改节点集合为空,这课树也被称为空树 在任意的非空树中,有且仅有一个根(root)节点 当N>1时,除根节点...
2019-12-18 22:22:47 241
原创 求所有根节点到叶子节点的二叉树路径
给一棵二叉树,返回所有从根节点到叶子节点的路径,用list存储例如,下面的二叉树: 1 / \2 3 \ 5路径:["1->2->5", "1->3"]思路:这道题我想多了,我用的非递归双栈模拟实现的,其实根本用不着,递归实现就行。递归版:public List<String> binaryTreeP...
2019-12-13 18:01:25 635
原创 实战算法——多叉树全路径遍历(完整版)
目录前言递归和非递归比较递归非递归递归的劣势和优势问题构建问题解决递归方法非递归方法测试结论前言本文研究的是如何对一个多叉树进行全路径的遍历,并输出全路径结果。该问题的研究可以用在:Trie树中查看所有字典值这个问题上。本文将对该问题进行详细的模拟及进行代码实现,讨论了递归和非递归两种方法优劣并分别进行实现,如果读者对这两种方法的优劣不感兴...
2019-12-13 17:30:26 7221 3
原创 重点:Git的使用
【01 常见Git命令】 #【001】统一概念:工作区:改动(增删文件和内容)暂存区:输入命令:git add 改动的文件名,此次改动就放到了 ‘暂存区’本地仓库(简称:本地):输入命令:git commit 此次修改的描述,此次改动就放到了 ’本地仓库’,每个 commit,我叫它为一个 ‘版本’。远程仓库(简称:远程):输入命令:git push 远程仓库,此次改动...
2019-12-08 16:16:51 192
原创 LeetCode 980. 不同路径 III
在二维网格 grid 上,有 4 种类型的方格:1 表示起始方格。且只有一个起始方格。2 表示结束方格,且只有一个结束方格。0 表示我们可以走过的空方格。-1 表示我们无法跨越的障碍。返回在四个方向(上、下、左、右)上行走时,从起始方格到结束方格的不同路径的数目,每一个无障碍方格都要通过一次。示例 1:输入:[[1,0,0,0],[0,0,0,0],[0...
2019-12-01 13:02:01 376
原创 白话经典算法系列之十七 数组中只出现一次的数
首先看看题目要求:数组A中,除了某一个数字x之外,其他数字都出现了三次,而x出现了一次。请给出最快的方法找到x。这个题目非常有意思,在本人博客中有《位操作基础篇之位操作全面总结》这篇文章介绍了使用位操作的异或来解决——数组中其他数字出现二次,而x出现一次,找出x。有《【白话经典算法系列之十二】数组中只出现1次的两个数字(百度面试题)》这边文章介绍了分组异或的方法来解决——数组中其他数字出现...
2019-12-01 12:38:11 110
原创 白话经典算法系列之十六 “基数排序”之数组中缺失的数字
首先看看题目要求:给定一个无序的整数数组,怎么找到第一个大于0,并且不在此数组的整数。比如[1,2,0]返回3,[3,4,-1,1]返回2,[1, 5, 3, 4, 2]返回6,[100, 3, 2, 1, 6,8, 5]返回4。要求使用O(1)空间和O(n)时间。这道题目初看没有太好的思路,但是借鉴下《白话经典算法系列之十 一道有趣的GOOGLE面试题》这篇文章,我们不发现使用“基数排...
2019-12-01 12:33:20 130
原创 白话经典算法系列之十五 “一步千里”之数组找数
首先看看题目要求(题目来源:http://weibo.com/lirenchen,特此鸣谢):有这样一个数组A,大小为n,相邻元素差的绝对值都是1。如:A={4,5,6,5,6,7,8,9,10,9}。现在,给定A和目标整数t,请找到t在A中的位置。除了依次遍历,还有更好的方法么?这道题目的解法非常有趣。这道题目的解法非常有趣。数组第一个数为array[0], 要找的数为y,设t ...
2019-12-01 12:28:42 138
原创 白话经典算法系列之十三 随机生成和为S的N个正整数——投影法
【白话经典算法系列之十三】随机生成和为S的N个正整数——投影法随机生成和为S的N个正整数有很多种解法。下面讲解一种比较高效且比较有趣味性的解法——投影法。以生成和为20的4个数为例,可以先生成随机生成0到20之间的三个数字再排序,假设得到了4,7,18。然后在X-Y数轴上画出这三个数,如下图:然后将这些数值投影到Y轴上,可得下图:由图很容易看出AB,BC,CD,DE这四段的...
2019-12-01 12:20:44 198
原创 白话经典算法系列之十二 数组中只出现1次的两个数字(百度面试题)
首先来看题目要求:在一个数组中除两个数字只出现1次外,其它数字都出现了2次, 要求尽快找出这两个数字。考虑下这个题目的简化版——数组中除一个数字只出现1次外,其它数字都成对出现,要求尽快找出这个数字。这个题目在之前的《位操作基础篇之位操作全面总结》中的“位操作趣味应用”中就已经给出解答了。根据异或运算的特点,直接异或一次就可以找出这个数字。现在数组中有两个数字只出现1次...
2019-12-01 12:15:01 142
原创 白话经典算法系列之十一 一道有趣的GOOGLE面试题 --【解法2】
上一篇《白话经典算法系列之十一道有趣的GOOGLE面试题》中对一道有趣的GOOGLE面试题进行了详细的讲解,使用了类似于基数排序的做法在O(N)的时间复杂度和O(1)的空间复杂度完成了题目的要求,文章发表后,网友fengchaokobe在评论中给出了另一种解法,见下图。文字版:int Repeat(int *a, int n){ for(int i = 0; i < n;...
2019-12-01 11:55:13 129
原创 白话经典算法系列之十 一道有趣的GOOGLE面试题
最近在微博上看到一道有趣的GOOGLE面试题,见下图:文字版:一个大小为n的数组,里面的数都属于范围[0, n-1],有不确定的重复元素,找到至少一个重复元素,要求O(1)空间和O(n)时间。这个题目要求用O(n)的时间复杂度,这意味着只能遍历数组一次。同时还要寻找重复元素,很容易想到建立哈希表来完成,遍历数组时将每个元素映射到哈希表中,如果哈希表中已经存在这个元素则说明这就是个重...
2019-12-01 11:50:14 132
敏捷软件开发技术课件.rar
2020-07-12
飞桨端到端预训练模型与迁移学习工具-PaddleHub.pdf
2019-12-01
input type file 使用ajax上传文件
2018-08-16
H5 Audio播放器--源代码和控件
2018-08-16
八大排序算法的对比
2018-08-15
springboot web框架
2018-08-15
数据结构PPT--严蔚敏(清华大学)
2018-06-15
如何设置自动关机
2018-06-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人