Java
文章平均质量分 55
游语
把生活过成段子,把代码写成诗
展开
-
linux磁盘文件删除磁盘空间未释放问题排查
lsof |grep deleted 僵尸进程Files.lines的坑Files.list的坑原创 2023-02-09 09:32:49 · 989 阅读 · 0 评论 -
CRC32、murmur32、SDBM32碰撞实验数据对比
hash碰撞对比下面是CRC32、murmur32、SDBM32碰撞实验数据对比原创 2022-10-19 11:47:17 · 1483 阅读 · 0 评论 -
优雅解决手动导包之后 maven install操作找不到lib中包问题
问题来源给朋友处理一个tb联盟项目,需要使用淘宝针对性生成的sdk,idea直接手动导包OK 运行OK,最后mvn clean install -Dmaven.skip.test=true时,报了包不存在错误。问题根源mvn 命令不会将lib包下的jar自动打入到依赖中。解决方案本地引用大致思路是直接通过dependency依赖引用指定目录的jar上传jar到私服,然后通过dependency依赖引用例如:mvn deploy:deploy-file -DgroupId=com.jd.s原创 2020-09-06 00:49:22 · 1737 阅读 · 0 评论 -
为什么要指令重排
一条指令的执行步骤取指 IF译码和取寄存器操作 ID执行或者有效地址计算 EX存储器访问 MEM写回 WB在CPU工作中汇编指令分多步完成,每一部涉及到的硬件可能不同,于是有了流水线技术来执行指令。没有流水线技术前,如果同时两个指令过来执行 一个需要5秒,那么两个就需要10秒;有了流水线技术之后,可能就只要6秒。多个指令同时执行时性能显著提升。这个和指令重排有啥关系?因为流水线满载后一旦中断,所有的硬件设备会进入一个停顿期,再次满载,需要几个周期,对性能损失比较大。指令重排就是一种减少原创 2020-08-12 22:06:56 · 1634 阅读 · 1 评论 -
异步线程threadLocal中对象获取失败
问题描述在一个比较复杂的业务中,同步执行了主任务,将与当前任务无关的任务丢进了异步线程,然后发现异步线程没有获取到用户。所有的异步任务都没有执行下去。排查1.直接debug,发现任务在异步方法开始执行就失败了,没有进入异步方法;2.打log,异步方法前的log打印了,之后的没有。3.仔细看代码,发现了开启异步线程后入参直接来自threadLocal,找到问题了,明显的子线程获取父线程对象...原创 2020-03-19 12:02:06 · 1911 阅读 · 0 评论 -
为什么阿里要禁用 Executors 创建线程池?
转载自:为什么阿里要禁用 Executors 创建线程池?知识点线程池的定义Executors创建线程池的几种方式ThreadPoolExecutor对象线程池执行任务逻辑和线程池参数的关系Executors创建返回ThreadPoolExecutor对象OOM异常测试如何定义线程池参数线程池的定义管理一组工作线程。通过线程池复用线程有以下几点优点:减少资源创建 =&...转载 2019-11-18 15:00:28 · 635 阅读 · 0 评论 -
使用com.github.pagehelper插件分页、count分析
业务描述:由于前人写的代码分页使用com.github.pagehelper,pagehelper查询总数时用的 select count(0)原创 2019-10-28 19:30:01 · 7716 阅读 · 0 评论 -
微信公众号自定义菜单创建
开发公众号的时候可能需要给一些自定义菜单添加事件,比如点击某菜单然后服务端给用户推送信息。 我们也可以使用微信提供的网页调试工具直接生成菜单,不过需要考虑是否影响用户问题。 注意:使用代码自定义菜单事件,手动添加的菜单会失效!谨慎使用! 官方文档 httpClientUtil工具类需要的话可以在前面微信公众号获取access_token中获取public clas...原创 2018-11-19 09:53:27 · 184 阅读 · 2 评论 -
微信公众号code换取openId
微信网页授权的时候,不管是静默授权还是显示的用户点击授权,我们都能够拿到用户的code,详见官方文档。 拿到用户的code之后我们就可以根据我们的已有的appid和sercet拿到openId。 public class WeChatUserInfoTest { public static String getOpenId(String code, String a...原创 2018-11-20 09:34:33 · 1320 阅读 · 5 评论 -
微信公众号获取微信用户信息
注: 这里获取用户信息方式和网页授权获取用户信息方式不同。两个access_token不同,返回的结果也不同。我们很多场景可能需要用户信息 微信公众号获取微信用户信息需要的条件: 1.获取用户openId。可以在用户绑定APP的时候用code换取,也可以在用户关注公众号的时候获取,或者小程序授权时获取。微信公众号code换取openId 2.获取该微信公众号 ac...原创 2018-11-20 09:54:49 · 1254 阅读 · 0 评论 -
DispatcherServlet生命周期
tomcat启动初始化DispatcherServlet 1.加载默认DispatcherServlet.properties配置,加载properties配置中的策略;ClassPathResource resource = new ClassPathResource(DEFAULT_STRATEGIES_PATH, DispatcherServlet.class); de...原创 2019-01-25 11:54:06 · 868 阅读 · 0 评论 -
Spring-jcl源码(四) -- LogFactory获取Log对象
public abstract class LogFactory { /** * 获取给定类的Log对象 * Convenience method to return a named logger. * @param clazz containing Class from which a log name will be derived */ public static L...原创 2019-03-29 15:27:42 · 1145 阅读 · 0 评论 -
大话程序猿眼里的高并发架构
转自:大话程序猿眼里的高并发架构前言高并发经常会发生在有大活跃用户量,用户高聚集的业务场景中,如:秒杀活动,定时领取红包等。为了让业务可以流畅的运行并且给用户一个好的交互体验,我们需要根据业务场景预估达到的并发量等因素,来设计适合自己业务场景的高并发处理方案。在电商相关产品开发的这些年,我有幸的遇到了并发下的各种坑,这一路摸爬滚打过来有着不少的血泪史,这里进行的总结,作为自己的归档记...转载 2018-11-20 14:39:43 · 125 阅读 · 0 评论 -
Spring Data Jpa多表联合分页查询
参考:https://blog.csdn.net/qq_36144258/article/details/80298354近期一个项目用到Spring Data Jpa,Jpa用来做单表查询非常的简单粗暴,可以说不用写sql,但是涉及到复杂的多表操作,还是要写sql,这个时候需要用到@Query注解。@Query用法可见https://mp.csdn.net/postedit/82797015...原创 2018-09-21 10:09:31 · 8176 阅读 · 2 评论 -
@Query注解及@Modifying注解
转自:https://www.cnblogs.com/zhaobingqing/p/6864223.html @Query注解查询适用于所查询的数据无法通过关键字查询得到结果的查询。这种查询可以摆脱像关键字查询那样的约束,将查询直接在相应的接口方法中声明,结构更为清晰,这是Spring Data的特有实现。索引参数与命名参数 1、索引参数如下所示,索引值从1开始,查询中"?X"...转载 2018-09-21 09:56:14 · 824 阅读 · 0 评论 -
获取来访者的各种信息
转自:https://blog.csdn.net/l1028386804/article/details/49890455package com.cdsmartlink.utils.system; import java.io.BufferedReader;import java.io.InputStreamReader;import java.net.InetAddress;im...转载 2018-08-20 10:24:46 · 505 阅读 · 0 评论 -
支付宝APP支付服务端加签
添加支付宝SDK1.5依赖:<!-- https://mvnrepository.com/artifact/com.alipay.sdk/alipay-sdk-java --><dependency> <groupId>com.alipay.sdk</groupId> <artifactId>alipay-sdk-jav...原创 2018-04-17 15:30:52 · 4051 阅读 · 0 评论 -
JVM监控与调优
转自:Java系列笔记(4) - JVM监控与调优目录参数设置收集器搭配启动内存分配监控工具和方法调优方法调优实例 光说不练假把式,学习Java GC机制的目的是为了实用,也就是为了在JVM出现问题时分析原因并解决之。通过学习,我觉得JVM监控与调优主要的着眼点在于如何配置、如何监控、如何优化3点上。下面就将针对这3点进行学习。转载 2017-12-27 11:51:24 · 203 阅读 · 0 评论 -
Unable to obtain LocalDateTime from TemporalAccessor: {},ISO resolved to 2018-04-30 of type java.tim
今天使用Java8的日期类LocalDateTime和DateTimeFormatter处理String型的日期类型yyyy.MM.ddString validDate = "2008.04.30-2018.04.30"; String end = validDate.substring(validDate.indexOf("-")+1, validDate.length())原创 2017-12-13 16:57:40 · 33241 阅读 · 2 评论 -
从DispatcherServlet到HandlerMapping
tomcat启动的时候DispatcherServlet加载默认资源DispatcherServlet.properties就会去加载默认的HandlerMapping,包括org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping和 org.springframework.web.servlet.mvc.method.ann...原创 2019-01-28 11:40:36 · 1311 阅读 · 0 评论 -
从DispatcherServlet到HandlerAdapter
tomcat启动时,DispatcherServlet初始化HandlerAdapter,默认加载的处理适配器有:org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter、org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter和org.springfram...原创 2019-01-28 15:35:09 · 654 阅读 · 0 评论 -
从DispatcherServlet到MultipartResolver
tomcat启动,DispatcherServlet初始化时调用initMultipartResolver方法初始化用户自己注入的MultipartResolver,springmvc并没有注入默认的Multipart解析器,用户未注入时,默认Multipart解析器则则为空。因此,当我们需要使用multipart/form-data方式向服务端传参时我们需要自已手动注入自己需要的Multipar...原创 2019-02-16 14:18:41 · 385 阅读 · 2 评论 -
mvn打包指定jar及依赖jar
命令mvn clean package -pl bee-api-rest -am -Dmaven.test.skip=truecleanclean 清除项目构建package打包-pl指定打包的模块,可以用路径也可以用坐标,如果父项目同时是父目录,那么进入父目录下,直接“-pl 项目目录名”即可;-am同时打包依赖的模块-amd同时打包依赖的模块,及依赖该包的模块...原创 2019-08-26 16:58:21 · 1670 阅读 · 0 评论 -
解决请求头新增字段跨域问题
问题描述在请求头中新增了用户标记字段,前端报了该字段跨域问题,postman没有。问题原因由于新增了字段到请求头中,导致了服务端跨域请求处理时没有识别到该字段,认为该请求是跨域的。问题解决 response.setHeader("Access-Control-Allow-Origin", request.getHeader("Origin")); response....原创 2019-07-31 21:43:50 · 4606 阅读 · 0 评论 -
前后分离服务端非简单请求预检问题跨域问题
参考博客:阮一峰简单请求的定义:(1) 请求方法是以下三种方法之一: HEAD GET POST(2)HTTP的头信息不超出以下几种字段: Accept Accept-Language Content-Language Last-Event-ID Content-Type:只限于三个值application/x-www-form-urlencoded、multipart/f...原创 2019-07-31 21:37:18 · 478 阅读 · 0 评论 -
Spring-core源码 -- AutoPopulatingList可自动填充元素的List包装类
这个类,是线程不安全的,我们使用频率很小,近乎无,需谨慎操作。/** * The {@link List} that all operations are eventually delegated to. * 所有操作最终委托给的列表。 */ private final List<E> backingList; /** * The {@link Elemen...原创 2019-04-16 16:08:59 · 575 阅读 · 0 评论 -
Spring-core源码 -- AlternativeJdkIdGenerator Spring的UUID生成器类
有时候看源码,我们会受到一些启发。spring-core中的AlternativeJdkIdGenerator类,一个生成UUID的类,仔细研究一下 发现他和UUID的randomUUID很相似。public class AlternativeJdkIdGenerator implements IdGenerator { private final Random random;...原创 2019-04-16 15:41:16 · 1285 阅读 · 0 评论 -
Spring-core源码 -- AntPathMatcher匹配映射路径类
参考:Spring之AntPathMatcherAntPathMatcher这个类主要用来干嘛的呢?就是用来做路径映射匹配的。比如:com/t?st.jsp 匹配 com/test.jsp、com/tast.jsp等 com/*.jsp 匹配 所有com下级.jsp文件 com/**/test.jsp 匹配 所有com下的test.jsp结尾...原创 2019-04-15 21:41:26 · 870 阅读 · 0 评论 -
Spring-jcl源码(一) -- log日志级别
Spring-jcl是spring体系中极少数没有依赖其他spring jar包的工具包。是一个spring common 日志桥接包。依赖了log4j-api和slf4j-api。开始之前先讲一下spring jcl中的日志级别。Fatal>Error>Warn>Info>Debug>TraceFatal:严重,重大错误将导致程序直接停止运行;Err...原创 2019-03-29 11:29:17 · 1548 阅读 · 0 评论 -
Spring-core源码 -- Assert断言类
Assert断言类,这是一个很常见的类,我们调试的时候验证方法参数使用。一个个方法开始看。public static void state(boolean expression, String message) { if (!expression) { throw new IllegalStateException(message); } }判断expression的bo...原创 2019-04-01 14:43:12 · 475 阅读 · 0 评论 -
Spring-jcl源码(终) -- 实践
maven导入Spring-jcl<dependency> <groupId>org.springframework</groupId> <artifactId>spring-jcl</artifactId> <version>5.0.6.RELEASE</version>...原创 2019-03-29 16:28:56 · 584 阅读 · 0 评论 -
Spring-jcl源码(三) -- LogAdapter创建Log对象过程
/* 从方法级扩展Log4j的Logger类*/ private static final String LOG4J_SPI = "org.apache.logging.log4j.spi.ExtendedLogger"; private static final String LOG4J_SLF4J_PROVIDER = "org.apache.logging.slf4j.SLF4JPr...原创 2019-03-29 15:12:18 · 822 阅读 · 0 评论 -
Spring-jcl源码(二) -- Log接口
package org.apache.commons.logging;/** * 抽象日志API的简单日志接口,logfactory实例化该接口。实现此接口的类必须具有一个构造函数,该构造函数采用表示此日志“name”的单个字符串参数。 * * 将这些日志级别映射到底层日志系统所使用的概念是依赖于实现的。不过,该实现应该确保这种排序行为符合预期。 * * 性能通常是一个日志记录问题...原创 2019-03-29 14:19:52 · 427 阅读 · 0 评论 -
java 8中foreach的理解
Java8 API中介绍Stream:Classes to support functional-style operations on streams of elements, such as map-reduce transformations on collections.翻译一下应该可以理解为:用来支持函数式操作元素的类,比如集合转换map-reduce。什么意思呢?简而言之就是为集合原创 2017-12-04 20:34:52 · 1966 阅读 · 0 评论 -
java 判断IP地址是否为内网IP
简洁实用的一个方法: public static boolean internalIp(String ip) { byte[] addr = IPAddressUtil.textToNumericFormatV4(ip); return internalIp(addr);}public static boolean internalIp(byte[] addr) {转载 2017-12-08 14:29:00 · 6343 阅读 · 0 评论 -
关于BigDecimal 除法的java.lang.ArithmeticException问题
之前用大数BigDecimal,然后本地测加减法截取小数没有问题,然后项目测试环境出现小数点后面999999999999999一大串,查找原因,发现是有个地方用BigDecimal转化除法运算的结果(float型),截取转化结果,对截取结果进行加减操作,没有截取成功。 首先网上有人说是不能直接把其他类型转化成BigDecimal类型,只能String类型转,说的有板有眼,然后试之。发现同样无原创 2017-11-03 12:47:31 · 906 阅读 · 0 评论 -
二维码生成
昨天给别人支付宝扫码转账,突然觉得二维码有点意思,去哪里搞一份二维码生成代码过来玩。以前玩过的项目里面用到了Google的Zxing二维码,然后在网上搜了相关二维码资料,发现小日本的QR码也还可以,然后就搞了一份二维码测试代码。项目名是ZXing二维码。里面两个的都有 二维码测试代码原创 2017-05-26 22:07:13 · 324 阅读 · 0 评论 -
spring data jpa浅谈
spring data jpa介绍首先了解JPA是什么?JPA(Java Persistence API)是Sun官方提出的Java持久化规范。它为Java开发人员提供了一种对象/关联映射工具来管理Java应用中的关系数据。他的出现主要是为了简化现有的持久化开发工作和整合ORM技术,结束现在hibernate,TopLink,JDO等ORM框架各自为营的局面。值得注意的是,JPA是转载 2017-05-07 23:23:11 · 621 阅读 · 0 评论 -
有返回值的线程Callable
今天碰到一个问题,从用线程从管道流中获取数据,获取数据用来干嘛?当然是有用处,要不然获取它来干嘛。但是不想在线程中处理数据,代码整洁性不高。那么问题来了,怎么在另一个类中获取当前类的线程中的数据呢?依赖性的在网上查了一下,果然是有简单的解决方法的,Java1.5开始,有一种有返回值的线程。 Callable是一个功能性的接口,类似于Runnable,然而,Runnable,不返回结果并不能抛原创 2017-03-30 01:35:35 · 449 阅读 · 0 评论 -
字节流与字符流详细解读
Java 流在处理上分为字符流和字节流。字符流处理的单元为 2 个字节的 Unicode 字符,分别操作字符、字符数组或字符串,而字节流处理单元为 1 个字节,操作字节和字节数组。Java 内用 Unicode 编码存储字符,字符流处理类负责将外部的其他编码的字符流和 java 内 Unicode 字符流之间的转换。而类 InputStreamReader 和 OutputStreamWr转载 2017-03-23 01:25:03 · 438 阅读 · 0 评论