自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

诗酒年华

写给自己~

  • 博客(84)
  • 资源 (1)
  • 收藏
  • 关注

原创 HikariCP:一个叫光的JDBC连接池

天不生我李淳罡,剑道万古如长夜。Hikari [hi·ka·'lē] 是日语“光”的意思。HikariCP的卖点是快、简洁、可靠,整体非常轻量,只有130Kb左右。HikariCP的出现可以说是颠覆了连接池领域,就连曾经风靡一时的BoneCP也主动停止维护,让贤于他。而且,在Spring Boot 2.0中,HikariCP凭借其优越的性能取代Tomcat成为默认的数据库连接池。

2023-06-08 14:27:36 4817

原创 ImmutableList hessian2序列化失败问题分析

Java中的不可变集合(guava的 ImmutableList、ImmutableSet等,Java9引入的ImmutableCollections相关类型)不能作为POJO参数进行序列化,但是可以直接作为对象进行序列化;float 反序列化后精度丢失,double 没问题;keySet()返回的Set未实现Serializable,Hessian反序列化结果为ArrayList;

2023-01-26 16:23:58 2153

原创 Comparator.nullsLast 空指针问题

线上报了个NPE,定位问题是nullsLast排序时从map里取到的值为null导致,但既然使用了nullsLast说明开发在写代码时对空指针是有防御意识的,虽然实际没有起到预期的效果。仔细看了下代码发现大家对nullsLast/nullsFirst的理解并不深,有不少代码写法有问题,导致并不能起到想要的效果。

2022-10-09 01:41:47 2805

原创 本地缓存之王-Caffeine

引言随着业务体量的增长,使用的缓存方案一般会经过:1)无缓存直接查DB;2)数据同步+Redis;3)多级缓存 三个阶段。第1阶段直接查DB只能用于小流量场景,随着QPS升高,需要引入缓存来减轻DB压力。第2阶段一般会通过消息队列将数据同步到Redis,并在数据发生变更时同步更新Redis,业务查询时直接查Redis,如果Redis无数据再去查DB。该方案的缺点是如果Redis发生故障,缓存雪崩会直接将流量打到DB,可能会进一步将DB打挂,导致业务事故。第3阶段将Redis缓存作为二级缓存,在其上再

2022-01-30 19:54:34 19199 4

原创 中文情感分析之TextCNN

