5 欠扁的小篮子

尚未进行身份认证

天南地北双飞客,老翅几回寒暑。

等级
TA的排名 3w+

Java8 Collectors.toMap的坑

按照常规思维,往一个map里put一个已经存在的key,会把原有的key对应的value值覆盖,然而通过一次线上问题,发现Java8中的Collectors.toMap反其道而行之,它默认给抛异常,抛异常... 线上业务代码出现DuplicateKey的异常,影响了业务逻辑,查看抛出异常部分的代码,类似以下写法:Map<Integer,String>map=li...

2018-09-13 12:10:55

BigDecimal精度与相等比较的坑

先想一下,创建BigDecimal对象的时候一般是怎么创建的?new一个,传进去值BigDecimal.valueOf方法,传进去值 作为一个数字类型,经常有的操作是比较大小,有一种情况是比较是否相等。用equal方法还是compareTo方法?这里就是一个大坑//new传进去一个doubleBigDecimalnewZero=newBigDecimal(0.0);...

2018-09-13 11:41:33

GET、POST编码问题

GET请求、POST经常会出现中文乱码的问题,最好约定前后端的编码,一般为UTF-8。但是这里面也是有坑的。后端设置编码为UTF-8的推荐方式:SpringMVC配置过滤器:<filter><filter-name>characterEncodingFilter</filter-name><filter-class>org.spr...

2018-06-25 11:11:09

Mybatis插入数据后返回主键id

有时候使用mybatis插入数据后,需要用到记录在数据库中的自增id,可以利用keyProperty来返回,赋值给实体类中的指定字段。单条记录插入并返回First,ifyourdatabasesupportsauto-generatedkeyfields(e.g.MySQLandSQLServer),thenyoucansimplyset useGenerated...

2018-06-25 11:00:19

大数据量下的集合过滤—Bloom Filter

算法背景如果想判断一个元素是不是在一个集合里,一般想到的是将集合中所有元素保存起来,然后通过比较确定。链表、树、散列表(又叫哈希表,Hashtable)等等数据结构都是这种思路,存储位置要么是磁盘,要么是内存。很多时候要么是以时间换空间,要么是以空间换时间。在响应时间要求比较严格的情况下,如果我们存在内里,那么随着集合中元素的增加,我们需要的存储空间越来越大,以及检索的时间越来越长,导致内存开销...

2018-06-23 18:27:41

Mysql 时间类型精度截取的bug

mysql-connector-java版本升级出现的一次问题。涉及到了时间精度的截取和四舍五入。首先了解一点,timestamp,datetime如果不指定精度,默认的精度是秒。当mysql-connector-java版本<=5.1.22时,db的客户端会将Datetime,Timestamp秒以下的精度丢弃。版本>5.1.22后,秒以下的值将不会截断db的server端会对超出精...

2018-06-23 18:05:07

Tomcat NIO

说起Tomcat的NIO,不得不提的就是Connector这个Tomcat组件。Connector是Tomcat的连接器,其主要任务是负责处理收到的请求,并创建一个Request和Response的对象,然后用一个线程用于处理请求,Connector会把Request和Response对象传递给该线程,该线程的具体的处理过程就是Container容器的事了。在tomcat启动过程中,会初始化Con...

2018-04-11 15:00:23

Java NIO

了解java的NIO,需要先了解同步异步以及阻塞非阻塞的概念,同步/异步,阻塞/非阻塞NIO就是采用的同步非阻塞这种组合方式。或简单一点,采用的是IO复用的策略,可以使用一个线程管理多个IO连接。BIO常见使用方式传统的BIO是同步阻塞的方式,因此,在服务器中常见的使用方式是:来一个请求创建一个线程,阻塞的等待网络IO的数据。使用一个线程池,来一个请求就从线程池里取出来一个线程,阻塞的等待网络IO...

2018-03-28 14:22:48

Java线程的几种状态

