自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

HY—Chan

唠嗑、记录一些自己做的项目

  • 博客(59)
  • 收藏
  • 关注

原创 Long.getLong 的坑:获取到null

getLong(String str )是将系统属性的字符串转为Long 类型数据如果你不是一个系统属性,比如一个“12”字符串,使用这个方法就会返回null根据string获取对应的Long值应该用:Long.parseLong(str) 或者valueOf()...

2021-12-21 16:53:39 1029

原创 ABTest资料汇总

业界调研1、weibo开源的abtest分流平台 2、Athena- 贝壳流量实验平台设计与实践3、马蜂窝ABTest多层分流系统的设计与实现4、推荐系统衡量:ABtest 框架4、字节跳动技术沙龙 ClickHouse在A/B实验和训练模型的使用...

2021-08-02 15:38:25 524

原创 Sql 解析出错

### Cause: java.lang.RuntimeException: Sql 解析出错. sql=select count(0) from (select id, partner_id, bu_id, warehouse_id, stop_payment_dimension, stop_apply_no, settlement_object_code, settlement_object_name, contract_code, stop_payment_type, approv

2021-07-29 11:44:39 725

原创 前端请求参数 传不到后端

原因:前端使用Json传输参数,后端参数没有使用RequestBody注解,导致获取不到前端的参数。修改方案:Controller层应修改为如下注解@PostMapping(value = “/xxx/xx/xxx”)public ResultVo depositBillAttachmentDelete(@RequestBody xxxDto queryDto) {}Controller层测试代码:需要传入dto的Json@Test public void depositBillAtt

2021-07-28 17:49:46 3181

原创 使用tika对文件类型进行判断