中文情感分析之TextCNN综述情感分析方法基于情感词典的情感分析基于机器学习算法的情感分析文本分类模型TextCNN中文情感分析实践数据预处理文本数值化模型构建结果分析总结​最近接了个业务需求,需要对论坛发帖进行情感分析,以便于对恶意发帖的行为进行审核治理。在此对情感分析方法进行一个总结,并重点介绍下文本分类基准模型TextCNN在中文情感分析中的实践应用。综述情感分析(Sentiment...

2019-08-24 08:00:52 11677 3

原创 MySQL存储过程

MySQL存储过程 存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,存储在数据库中经过第一次编译后再次调用不需要再次编译,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象,任何一个设计良好的数据库应用程序都应该用到存储过程。存储过程简介存储过程是存储在数据库目录中的一段声明式SQL语

2017-06-20 11:45:22 2701

原创 MyBatis Generator自动生成代码

MBG介绍 MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以对配置和原生Map使用简单的 XML 或注解,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。MyBatis使得数据库操作变得非常

2017-06-19 18:04:28 2275

原创 Spring装配Bean

Spring提供了三种主要的装配机制:在XML中进行显式配置。在Java中进行显式配置。隐式的bean发现机制和自动装配。Spring从两个角度来实现自动化装配:组件扫描(component scanning): Spring会自动发现应用上下文中所创建的bean。自动装配(autowiring): Spring自动满足bean之间的依赖。自动化装配Bean@Component注解这个

2017-06-19 14:04:55 494

转载 深度学习和自然语言处理中的attention和memory机制

转载自:http://geek.csdn.net/news/detail/50558英文原文:http://www.wildml.com/2016/01/attention-and-memory-in-deep-learning-and-nlp/如需转载请注明以上链接地址,谢谢!Attention机制是最近深度学习的一个趋势。在一次采访中,OpenAI的研究总监Ilya Sutskev

2016-11-30 15:23:06 1480

原创 C++ STL中的六大件

(《STL源码剖析》学习笔记)STL提供了六大组件容器(containers) 用来存放数据,包含多种数据结构,如:vector、list、deque、set、map等。 从实现的角度来看,STL容器是一种class template。算法(algorithms) 包括各种常用算法,如:sort、search、copy、erase等。 从实现的角度来看,STL算法是一种function

2016-11-18 18:12:19 1120

原创 leetcode_p64_MinimumPathSum_cpp

leetcode 第64题:Minimum Path Sum 给定一个m*n的非负整数矩阵,找到一条从左上角到右下角的路径,使得该路径上的数字之和最小。分析: 要使得和最小,则要求在每个格子上只能向下或向右两种走法。 如果用穷举法,由于所有可能路径为(m-1)+(n-1) = m+n-2种,即m-1步向下走,n-1步向右走,所以所有可能情况为C(m+n-2, m-1),由于随着m和n的增

2016-11-08 15:08:15 431

原创 JianZhiOffer_p33_把数组排成最小的数

输入一个正整数数组,将数组中各个数字连成一个数,输出所有可能的数字中最小的那个数。举个栗子: 输入: 3,32,321 输出: 321323最直观的做法是穷举所有排列所组成的数字,再从中找出最小的,该解法由于要穷举所有排列,所以复杂度至少为O(n!)。有一种O(n*logn)的解法是,先对数组中数字按从小到大的顺序排序,再将数组中数字连接起来即为最小的数。这里需要注意两点:排序过程中,按递增顺

2016-10-29 01:18:53 814

原创 leetcode_p139_WordBreak_cpp

leetcode p139:word break 给定一个字符串s和一个字典dict,判断该字符串是否可以由字典中单词组成。举个栗子: s = “leetcode” dict = [“leet”, “code”] s可以由dict中单词组成,所以返回true。注意!栗子2:input: "abcd" ["a","abc","b","cd"]output: tr

2016-10-26 23:59:21 415

原创 JianZhiOffer_p31_GreatestSumOfSubarray

[笔试面试高频题] 求一个数组的子数组中所有元素和的最大值。 子数组指一个或连续多个数组成的数组。 使用动态规划方法求解,算法的时间复杂度为O(n).举个栗子: 输入数组为:6,-3,-2,7,-15,1,2,2 和最大的子数组为:6,-3,-2,7 输出该子数组的和为:8解法:用curSum[i]表示前i个元素(包含第i个, i从0开始)所组成的子数组的最大和,那么max(curSum

2016-10-25 23:05:37 597

原创 leetcode_p6_ZigZag_Conversion_c++

leetcode p6: ZigZag_Conversion给定一个字符串s和行数numRows, 先将该字符串按z形排成numRows行,然后按行输出所有字符组成的新字符串。举个栗子: 从中发现:这些数字都与6有关,称为magicNum,该数与行数有关,举个不同行的例子,可以发现规律: magicNum = 2*(numRows - 1) ;对于每行的第一个数字,是以2为步长依次递减的,当为

2016-10-24 11:50:18 473

翻译 MapReduce工作原理学习

MapReduce工作原理学习MapReduce概述2004年,google在OSDI 2014会议上发表了MapReduce(MapReduce: Simplified Data Processing on Large Clusters)编程模型,它使得不具备并行计算和分布式处理系统开发经验的程序员也可以有效利用分布式系统的丰富资源。MapReduce的设计是为了处理海量的原始数据,它将并行计算、

2016-09-19 22:47:32 2137

转载 数字推理技巧

第一步:整体观察若有线性趋势则走思路A,若没有线性趋势或线性趋势不明显则走思路B。注:线性趋势是指数列总体上往一个方向发展,即数值越来越大,或越来越小,且直观上数值的 大小变化跟项数本身有直接关联(别觉得太玄乎,其实大家做过一些题后都能有这个直觉)第二步思路A:分析趋势1. 增幅(包括减幅)一般做加减。基本方法是做差,但如果做差超过三级仍找不到规律,立即转换思路,因为公考没有考过三级以上的等差数列

2016-08-05 16:51:49 4512

原创 全排列与next_permutation

全排列是面试笔试过程中经常遇到的一个问题。对于练习过的同学来说,这个问题其实 不算一个难题,但是对于没有练习过的同学,或者说只是知道大致思路的同学来说, 要在短时间内写出正确的全排列代码还是有点难度的。本文是作者在学习全排列时的一个总结笔记,主要包括: [1]. 全排列的递归实现 [2]. 全排列的非递归实现 [3]. STL中的next_permutation全排列的递归实现递归方法的全

2016-07-27 16:01:23 8013

原创 const与指针

const与指针在C/C++中,const与指针之间的不同的位置关系代表着不同的意义。 本文主要对这种关系进行一次梳理,给出两种容易理解和记忆的判别方法。 一种方法是将const之后的内容看做一个整体; 另一种通过从右向左读的方法来进行识记。将const之后的内容看作一个整体char * const a;const和a之间没有*,说明a是不可写的,*a是可写的。 也就是说a是一个常量指针,

2016-07-19 19:33:53 1758

原创 crontab定时执行程序

概述cron是linux中的一个定时执行工具,可让系统在特定的时间自动执行特定的任务,如数据库备份、日志分析等。crontab 是一个包含一系列定时任务命令的文本文件。该文件使用crontab 命令进行编辑。文件中的命令由cron在后台执行。系统中的每个用户(包括root)都拥有一个crontab文件,无论该用户是否登录系统,cron都会检测用户的crontab文件。crontab的在线帮助文档可以

2016-07-12 23:06:47 1932

原创 10分钟入门pandas

10分钟入门pandas本文是对pandas的一个入门介绍,仅仅针对初学者。如果需要更详细的内容,请移步Cookbook.首先,导入所需要的python包:import pandas as pdimport numpy as npimport matplotlib.pyplot as plt创建对象————————–pandas中的数据结构包括Series、DataFrame、Panel、P

2016-07-07 16:26:05 5053

原创 linux查看目录大小

查看各用户home空间大小: sudo du -h --max-depth=1 /home使用du命令查看目录大小 -h 参数将目录大小以人容易理解的方式显示出来 --max-depth 控制显示的目录层数 df -h 显示整个磁盘分区的使用情况

2016-05-06 10:01:44 3015

原创 sizeof(class)

在使用sizeof计算类的大小时要注意:sizeof是用来计算栈中变量的大小的,不涉及全局区,故sizeof计算类的大小时,不考虑静态成员变量的大小;类与结构体一样,都存在字节对齐问题;类中普通函数不占用类的大小,类中虚函数不管有多少个只需要占用一个虚函数表指针的大小;类中常量存在静态存储区不占用类大小,如const、static、enum;子类的大小=子类新增加的大小+父类大小。//

2016-05-04 16:34:10 2111

原创 妙解质因子--不进行质数判断

//功能: 输入一个正整数,按照从小到大的顺序输出它的所有质数的因子(如180的质数因子为2 2 3 3 5 )//输入:输入一个long型整数//输出:按照从小到大的顺序输出它的所有质数的因子,以空格隔开#include <iostream>using namespace std;int main(){ long input; while(cin>>input){

2016-04-21 14:09:28 685

原创 C++中define与const的区别

C++中不但可以用define定义常量还可以用const定义常量,它们的区别如下:用#define MAX 255定义的常量是没有类型的,所给出的是一个立即数,编译器只是把所定义的常量值与所定义的常量的名字联系起来,define所定义的宏变量在预处理的时候进行替换,在程序中使用到该常量的地方都要进行拷贝替换;用const float MAX = 255; 定义的常量有类型名字,存放在内存的静态区域

2016-04-21 10:20:54 16252 5

原创 非循环的冒泡排序

在不适用循环的条件下,写出冒泡排序。循环与递归之间可以相互转换,不让使用循环那只能通过递归来代替循环过程了。搞清楚递归过程中需要改变的变量和递归的结束条件就ok了。 代码比较简单,如下所示:#include<iostream>#include<algorithm>using namespace std;void BubbleSortNoLoop(int a[],int start,int n)

2016-04-18 19:02:38 927

原创 C++英文面试常见问题

Difference between new/delete and malloc/freeNew/delete is C++, malloc/free comes from good old C.In C++, new calls an objects constructor and delete calls the destructor.Malloc and free, coming from t

2016-04-16 11:21:08 2718

原创 指针与引用的区别

指针和引用在c++中都是复合类型(compound type),即基于其他类型定义的类型。指针本身就是一个对象,允许对指针进行赋值和拷贝,在指针的生命周期内它可以先后指向几个不同的对象。 引用并非对象,相反它只是为一个已经存在的对象所起的另外一个名字,“引用即别名”。因为引用不是对象,所以: 不能定义引用 的引用; 没有实际地址,不能定义指向引用的指针。区别:指针是一个对象,而引用仅是个别名

2016-04-16 10:34:43 430

原创 寻找第K大的数(快排思想)

使用快排思想找第K大的数,算法复杂度O(n)。1.以数组a的第0位a[0]为参考基准base,将数组划分为两个部分; 如果找第K大的数,则将大于base的数往前挪,将小于base的数往后挪。如果找第K小的数,则与此相反。 划分过程与快排相同,使用两个指针i和j分别指向数组的首尾,根据指针所指元素与基准base的大小交替移动两个指针,直到两个指针指向同一个位置i==j,此时i或j即为base的下标

2016-04-15 22:27:19 11600

原创 SQL基本命令

注意: - SQL 对大小写不敏感! - SQL 语句后面的分号要视具体的应用环境而决定加还是不加。 如果是MS Access 和SQL Server 2000则不必使用分号,而有些数据库软件则必须使用分号。 (也有说在程序里写sql不要加分号,否则编译器会把分号认为是sql语句本身的一部分,在查询工具里可以使用分号作为sql语句分隔标志。)select 用于从表中选

2016-04-14 18:16:29 639

原创 SQL语言的四种类型

SQL包含四种程序设计语言类别的语句:数据定义语言(DDL)、数据操作语言(DML)、数据控制语言(DCL)和事物控制语言(TCL)。Data Definition Language(DDL) DDL使我们有能力创建或删除表格。也可以定义索引(键),规定表之间的链接,以及施加表间的约束。 CREATE DATABASE - 创建新数据库 ALTER DATABASE - 修改数据库 CREA

2016-04-14 16:46:49 18032 6

原创 restoredefaultpath matlab

matlab函数,恢复matlab的搜索路径为安装时的默认路径。或者使用rmpath 或 pathtool 函数打开设置路径对话框进行设置。

2016-04-06 10:24:51 3466

原创 神经网络的严冬与复兴之路

神经网络的严冬九十年代末,神经网络遇到的困境就是一个字——“慢”。除了计算速度的因素外,还有一个根本问题就是反向传播时所谓的“梯度消失问题”(vanishing gradient problem)。简单的说, 就是cost function从输出层反向传播时, 每经过一层,梯度衰减速度极快, 学习速度变得极慢,神经网络很容易停滞于局部最优解而无法自拔。又由于当时SVM在图像和语音方面取得的成功,使得

2016-04-02 11:24:15 1890

转载 深度学习难在哪里?

知乎讨论:“Deep Learning 的专家如此急缺,它难在何处?”这篇文章是对知乎上大家讨论结果的一个汇总和备忘。初读时感觉醍醐灌顶,读完后忍不住想把文中的观点告诉我身边的每个人。作为一个入门深度学习两年的研二学生,对文中深度学习是一门工程性学科的观点深表赞同。本文主要作为个人的阅读记录所用,以避免以后想要查看但又找不到时的追悔莫及。文中观点皆来自于知乎用户,如需转载请注明知乎原文地址 [ h

2016-04-01 20:27:09 11390

原创 C/C++中的移位运算

在计算机中,数值是以补码来表示和存储的。所以移位运算都是在“补码”上进行操作的。原码转补码 正数的补码与原码相同。 负数的补码:符号位为1,其余位是原码按位取反,然后整个数加1。

2016-04-01 11:53:50 858

原创 matcaffe编译与测试

编译 make matcaffe -j8测试 make mattest -j8要在matlab中使用caffe时需要先添加路径 addpath ./matlab (这里的“.”表示当前目录,即caffe的根目录。如果在其他目录中调用matcaffe需要修改该路径。) 在matlab中使用help caffe 可测试路径是否添加成功。

2016-03-30 14:54:27 8010 1

原创 pycaffe安装与路径配置

python使用Anaconda环境.Anaconda安装下载wget https://3230d63b5fc54e62148e-c95ac804525aac4b6dba79b00b39d1d3.ssl.cf1.rackcdn.com/Anaconda2-2.5.0-Linux-x86_64.sh安装 bash Anaconda2-2.5.0-Linux-x86_64.sh 默认安装就行了

2016-03-30 14:50:23 21073 4

原创 递归生成格雷码

腾讯2016研发笔试/* 递归生成格雷码当n=1时,{0,1}当n=2时,{00,01,11,10}当n=3时,{000,001,011,010,110,111,101,100}...n位格雷码共有2^n个元素。其中每个元素是(n-1)位的格雷码前面加0,然后再反向后前面加1生成的。如n=3可由n=2进行两步操作后得到:1.在n=2的格雷码前面加0,生成:000,001,011,01

2016-03-29 13:14:34 733

原创 求最大公约数

欧几里得算法或辗转相除法#include <iostream>using namespace std;//循环gcd:greatest common divisorint gcd(int a,int b){ int tmp; while(b){ tmp = b; b=a%b;a=tmp; } return a;}//递归gcdint gcd1(

2016-03-16 11:24:21 511

转载 实例详解机器学习

实例详解机器学习如何解决问题 美团点评技术团队前言 随着大数据时代的到来,机器学习成为解决问题的一种重要且关键的工具。不管是工业界还是学术界,机器学习都是一个炙手可热的方向,但是学术界和工业界对机器学习的研究各有侧重,学术界侧重于对机器学习理论的研究,工业界侧重于如何用机器学习来解决实际问题。我们结合美团在机器学习上的实践,进行一个实战(InAction)系列的介绍(带“机器学习InAction系

2016-03-05 22:43:44 802

飞思卡尔电磁组

飞思卡尔电磁组秘书组资料,详细,易读,方便学习

2014-06-23

空空如也

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

TA关注的人

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