解决java.lang.OutOfMemoryError: unable to create new native thread
原创 2021-04-08 10:40 阅读(2874)次
#### 异常问题
项目并发测试一个功能时报创建不了本地线程,如下:
```
Caused by: java.lang.OutOfMemoryError: unable to create new native thread
at java.lang.Thread.start0(Native Method)
at java.lang.Thread.start(Thread.java:717)
at java.util.concurrent.ThreadPoolExecutor.addWorker(ThreadPoolExecutor.java:957)
at ...
postgresql数据库表分区字段有必要创建索引么?
原创 2021-04-08 09:45 阅读(1763)次
postgresql数据库表分区后,分区字段有必要创建索引么?
昨天项目上线前进行性能并发测试,发现一个简单请求单并发要1分多钟,我进行代码跟踪了下,最终定位到如下SQL语句代码:
```xml
select min(collect_time) from A
```
我才想起来这个是我写的,当时是认为A表用collect_time字段做了分区,应该不用给collect_time字段做索引了,而且A表中已经有6个索引字段了,生怕创建太多索引而影响写入性能。
但性能测试环境中A表有6亿数据,上面这个查询就显的力不从心。于是...
java使用snakeyaml库读取和操作yml文件
原创 2021-03-11 16:17 阅读(1857)次
随着spring boot项目的流行,现在已有很多项目在使用yml文件来配置我们的项目。其中也有一些中间件比如elasticearch配置文件都在用yaml文件来配置。
有时我们会有一些需求,比如动态配置,动态读取yml文件来操作我们的配置文件,那么这时就需要解析yml文件了。
那java中如何读取和操作yml文件呢?答案是snakeyaml库。
引入jar包:
```xml
org.yaml
snakeyaml
1.25
```
下面分享一些资料:
官方api与文档:
https://bitbucket.org/aso...
maven jar包 搜索网址分享
原创 2021-03-10 19:40 阅读(2503)次
我们java程序员开发时通常用maven引入jar包的形式导入工具库包。有时为了升级某个jar包时却不知道这个jar包有什么版本的,这时我们就需要去网络上搜索了。
![](http://img.classinstance.cn/20210311/1615451463582.jpg)
这里分享几个网站,大家可以从上往下搜索你想要的jar包。
#### mvnrepository
http://mvnrepository.com/
#### maven.org
http://search.maven.org/
#### sonatype.org
https://re...
maven修改jar包版本不生效解决办法
原创 2021-03-10 16:18 阅读(6367)次
今天在maven中修改一个jar包版本,想升级版本,却一直不生效。
pom文件如下:
```xml
org.eclipse.jgit
org.eclipse.jgit
5.1.3.201810200350-r
```
在当前工程查看这个jar包的版本是改过来了,从4.1变成了5.1。
如下图所示:
![](http://img.classinstance.cn/20210310/1615363943882.jpg)
但是在另一个工程中引用这个工程时,这个jar包的...
Thumbnails使用方法(java图片处理工具类)
转载 2021-03-09 14:10 阅读(1115)次
本文链接:https://blog.csdn.net/qq_25508039/article/details/82257436
#### 介绍
我们在java开发时,使用Thumbnails工具类能帮助我们对图片进行很好的处理,Thumbnails对图片的操作进行了很好的封装,往往很复杂的步骤能用一行代码就完成。
Thumbnails支持:
- 1. 指定大小进行缩放
- 2. 按照比例进行缩放
- 3. 不按照比例,指定大小进行缩放
- 4. 旋转
- 5. 水印
- 6. 裁剪
- 7. 转化图像格式
- 8. 输出到OutputStream
- 9. 输出到B...
java中BufferedImage转成 base64字符串
原创 2021-03-08 17:14 阅读(7719)次
java中BufferedImage转成base64字符串,代码如下:
```java
/**
* BufferedImage转成 base64
* @param bufferedImage
* @param imageFormatName
* @return
* @throws IOException
*/
public static String getBufferedImageToBase64(BufferedImage bufferedImage,String imageFormatName...
java下载图片
原创 2021-03-08 17:10 阅读(560)次
如何在后端代码中,使用java下载图片?
代码分享如下:
```java
/**
* 下载图片
* @param url
* @return
*/
public static BufferedImage downLoad(String url) {
// 获得Http客户端
CloseableHttpClient httpClient = HttpClientBuilder.create().build();
// 创建Get请求
HttpGet ht...
图片的base64字符转成BufferedImage
原创 2021-02-23 17:43 阅读(2238)次
图片的base64字符转成BufferedImage
代码如下:
```java
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.util.Base64;
import java.util.Base64.Decoder;
public class ImageUtils {
/**
* base64 编码转换为 ...
java使用BufferedImage放大或缩小图片
原创 2021-02-23 11:32 阅读(3997)次
BufferedImage可以用来简单编辑图片:包括裁剪、放大、缩小等。
下面贴的是利用BufferedImage做图片放大或缩小代码:
```java
String imageBase64 = "xxxxxx";//图片base64字符串
BufferedImage image = ImageUtils.base64ToBufferedImage(imageBase64);
int width = image.getWidth();
int height = image.getHe...
java使用guava cache实现本地缓存
原创 2021-02-04 15:39 阅读(4378)次
在高并发的场景中我们不希望所有请求都打到数据库中,以免压垮数据库,这时我们就可能会使用本地缓存来实现解决并发性能问题,当然我们也可以选择redis来实现,但redis有时并发也并没有那么快。于是本地缓存就是我们的唯一救命手段了。
Guava的cache是线程安全的,是本地缓存的不二之选,默认情况下缓存过期是依赖于访问判断时间过期和数量限制过期。
我们再也不用自己手写一个基于ConcurrentHashMap的本地缓存了
#### maven引入guava包
```html
com.google.guava
guava
18.0
...
java stream List转Map与List转List与Map转List以及List<Map>转Map
原创 2021-02-03 17:26 阅读(7976)次
我们写代码时经常会遇到List转Map或List转List,Map转List,看到我这标题有没有要晕(我在说什么??转来转去)。之前没有用stream的时候,都是用for循环转换,现在jdk8提供流式处理,性能稍快,还方便。
下面记录一下代码,免得自己老是不记得如果编写stream.
#### List转Map
```java
Map tgMap = tgList.stream().collect(Collectors.toMap(BazTgTO::getTgId, n -> n));
```
#### Map转List
```java
list = dbFilterM...
mybatis一条语句实现一对一,一对多查询
原创 2021-01-26 14:56 阅读(532)次
有时我们要查询多张子表,或关联子表查询,如查询用户信息时,想要带出部门信息,正常使用mybatis要写两条语句,一个查询用户信息,一个查询部门信息,那么使用mybatis如何一条语句做到查询出多个对象信息呢?
##### 参考如下文章
[https://blog.csdn.net/qq_44066201/article/details/99656030](https://blog.csdn.net/qq_44066201/article/details/99656030 "https://blog.csdn.net/qq_44066201/article/details/99656030"...
java父类转子类报错?怎么办?如何父类转子类
原创 2021-01-21 15:01 阅读(3855)次
我们java程序员经常会用到子类继承父类,在开发过程中就会遇到子类转父类,父类转子类的问题。
子类转父类不会报错,但父类转子类强转是不会报错的,但运行后就报错了,代码如下:
public class UserInfo {
private String userName;
public UserInfo() {
}
public String getUserName() {
return userName;
}
public void setUs...
mybatis设置全局变量
原创 2020-12-29 15:19 阅读(3317)次
clickhouse在分布式子查询中会将语句发送到多个分片执行,如果语句中的表前不写上库名,查询时会报在default库中找不到表,所以我们需要给每个clickhouse的查询中都写上库名,这样才能正常执行。但库名写死在语句中并不优雅,万一库名修改或测试环境的库名不同,我们开发要将这么多查询语句都要修改,不得累到死,于是就要将clickhouse库名进行配置到公共变量,并在mybatis中获取。下面分享下如何在mybatis设置和全局变量。先要spring boot配置文件中定义需要设置的全局配置,然后在clickhouse的mybatis sessionFactory中设置全局变量,这样my...
java数组转list
原创 2020-12-16 17:54 阅读(677)次
java中数组如何转list或者说ArrayList,每次码代码时,遇到这个问题都要想一下,这里给自己记录下,免得每次都跳坑。数组转list,有两种方法,代码如下: //方法一
List<String> lista = Arrays.asList(split);
//方法二
List<String> listb = new ArrayList<>(split.length);
Collectio...
spring boot项目默认日志配置
原创 2020-11-26 17:43 阅读(690)次
spring boot默认日志为logback打印,默认不配置也可以打印日志,但生产环境中这样容易让日志打到机器磁盘不足,所以我们还是需要配置一下的:logging:
file:
name: app.log
path: /home/java/
max-size: 50MB
max-history: 7
quartz定时器改名后报错,删除多余的定时表数据
原创 2020-09-27 16:55 阅读(2210)次
quartz定时器改名后报错,需要清除原来表中的对应数据,删除多余的定时表数据删除语句如下,对应的定时信息要传入:DELETE from qrtz_cron_triggers where TRIGGER_NAME = 'personTimeSpaceTaskTrigger';
DELETE from qrtz_triggers where TRIGGER_NAME = 'personTimeSpaceTaskTrigger';
DELETE from qrtz_job_details where JOB_NAME = 'personTimeSpaceTask';
DELETE from ...
springboot项目初始化druid连接池时报错java.lang.NullPointerException: null
原创 2020-04-27 18:25 阅读(5227)次
新创建了一个springboot项目,一顿配置,以为能正常启动,结果打脸了,报错了:2020-04-27 18:14:04.655 ERROR 18376 --- [ main] com.alibaba.druid.pool.DruidDataSource : {dataSource-1} init error
java.lang.NullPointerException: null
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:325) ~[na:1.8.0_191]
at jav...
maven deploy新包到私服,别的工程不会自动引用新包的问题
原创 2020-04-15 17:41 阅读(2073)次
在idea中将公共jar包maven deploy自动上传私服后,我并没有修改包的版本,同事在别的工程clean install后发现引用的还是原来的包。后来才发现,别人如果想使用这个最新的包,可以在idea的Maven Projects视图中点reimport,就可以了。install为什么不能下载新包呢,原来同样的版本情况下,install默认找本地的,所以才会出现引用的旧包的问题。也可以设置仓库的<updatePolicy>属性,参考https://www.iteye.com/blog/quinnhe-2066831
idea类找不到问题Caused by: java.lang.NoClassDefFoundError
原创 2020-04-15 17:02 阅读(3643)次
我的项目A引用另一个名叫pip-data-model-solr.jar包,这个包是我们的实体module,我改过这个module里的代码,重新打包pip-data-model-solr.jar后,项目A clean install后就启动不了,我是用idea启动的。报如下错:Caused by: java.lang.NoClassDefFoundError: cn/com/datu/data/model/solr/entity/po/PersonDoc at java.lang.Class.getDeclaredMethods0(Native Method) at java.lang.Clas...
Base64编码出现换行符
原创 2020-03-31 11:49 阅读(1967)次
我有一个url图片地址,需要将他base64编码然后传给另一个服务,我本地一直是可以,将程序上传到linux服务器中一直发现图片出不来,看了下日志,base64编码后发现出来的数据多了换行符,如下:地址:kv://kv-face-video_face/2020/03/31/11/24/hmfdq-5439232d-8ab2-4403-8882-6b1d90fbeaee-1585625075325-1017433base编码后值:a3Y6Ly9rdi1mYWNlLXZpZGVvX2ZhY2UvMjAyMC8wMy8zMS8xMS8yNC9obWZkcS01NDM5MjMyZC04YWIyLTQ0...
切分List集合为多个List集合
原创 2020-03-12 10:57 阅读(7052)次
切分一个List变成多个List集合,代码如下:import java.util.ArrayList;
import java.util.List;
/**
* @author: jary
* @datetime: 2020/2/5 15:59
* @description:
*/
public class CollectUtils {
/**
* 切分list
* @param sourceList
* @param groupSize 每组定长
* @return
*/
public ...
the dependencies of some of the beans in the application context form a cycle
原创 2020-01-16 08:56 阅读(12966)次
spring项目工程在idea中运行正常,可是打包运行就报错:the dependencies of some of the beans in the application context form a cycle错误意思是spring循环依赖,开始以为是打包问题,可检查了包里面的内容是正常的,于是我build project后再打包,居然可以了。网上也找了下别人的解决办法有:1.不要使用基于构造函数的依赖注入2.在字段上使用@Autowired注解,让Spring决定在合适的时机注入3.用基于setter方法的依赖注入那我的解决办法是重新build project,在这里都记录下如果还有其...
利用fastJson保证数据字段顺序做api数据签名加密
原创 2020-01-08 17:28 阅读(1669)次
我们在开发api接口时,尤其是开放给第三方使用的接口,通常会对接口参数做签名加密校验。我看了下大部分人都只是把url上的参数放到TreeMap中做加密:import org.apache.commons.codec.digest.DigestUtils;
import java.io.UnsupportedEncodingException;
import java.util.Map;
import java.util.TreeMap;
/**
* @Author: rongrong
* @Date: 2018/4/23
* @Description:
*/
publ...
freemarker嵌套循环用法
原创 2019-12-27 16:37 阅读(3309)次
ftl模板文件中如果需要使用循环,表达式如下:<#list tableList as table> ${table.table_name} <#list table.schemaList as field> ${field_index+1} ${field.column_name} </#list></#list>其中${field_index+1}为序号。
java解析request或url中的参数工具类代码
转载 2019-11-05 21:21 阅读(2317)次
无论我们在做爬虫时还是在做访问日志解析时,都需要java获取request中的参数、java解析URL问号后的参数。有时候我们需要从request中获取参数,或者获取拼接在Url后面的参数,有时候一个一个去拿有点麻烦,一起拿出来放在一个map里面需要用哪个就取哪个,方便省事代码转载https://www.bbsmax.com/A/GBJrq74Wz0/上代码:import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.util.HashMap;
import java.util....
java中jsoup解析爬虫获取的页面html数据,轻松实现一个爬虫
原创 2019-11-05 16:16 阅读(2786)次
最近在找工作,看看各大人才网上的工作岗位,搜索了一下自己住所附近的工作,搜索功能好像对地址搜索不是很友好,于是自己想爬一下各大人才网上的数据,以便自己好搜索,并不商用也不开放数据,话说最近反爬虫很严啊,不过想来自己只是爬取公开的数据,并且不会影响目标网站的正常运行,应该是没事的,这里也希望大家遵守爬虫协议。jsoup是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据以某人才网为例,把他的搜索地址中的搜索词和页码动态传入参数,用Jsoup解析dom就可以把想要搜索的岗位数...
Java实现Https发送get和post请求
原创 2019-11-05 14:11 阅读(1925)次
我们工作中经常需要请求第三方或者自己项目中一些接口,有post和get请求,http协议的实现起来很简单,那么https呢?java中如何实现发送https请求并得到响应数据?java中带了javax.net.ssl.HttpsURLConnection类,可以实现https请求。下面直接分享我的工具类HttpUtil类,HttpUtil有两个方法httpsGet(String url)与httpsPost(String url),分别处理https的get和post请求,数据都返回String类型,如果返回的是html可以用jsoup工具解读Dom,如果是json直接用fastJson或其他...
springmvc一个跳转jsp页面被过滤器过滤好几次的问题
原创 2019-10-31 11:10 阅读(1103)次
前几天写了个过滤器,一个页面跳转在过滤器的doFilter方法中拦截到好几次,一直找不到原因。后来才发现是过滤器配置的问题。而配置是我随便网上cp的,如下:<filter>
<filter-name>domainFilter</filter-name>
<filter-class>com.cloud.xungou.servlet.DomainFilter</filter-class>
</filter>
<filter-mapping>
&l...