java.lang.Thread.State中定义的集中Java线程的状态:/***Athreadstate.Athreadcanbeinoneofthefollowingstates:*<ul>*<li>{@link#NEW}<br>*Athreadthathasnotyetstarted...

2018-03-20 17:31:20

读取含有BOM头的文件遇到的问题

需求是读取一个csv文件,然后解析成对应的数据结构。csv必须包含指定的某些列,通过列名header来进行校验。 解析配置文件的方法。publicList<QuestionData>buildConfigData(finalMultipartFilefile){CsvReadercsvReader=null;List<QuestionData...

2018-03-13 10:22:21

@RequestParam加与不加的区别

最简单的两种写法,加或不加@RequestParam注解@RequestMapping("/list")publicStringtest(intuserId){return"list";}@RequestMapping("/list")publicStringtest(@RequestParamintuserId){r...

2018-03-12 15:13:48

curl命令踩的坑

使用curl命令执行get请求,带多个参数:curllocalhost:8080/user/binding/query?userId=123456&wrapperId=123&from=test[1]8937[2]8938{"ver":"1.0.0","status":1,"message":"RequiredStringparameter'wrapperId'...

2018-03-08 10:59:27

HTTPS握手

作用内容加密 建立一个信息安全通道,来保证数据传输的安全;身份认证 确认网站的真实性数据完整性 防止内容被第三方冒充或者篡改https的采用了对称加密和非对称加密。握手过程中采用非对称加密,得到一个对称加密的秘钥。数据传输的过程中,采用对称加密。采用非对称加密比较慢,因此只在握手期间采用非对称加密,保证拿到的对称加密的秘钥的安全性,数据传输期间通过对称加密来加密,速度更快。握手:对称加密秘钥的生成...

2018-03-08 10:37:41

Tomcat启动过程源码解读

根据Tomcat源码来看一下Tomcat启动过程都做了什么部分代码为主要流程代码,删去了try-catch以及一些校验逻辑,方便理解主流程先来一张启动过程时序图,了解一下启动顺序Tomcat启动的入口类:org.apache.catalina.startup.Bootstrap#mainmain方法是整个tomcat启动时的入口。在main方法中,使用bootstrap.init()来初始化类加载...

2018-03-07 19:37:56

同步/异步,阻塞/非阻塞

什么是同步和异步同步和异步是针对应用程序和内核的交互而言的,同步指的是用户进程触发IO操作并等待或者轮询的去查看IO操作是否就绪,而异步是指用户进程触发IO操作以后便开始做自己的事情,而当IO操作已经完成的时候会得到IO完成的通知。什么是阻塞和非阻塞阻塞和非阻塞是针对于进程在访问数据的时候,根据IO操作的就绪状态来采取的不同方式,阻塞方式下读取或者写入函数将一直等待,而非阻塞方式下,读取或者写入函...

2018-02-27 21:01:19

SpringMVC静态文件过滤

如果在web.xml加了如下配置,那么静态资源文件也会被拦截:<servlet-mapping><servlet-name>springmvc</servlet-name><url-pattern>/</url-pattern></servlet-mapping>如果要静态资源文件不被过滤,有三种方法。方...

2018-02-26 14:38:23

Git总结

git在本地分为三个区域,工作区、暂存区和本地仓库,具体情况如下:git的一般操作就是本地代码的修改提交回滚,以及与远程仓库的拉取、合并、提交等。git fetch   从远程仓库上抓取分支到本机origin的dev分支上git merge  将origin上的分支合并到工作区的dev分支上git pull  相当于前两个命令合在一起

2017-07-24 22:36:13

基于深度学习的图像风格转换

距离上次写博客已经好久好久好久了,真是懈怠的生活节奏,整天混吃等死玩游戏,前些日子做毕业设计时总算又学了点新东西。学了一点深度学习和卷积神经网络的知识,附带着详细学习了一下前段时间我觉得比较有意思的图像风格转换。毕竟是初学,顺便把神经网络方面的知识也写在前面了,便于理解。若有不对的地方的话,希望指正。     主要参考的文献有《ANeuralAlgorithmofAr

2017-06-21 13:35:56

校招碎碎念

前两天拿了去哪儿(Qunar)的offer,不打算接着找了,心累,结束我的校招生涯吧,写写这段时间的经历。     本科生一只,普通一本,非211/985学校,出了省就没人认那种,计算机专业,目前大四。找工作大概从大三下学期开始吧,那时候各大厂开始招实习,接着陆陆续续的有七八月份的内推,九、十月份的校招,一路面试过来,跪了一路。个人是做Java开发的,做过爬虫,做过Web,学

2016-10-25 22:54:14

浅谈对Spring Framework的认识

SpringFramework,作为一个应用框架,官方的介绍如下:     TheSpringFrameworkprovidesacomprehensiveprogrammingandconfigurationmodelformodernJava-basedenterpriseapplications-onanykindofdep

2016-09-17 16:22:27

查看更多

勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!