自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 资源 (1)
  • 收藏
  • 关注

原创 Maven强制指定jar版本

最近发现个问题有个aliyun的oss sdk版本指定了不起作用,一直是很老的版本。依赖树打印也是没有问题的。最后临时取巧强制指定版本解决。配置到parent pom里即可<dependencyManagement> <dependencies> <dependency> <groupId>com.aliyun.oss</groupId> <artifactId>aliyun-sdk-

2021-05-24 10:49:04 8504

原创 mac curl7.64.1 multipart上传文件spring后端搜不到的问题

问题最近升级了mac打包机的系统,结果上传接口无法接受到文件,后端是spring boot。原因最终发现curl -F参数指定后,7.64.1版本生成的HTTP BODY里对应的内容是Content-Disposition: attachment;,而实际上spring接收的应该是Content-Disposition: form-data;解决最终通过升级curl版本到7.7x.x或者其他版本解决。。查看body后发现是Content-Disposition: form-data;虽然是一个小

2020-11-25 10:57:46 234

原创 Tinker1.9.14.5 一行代码没改生成补丁包含大量变更的问题

背景tinker热修复应该很多人都在用,但其实还是有些BUG的。官方据称内部版本与开源版本一致。这不。。又被我碰到一个BUG,差点被坑惨了,导致了半年的热修复不能用,最近空闲下来仔细研究了下原因,终于是找到问题了。问题一行代码没改。每次生成出来的补丁有260KB。原因经过多次对比、排除实验,发现每次都是因为有大量的R文件的res id改变导致。那么导致资源变更的原因是什么呢?最后发现tinker基准包生成的R.txt文件与实际最后补丁包生成的R.txt文件部分ID的值变了,从而导致所有引用的

2020-11-13 11:27:25 465

原创 Spring boot tomcat因为maxHttpHeaderSize配置导致启动请求一会OOM

背景项目上线后,发现过段时间就会请求失败OOM。经过排除,哪怕请求一个空的接口都会OOM,请求分配内存失败。原因最后发现有次配置文件上传,从网上复制了一个配置maxHttpHeaderSize设了100M。经过查看源码,是因为请求来了后,会先创建Http的Processor,然后将这个Processor缓存起来复用。Processor会直接根据maxHttpHeaderSize来申请http的inputBuffer和outputbuffer。那么就导致了创建了几个Processor后内存就直接满

2020-06-04 11:43:52 2717

原创 Spring Boot 2.2.6 返回LocalDateTime为数组的问题