org.apache.tika tika-core 1.18Next, we’ll make use of the detect() method to resolve the type:@Testpublic void whenUsingTika_thenSuccess() {File file = new File(“product.png”);Tika tika = new Tika();String mimeType = tika.detect(file);assertEqu..

2021-07-28 17:29:02 462

原创 Guava学习笔记

一、导入Guava在pom.xml 中加入依赖<dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>20.0</version></dependency>二、Ordering的用法@SpringBootTestpublic class Ord

2021-07-28 17:26:04 285

原创 MySQL高性能应用

高性能,就是响应时间短,主要影响的是执行时间和等待时间。一、表设计(一)选择合适的数据结构1、DECIMAL VS BIGINTDECIMALBIGINTDECIMAL(M,D)指定精度,M是数字最大位数,范围1-65;D是小数点右侧数字个数,范围0-30,但不得超过M-9223372036854775808 到 +9223372036854775807可变长定长,8 字节精度高精度低2、VARCHAR VS CHARVARCHARCHAR

2020-09-03 15:22:45 142

原创 Spring Bean自动装配失败

运行项目,启动报错如下:at com.meituan.baobab.wtaccess.Application.main(Application.java:51) [classes/:?]Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'baseDataManagerImpl': Injection of resource dependencies fail

2020-09-03 15:01:48 735

原创 org.eclipse.jetty.io.EofException: Closed问题解决

接口为http接口提示org.eclipse.jetty.io.EofException: Closed 的告警其原因是返回数据但客户端提前关闭了,将返回改为void,不再有异常

2020-09-03 14:59:16 10393

原创 java.io.IOException: Stream closed的问题排查

最近开发“导出数据生成文件”功能时使用到多处OutputStream流操作。如导出excel文件://创建outputStreamresponse.setContentType("APPLICATION/OCTET-STREAM");response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(zipName.concat(".zip"), "UTF-8"));

2020-09-03 14:45:56 5491

原创 《高效能人士的七个习惯》阅读笔记

1、要改变现状,就要改变自己;要改善自己,就得先改变我们看待世界的观点。2、品德很重要,习惯也很重要。但是品德由习惯组成的结论从何而来?本书似乎并没有进行推论3、习惯——知识、技巧、欲望例如:想要改善人际——》知识:学会倾听-》技巧:如何倾听-》欲望:内心真的想听4、成长的三个层次——依赖、独立、互赖**5、急功近利反而会破坏珍贵的资产习惯一 人类有“选择的自由”——操之在我(积极主动)这里的涵义不只是一个人能够采取主动,更能够对自己的行为负责。理智重于情感,不受制于外界,如天气、

2020-08-20 20:25:33 277

原创 Stream中toMap引发NullPointerException

1、引发NullPointerException的代码如下:List<SelfSettlementCardInfoDto> selfSettlementCardInfoDtos = selfCardAdapterManager.listSelfSettlementCardInfoDtoByCardIds(queryDto.getPartnerId(), cardIds , false);Map<Long,

2020-08-20 20:12:56 1452

原创 使用freemarker、Itext进行Html转Pdf(解决中文问题&图片问题)

步骤一:写ftl格式的htmldemo.ftl<!DOCTYPE html><html lang="en">​<head> <meta charset="UTF-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0"/> <meta http-equiv="X-UA-Compatible" content="ie=e

2020-08-20 20:01:41 4008 1

原创 Mac Ideal快捷键

基本快捷键:.var .fori、sout、psvm+Tab即可生成变量、for循环、打印System.out、main方法等模版例如要输入for(User user : users)只需输入user.for+Tab再比如,要输入Date birthday = user.getBirthday();只需输入user.getBirthday().var+Tab即可。代码标签输入完成后,按Tab,生成代码。选中文本,按command+shift+F7 ,高亮显示所有该文本,按Esc高亮消失。comma

2020-08-20 19:53:39 320

原创 B2B常见名词以及英文缩写

这里写自定义目录标题业务缩写FIN项目B2B经济名词美团技术名词业务缩写FIN(Finance):有关支付、结算、财务、账期、余额、提现、审计等的管理和服务中心POC(Purchase Order Center ):采购中心RAC(Resource Access Center):帐号管理、权限管理、组织架构管理VCP(Vender Center Portal):供应商门户系统,⾯向核⼼企...

2019-03-08 14:02:21 7300

原创 《Java并发编程(核心方法与框架)》笔记记录

此文记录学习《Java并发编程(核心方法与框架)》时的记录代码见github:https://github.com/Bosssheep/JavaConcurrent一、SemaphoreSemaphore,这个单词翻译过来指:信号在Java中此类主要用来限制线程并发的数量。其常用方法如下:方法作用Semaphore(int permits)构造方法,permits...

2018-10-06 22:14:57 836

原创 Mysql事物锁等待超时 Lock wait timeout exceeded; try restarting transaction

问题场景 问题出现环境: 1、在同一事务内先后对同一条数据进行插入和更新操作; 2、多台服务器操作同一数据库; 3、瞬时出现高并发现象;原因分析 在高并发的情况下,Spring事物造成数据库死锁,后续操作超时抛出异常。 Mysql数据库采用InnoDB模式,默认参数:innodb_lock_wait_timeout设置锁等待的时间是50s,一旦数据库锁超过这个时间就会报错。...

2018-08-31 10:28:19 884

原创 Java JVM管理

1、查看pidps -aux | grep tomcatadmin 94 3.3 0.5 3557440 173496 ? Sl Jun04 4193:50 /export/servers/jdk1.6.0_25/bin/java -server -Xms128M -Xmx256M -Xss256K -XX:PermSize=32M -XX:MaxPerm...

2018-08-30 10:01:43 193

原创 调用Set.addAll()方法时抛UnsupportedOperationException异常

执行代码:Set&lt;String&gt;couponIdSet=couponInfoToCacheService.getCouponIdAll();if(catIdSet!=null&amp;&amp;catIdSet.size()&gt;0){Set&lt;String&gt;couponIdCatSet=couponInfoToCacheService.getCouponIdB...

2018-08-29 18:15:31 3086 1

原创 Java之DateFormatUtils格式化时间Bug

DateFormatUtils的parseDate方法:public static java.util.Date parseDate (java.lang.String str, java.lang.String[] parsePatterns) throws java.text.ParseException该方法会将日期字符串按照第二参数中的String数组,依次比对,选择合适的Patt...

2018-08-24 11:38:28 2811

原创 Ngix学习记录

一、简介Nginx (engine x) 是一个高性能的HTTP和反向代理服务,可以在分布式系统中提供负载均衡。什么叫反向代理? 这里有一篇别人写的关于正向代理和反向代理的文章: https://blog.csdn.net/qq_28602957/article/details/61615876什么叫负载均衡? 很好理解。用户使用Web、APP、SDK,通过HTTP、TCP连接到...

2018-08-21 14:39:13 535

原创 Spring MVC中的CharacterEncodingFilter介绍以及源码分析

一、场景CharacterEncodingFilter是Spring MVC很简单很实用的一个过滤器,当前台JSP页面和JAVA代码中使用了不同的字符集进行编码的时候就会出现表单提交的数据或者上传/下载中文名称文件出现乱码的问题,那这个类就可以出场了。二、配置从名字就可以看出来它是个过滤器了,所以就要想配置普通过滤器那样配置到web.xml中去了,配置方式如下: &lt;...

2018-08-20 10:27:24 1438

原创 URI编码

一、URI编码的意义我们都知道Http协议中参数的传输是”key=value”这种简直对形式的,如果要传多个参数就需要用“&amp;amp;amp;”符号对键值对进行分割。如”?name1=value1&amp;amp;amp;name2=value2”,这样在服务端在收到这种字符串的时候,会用“&amp;amp;amp;”分割出每一个参数,然后再用“=”来分割出参数值。针对“name1=value1&amp;amp;amp;name2=value2”...

2018-08-18 18:22:29 5918

原创 URI编码乱码

这次的需求是优惠券管理页支持多条件查询,之前一直都是单个条件查询。 做完后如果有多页,跳转指定页时如果当前搜索条件是包含中文的话会乱码,跳转后搜索不到内容 通过分析,发现跳转页面的链接是get方式,拼接如下:#set($pageModule=$!homeModule.getTarget(&quot;/couponList.html&quot;).addQueryData(&quot;couponCode&quot;,$!...

2018-08-17 18:58:59 999

原创 jar包升级版本号引发的问题

一次部署tomcat,报错如下org.springframework.web.util.NestedServletException: Handler processing failed; nested exception is java.lang.NoSuchMethodError: com.jd.ump.profiler.proxy.Profiler.registerInfo(Ljava/...

2018-08-17 18:03:36 2792

原创 实习记录——中文编码问题

这次是一个需求,系统需要支持中文的用户pin。 优惠券发放任务创建的时候可以上传txt文件到jss, 发放任务是一个定时任务,每隔三分钟遍历一边待发放任务,从jss上下载pin文件,遍历组装成一个pin的集合,然后根据pin集合发放优惠券。 因此中文编码问题主要出现在从jss上获取输入流读取数据,并正确解析,转成utf-8格式txt主要有ANSI、UTF-8、Unicode编码 因此首...

2018-08-03 18:51:37 189

原创 Spring——bean的生命周期

在spring中,从BeanFactory或ApplicationContext取得的实例为Singleton。 然而在spring中 可以设定每次从BeanFactory或ApplicationContext指定别名并取得Bean时都产生一个新的实例——prototype模式一个Bean从创建到销毁,如果是用BeanFactory来生成,管理Bean的话,会经历几个执行阶段(如图1.1):...

2018-07-14 16:13:52 3576

原创 Java NIO:浅析I/O模型

一.什么是同步?什么是异步?同步就是:如果有多个任务或者事件要发生,这些任务或者事件必须逐个地进行,一个事件或者任务的执行会导致整个流程的暂时等待,这些事件没有办法并发地执行; 异步就是:如果有多个任务或者事件发生,这些事件可以并发地执行,一个事件或者任务的执行不会导致整个流程的暂时等待。这就是同步和异步。举个简单的例子,假如有一个任务包括两个子任务A和B,对于同步来说,当A在执行的过程...

2018-07-14 15:31:31 184

原创 ThreadLocal原理

一、TreadLocal介绍JDK 1.2的版本中就提供java.lang.ThreadLocal,ThreadLocal为解决多线程程序的并发问题提供了一种新的思路。使用这个工具类可以很简洁地编写出优美的多线程程序,ThreadLocal并不是一个Thread,而是Thread的局部变量。ThreadLocal的四个方法:public T get()//获取ThreadLocal中当...

2018-07-13 22:45:17 180

原创 源码分析常见问题

一、ArrayList1、用数组存储数据 2、默认容量是10 3、容量不够时,创建新的一个数组,并且容量为原来的1.5倍(* old+(old&amp;amp;amp;lt;&amp;amp;amp;lt;1)* ,并将原来的data复制到新的数组里,原来的那个被垃圾回收。 4、非线程安全 5、clone()方法是浅克隆,只是创建一个新的数组,但是数据=引用二、LinkedList1、用链表存储数据 2、是List和Deq...

2018-07-10 17:44:43 283

原创 binlog以及Canel

一、NDB存储引擎在介绍binlog之前,需要先了解一下NDB NDB 存储引擎也叫NDB Cluster 存储引擎,主要用于MySQL Cluster 分布式集群环境。NDB特点: • 分布式:分布式存储引擎,可以由多个NDBCluster存储引擎组成集群分别存放整体数据的一部分 • 支持事务:和Innodb一样,支持事务 • 可与mysqld不在一台主机...

2018-07-06 18:10:11 13269

原创 网址(url),域名,ip地址,dns,hosts之间的关系

什么是ip?我们知道,在Internet上有千百万台主机,为了区分这些主机,人们给每台主机都分配了一个专门的地址,称为IP地址。通过IP地址就可以访问到每一台主机。 IP地址由4部分数字组成,每部分都不大于256,各部分之间用小数点分开。例如“百度搜索”主机的IP地址就是:“119.75.217.109,”在浏览器上输入这个IP地址,就可以访问到百度的主页。 我们的每个虚拟主机用户,都分配...

2018-07-06 16:33:03 15850 1

原创 Netty学习笔记

前言: 作为一个学Java的,如果没有研究过Netty,那么你对Java语言的使用和理解仅仅停留在表面水平,会点SSH,写几个MVC,访问数据库和缓存,这些只是初等Java程序员干的事。如果你要进阶,想了解Java服务器的深层高阶知识,Netty绝对是一个必须要过的门槛。 有了Netty,你可以实现自己的HTTP服务器,FTP服务器,UDP服务器,RPC服务器,WebSocket服务器,Red...

2018-07-06 16:29:22 172

原创 MySQL索引分类

一、MySQL索引的概念索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针。更通俗的说,数据库索引好比是一本书前面的目录,能加快数据库的查询速度(注:一般数据库默认都会为主键生成索引)。索引分为聚簇索引和非聚簇索引两种,聚簇索引是按照数据存放的物理位置为顺序的,而非聚簇索引就不一样了;聚簇索引能提高多行检索的速度,而非聚簇索引对...

2018-04-14 09:41:17 301

原创 LinkedList源码分析

概述LinkedList是List和Deque接口的双向链表的实现。实现了所有可选List操作,并允许包括null值。 它可以被当作堆栈、队列或双端队列进行操作。并且其顺序访问非常高效,而随机访问效率比较低。 内部方法,注释会描述为节点的操作(如删除第一个节点),公开的方法会描述为元素的操作(如删除第一个元素) 注意,此实现不是同步的。 如果多个线程同时访问一个LinkedList实例,...

2018-04-13 12:17:36 162

原创 List的clone()方法

概述在查看ArrayList和LinkedList的源码的时候,比较困惑的就是clone()方法。 我们都知道在Object里clone()方法是深拷贝,那在集合里它到底是深拷贝还是浅拷贝呢? 我们看一下ArrayList.clone()源码:public Object clone() { try { @SuppressWar...

2018-04-13 12:03:56 22840 4

原创 ArrayList源码分析

概述:List接口可调整大小的数组实现。实现所有可选的List操作,并允许所有元素,包括null,元素可重复。 除了列表接口外,该类提供了一种方法来操作该数组的大小来存储该列表中的数组的大小。 时间复杂度: 方法size、isEmpty、get、set、iterator和listIterator的调用是常数时间的。 添加删除的时间复杂度为O(N)。其他所有操作也都是线性时间复杂...

2018-04-13 11:29:08 176

原创 常见开发框架

一、SpringSpring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。A.控制反转(IOC)是什么呢?IOC:控制反转也叫依赖注入。利用了工厂模式将对象交给容器管理,你只需要在spring配置文件总配置相应的bean,以及设置相关的属性,让spring容器来生成类的实例对象以及管理对象。在spring容器启动的时候,spring会把你在配置文件中配置的bean都初...

2018-04-12 21:27:02 9983

原创 经典七大排序算法

首先排序分为四种: 交换排序: 包括冒泡排序,快速排序。 选择排序: 包括直接选择排序,堆排序。 插入排序: 包括直接插入排序,希尔排序。 归并排序: 归并排序。(一) 冒泡排序冒泡排序的基本思想是,对相邻的元素进行两两比较,顺序相反则进行交换,这样,每一趟会将最小或最大的元素“浮”到顶端,最终达到完全有序。时间复杂度为==O(n^2)==。 /**...

2018-04-12 21:22:42 1608

原创 面试常问的知识点总结(持续更新)

JDK源码分析(jdk1.8)ArrayList源码分析 LinkedList源码分析 HashMap源码分析 HashTable源码分析 Object源码分析 Runtime源码分析 ConcurrentHashMap源码分析并发synchronized实现原理以及锁优化 volatile的底层原理(计算机层面——缓存一致性协议) 深入分析volatile的实现原...

2018-04-12 21:21:51 797

空空如也

空空如也

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

TA关注的人

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