八行书

https://wisewong.github.io/

Java8 Collectors.toMap的坑

按照常规思维,往一个map里put一个已经存在的key,会把原有的key对应的value值覆盖,然而通过一次线上问题,发现Java8中的Collectors.toMap反其道而行之,它默认给抛异常,抛异常...   线上业务代码出现Duplicate Key的异常,影响了业务逻辑,查看抛出异常...

2018-09-13 12:10:55

阅读数 7837

评论数 1

BigDecimal精度与相等比较的坑

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

2018-09-13 11:41:33

阅读数 453

评论数 0

GET、POST编码问题

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

2018-06-25 11:11:09

阅读数 68

评论数 0

Mybatis插入数据后返回主键id

有时候使用mybatis插入数据后,需要用到记录在数据库中的自增id,可以利用keyProperty来返回,赋值给实体类中的指定字段。单条记录插入并返回First, if your database supports auto-generated key fields (e.g. MySQL an...

2018-06-25 11:00:19

阅读数 283

评论数 0

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

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

2018-06-23 18:27:41

阅读数 918

评论数 0

Mysql 时间类型精度截取的bug

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

2018-06-23 18:05:07

阅读数 191

评论数 0

Tomcat NIO

说起Tomcat的NIO,不得不提的就是Connector这个Tomcat组件。Connector是Tomcat的连接器,其主要任务是负责处理收到的请求,并创建一个Request和Response的对象,然后用一个线程用于处理请求,Connector会把Request和Response对象传递给该...

2018-04-11 15:00:23

阅读数 483

评论数 2

Java NIO

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

2018-03-28 14:22:48

阅读数 216

评论数 0

Java线程的几种状态

java.lang.Thread.State中定义的集中Java线程的状态:/** * A thread state. A thread can be in one of the following states: * <ul> * &a...

2018-03-20 17:31:20

阅读数 79

评论数 0

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

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

2018-03-13 10:22:21

阅读数 519

评论数 0

@RequestParam加与不加的区别

最简单的两种写法,加或不加@RequestParam注解@RequestMapping("/list") public String test(int userId) { return "list"; } ...

2018-03-12 15:13:48

阅读数 8739

评论数 0

curl命令踩的坑

使用curl命令执行get请求,带多个参数:curl localhost:8080/user/binding/query?userId=123456&wrapperId=123&from=test [1] 8937 [2] 8938 {&qu...

2018-03-08 10:59:27

阅读数 1423

评论数 0

HTTPS握手

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

2018-03-08 10:37:41

阅读数 2508

评论数 0

Tomcat启动过程源码解读

根据Tomcat源码来看一下Tomcat启动过程都做了什么部分代码为主要流程代码,删去了try-catch以及一些校验逻辑,方便理解主流程先来一张启动过程时序图,了解一下启动顺序Tomcat启动的入口类:org.apache.catalina.startup.Bootstrap#mainmain方...

2018-03-07 19:37:56

阅读数 100

评论数 0

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

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

2018-02-27 21:01:19

阅读数 66

评论数 0

SpringMVC静态文件过滤

如果在web.xml加了如下配置,那么静态资源文件也会被拦截:<servlet-mapping> <servlet-name>springmvc</servlet-name&...

2018-02-26 14:38:23

阅读数 81

评论数 0

Git总结

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

2017-07-24 22:36:13

阅读数 189

评论数 0

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

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

2017-06-21 13:35:56

阅读数 11590

评论数 13

校招碎碎念

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

2016-10-25 22:54:14

阅读数 904

评论数 0

浅谈对Spring Framework的认识

Spring Framework,作为一个应用框架,官方的介绍如下:          The Spring Framework provides a comprehensive programming and configuration model for modern Java-based...

2016-09-17 16:22:27

阅读数 419

评论数 0

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