背景搭了一个初始工程,使用的是spring boot 2.2.6。结果发现LocalDateTime返回到前端后变成了数组。网上找了遍都是不知道哪抄的,没一个行的。问题根源还是通过查看源码的方式,发现默认序列化情况下会使用kotlin SerializationFeature.WRITE_DATES_AS_TIMESTAMPS。所以打印出数组。 @Override public void serialize(LocalDateTime value, JsonGenerator g, Ser

2020-05-14 20:20:06 7079 5

原创 Matrix导致tinker补丁包过大问题

背景这是个大坑,记录下。项目接入了tinker做热修复,可是呢一行代码不改,你猜补丁多大?10M加固后生成的补丁,你猜多大?18M这简直是不能接受啊!结论先说结论,因为其他都是废话,也没人关心,希望结论能帮助到他人。matrix导致tinker补丁过大项目里用例tinker+matrix,这俩是微信一家的matrix在做方法耗时插桩时,会在代码里每个方法里插入开始和结束...

2020-04-03 23:45:34 463

原创 JAVA操作jenkins api取消正在排队某一个任务

import hudson.model.* def q = Jenkins.instance.queue println(Jenkins.instance.pluginManager.plugins)q.items.findAll { it.task.name.startsWith("jenkins job 名字") }.each { packageId="" ...

2020-03-26 19:48:47 1847

原创 Java CPU高如何查看线程状态

背景服务器上线后,莫名其妙收到CPU高的报警。那么该如何排查呢?方法jps命令查看java对应的进程IDtop -H -p PID 查看当前进程中线程状态,找到比较占CPU的几个PIDprintf “%x\n” PID 线程ID转换成16进制jstack 31057|grep 16进制PID -A 30 查看对应线程状态信息根据返回可看到是执行到哪里导致CPU过高...

2020-03-26 19:20:42 644

原创 算法时间复杂度的大概计算方法

前言最近在看看leetcode,很多题都要求时间复杂度在一定值之内。那么这个值该如何去计算呢?还是得捡捡基础知识。时间复杂度通俗点讲就是程序执行数据规模为N的算法所需要的大致时间,记作T(n)=O(f(n)),一般时间复杂度都叫O(n)。下面再引用一句牛逼点的话:一般情况下,算法中基本操作重复执行的次数是问题规模n的某个函数,用T(n)表示,若有某个辅助函数f(n),使得当n趋近于无穷大...

2020-01-08 21:22:58 3084

原创 Spring boot maven clean package kotlin+java混编

背景这次项目做完,用公司发布系统编译的时候,报错了。因为是混编,结果报kotlin文件都找不到。maven clean package -U这是打包命令,可是因为是发布系统模板所以不好改命令。解决方案可以改编译命令的前提下这个不多说了,网上挺多人复制的。其实就是在package前面强制先编译kotlin。三方链接不修改打包命令的前提下这个就不好搞了。最后还是在kotlin官网找到了答...

2019-11-19 16:38:10 469

原创 mac docker gitlab 503:too many open files

背景在mac上装了个docker、在docker里起了个gitlab,结果gitlab太吃电脑了,随便一操作就挂了报503.。。通过日志发现是too many open files。解决办法只有增加mac的文件打开数。结果发现ulimit -n 最大256.。坑爹啊。通过查找google发现通过以下方式来修改,只在10.14、10.12上测试OK,应该10.12以后的都可以。:创建文件...

2019-11-18 17:42:50 539

原创 mac上vue项目编译报错:primordials is not defined

背景有个vue项目要发布,本地运行好好的,结果编译就报错:primordials is not defined解决办法经过查询发现是node的版本太高与gulp不符。只有降低node版本解决问题。我得版本是node:12.0。怎么降低版本呢?通过nvm命令即可。nvm list 查看当前版本nvm install vxxx.xx.xx下载所需版本(一个版本一个版本试)nvm ...

2019-11-15 15:35:17 1609

原创 element-vue中el-table去除鼠标悬停背景色

问题使用el-table的时候,会发现鼠标移到某行,某行就会高亮。那怎么去掉这个效果呢?解决添加以下CSS即可(或自己改成想要的颜色):.el-table tbody tr:hover>td { background-color:#ffffff!important}...

2019-08-23 11:19:12 26764 17

原创 element-vue中el-tag 点击事件无效

问题使用el-tag有时想添加点击事件,结果发现添加了@click="xxx"发现,并没有触发click。解决element官方有说明,@click改成即可@click.native

2019-08-23 11:16:48 4862

原创 centos Gitolite自定义仓库目录+git daemon启动命令

背景现在可能大家都在使用gitlab来管理代码。非常方便,还能控制权限。可是最近接到一个需求是这样的:要用git做版本管理所有git仓库为可读拥有权限配置Gitolite + Git Daemon这个时候搭建一套gitlab其实挺麻烦。这时候Gitolite合git daemon就派上用场了。1. Gitolite:能够拥有权限管理功能2. Git Daemon:可以使所有g...

2019-08-14 13:31:40 728

原创 Jenkins插件历史版本下载

背景今天真是吓死宝宝了。不小心点了jenkins里的某个插件降级,结果jenkins启动报错,说各种版本不兼容,所有slave全部断开,jenkins的插件列表里又不能指定版本升级。。还好是中午休息时间,赶紧想解决办法。解决方案突然想到jenkins可以按照插件的hpi文件首先定位到是哪一个插件版本不兼容下载jenkins插件的历史版本,那么这个到哪去下呢?找到了插件源码,可是下下来编...

2019-08-14 13:09:59 2980

原创 Jenkins指定build number起始

背景jenkins每次编译都会生成一个build号,并且是从1一直递增的。那么有时候我们想像数据库那样,指定从10000号开始递增,该如何做呢?解决方案在jenkins主菜单,jenkins->系统管理->脚本命令行。进入命令行模式:输入命令点运行即可:Jenkins.instance.getItemByFullName("对应的job_name").updateNextB...

2019-08-13 12:18:39 2666

原创 jenkins 并发构建Android 报错:Gradle build daemon disappeared unexpectedly (it may have been killed or may

问题jenkins CI的时候,如果一台机器只执行一个job,是很大的浪费。那么我们可以把一台slave设置成多进程并发的执行。在使用Gradle编译Android时,出现了错误:Gradle build daemon disappeared unexpectedly (it may have been killed or may ...是因为jenkins并发执行会将gradle杀掉。...

2019-08-12 11:20:46 6659

原创 Linux scp 卡住不动

传一个文件到服务器的时候,scp卡住不动了。原来是默认scp会使用最大带宽,防火墙阻止了传输。加一个-l 8192限制下上传速度就好了。。scp -l 8192 xxx root@xxx:/xxx...

2019-08-03 15:21:28 11291

原创 根据网上配置了远程git仓库,git clone报Permission denied (publickey,gssapi-keyex,gssapi-with-mic).

根据网上的链接配置了远程git仓库以及ssh key,结果clone的时候还是报没有权限。正克隆到 'xxxxxxxxx'...deploy@ip: Permission denied (publickey,gssapi-keyex,gssapi-with-mic).fatal: 无法读取远程仓库。请确认您有正确的访问权限并且仓库存在。可能是因为ssh key文件夹权限问题,因此进到...

2019-07-09 13:26:13 2046

原创 Android如何创建Gradle插件开发工程及调试

背景想写一个Gradle Transform Api,真的是怎么建一个Gradle插件,网上一水的水文,写的不明不白。代码都不全,还是得靠自己摸索。因此,在这里整理总结一下为大家提供出来。如何创建Gradle插件工程基于com.android.tools.build:gradle:3.4.0,下面分为几步,介绍如何配置Gradle插件开发工程。按照以下几步即可。新建Android项目这...

2019-06-25 20:25:51 3151 2

原创 如何输出优秀的代码

前言有时候看别人的代码,虽然执行结果一样,但是会发现自己的代码写的跟屎一样。那么有哪些方法可以让我们自己也写出比较优雅通俗易懂的代码呢?任何代码都是人一行行码出来的,因此还是要提高自己的水平来输出优秀的代码。我们从以下几个方面来提高自己:命名规范适当的注释消灭重复超大的函数if-else简化设计模式命名规范好的命名规范是写好代码的第一步,命名别人都看不懂,最后自己都看不懂...

2019-06-19 12:34:32 474

原创 java.net.UnknownServiceException: CLEARTEXT communication ** not permitted by network security polic

现在Android系统的控制越来越严了。如果APP发送网络请求碰到这个错误可以通过以下步骤解决:在AndroidManifest.xml里添加网络权限。在application标签中添加android:usesCleartextTraffic="true"属性。...

2019-05-20 19:23:56 358

转载 Chrome报ERR_UNSAFE_PORT

写了个springboot项目。本想图个吉利端口号起做6666。结果Chrome报了这个错。最后发现是因为6666为Chrome的黑名单里。下面是端口列表,换个端口即可:6666-6669这几个端口是IRC协议使用的缺省端口,存在很大的安全风险,很容易被木马程序利用,出于安全方面chrome禁止了对6666端口的访问,同样使用webkit内核的chrome缺省状态下也是禁止访问这几个端口的。...

2019-02-21 12:01:55 613 1

原创 KotMVP-Android Studio自动生成MVP模板代码

前言本来准备用KotMVP做个小APPDemo,结果。。用起来太麻烦了,每次创建新的界面还得创建一大堆文件。简直手累+心累。突然想起来,Android Studio不是自带代码模板吗?结果发现Android Studio并不支持多个文件的模板,并且有一些局限性。期间我也百度过。大部分都是在Android Studio安装目录按照内置的模板去做。但是,这么做太复杂了,完全考猜。因此,把目标转...

2019-02-20 10:31:54 491 1

原创 Github上开源项目readme里好看的高大上的有趣的徽章从何而来

徽章顶上这玩意应该很多人见过吧。看上去各种高大上,能够显示各种信息。这玩意哪来的呢?稍微会点前端的同学,会鼠标指到图标上-&gt;右键-&gt;检查。就会发现这个其实就是一个图片+链接。[![License](https://img.shields.io/badge/license-Apache%202-green.svg)](https://www.apache.org/licens...

2019-02-15 17:19:52 3018

原创 Coroutine与LifecycleOwner绑定自动跟随生命周期销毁

原文链接前言前面讲了Coroutine的实现原理。对协程有个初步的认识。我们都知道协程是运行在CoroutineScope之下,而CoroutineScope下的协程也是有父子关系的。那么父协程取消的时候会取消所有子协程。由此我们可以想到:CoroutineScope如果与Activity生命周期绑定,activity销毁了后CoroutineScope下的所有子协程就会随着activit...

2019-02-12 17:13:49 2824

原创 Android Kotlin Coroutine原理简述

KotlinKotlin已经被谷歌指定为Android的第一开发语言,现在大多数团队都在改用kotlin进行开发。而kotlin的版本发布也挺快,目前出了一些新的东西可以进行尝试。Coroutine2018年10月的样子,Kotlin1.3正式发布,其中有一项特性是Android开发中以前从未有过的,那就是Coroutine,而且是正式版。其实Coroutine的概念在1963年就由梅尔文...

2019-01-30 10:25:40 2838

原创 一个通用的分页类~

    现在在学jsp,想到怎么去分页。在网上瞄了些分页的方法,貌似有几种。我刚刚开始想的把所有的记录全部放倒一个list里,最后分页拿出记录。虽然能行,但感觉这样做有点不对劲,数据要是很多的话那要多长的list啊~~还有种想法,每次取记录直接在数据库里去一页数据,但各个数据库又不同,不可能为每个数据库写个吧(学校上的数据库太没水准了,教的sql server2000,top 都没仔细讲~~。就是...

2010-02-03 15:31:38 93

原创 jsp servlet 中setAttribute()和getParameter()区别

setAttribute()是用于服务器端设置属性向客户端发送该属性,在客户端通过getAttribute()获得属性。setAttribute()也能传递对象。 setParameter()是客户端向服务器端发送属性,只能传字符,用于get/post的数值传递,在服务端用getParameter()获取,页面中有forward从定向页面的地址中的参数也能用getParameter()获取...

2010-02-01 01:04:46 159

原创 贪吃蛇

刚刚写的一个贪吃蛇,没有界面,一次出一个食物,一个食物10分,每吃五个速度增加25;水平不好,有点丑~

2010-01-30 16:30:21 109

scjp的一些资料 310-065

我收集的各种scjp资料,也有题库。可能有重复内容!

2010-01-24

空空如也

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

TA关注的人

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