搜索:小程序

java Map通过遍历器Iterator来实现遍历过中删除元素来避免ConcurrentModificationException异常

原创 2023-02-08 15:54 阅读(355)次
java的普通map和list在遍历时是不能新增或删除对象的,否则会报ConcurrentModificationException异常。那么怎么解决呢,我们可以使用ConcurrentHashMap和CopyOnWriteArrayList来替换掉普通的map和list。也可以使用遍历器来做。 代码参考如下: ```java Map frequentlyVisitedLocationsMap = new HashMap<>(); Iterator> iterator = frequentlyVisitedLocationsMap.entrySet().iterat...

idea中运行springboot jsp工找不到页面的问题

原创 2022-09-09 18:11 阅读(394)次
使用idea开发springboot jsp项目,发现原来在eclipse中能运行,却在idea中打不开页面,显示404,不知道你们有没有遇到过,网上找了很方法发都不适合我,大家可以进来看看我这个问题是不是跟你们的一样。 网上大部分的人遇到的问题都是在springboot启动配置Working Directory就可以,如下图: ![](http://img.classinstance.cn/20220909/1662717711106.jpg) 但我的问题怎么设置都不行,如下图: ![](http://img.classinstance.cn/20220909/16627...

java阻塞的线安全的优先级队列PriorityBlockingQueue

原创 2022-07-05 14:52 阅读(1113)次
### 优先级队列PriorityBlockingQueue - PriorityBlockingQueue是一个无界的基于数组的优先级阻塞队列,是线程安全的。 - 数组的默认长度是11,虽然指定了数组的长度,但是可以无限的扩充,直到资源消耗尽为止。 - 每次出队都返回优先级别最高的或者最低的元素。 - 默认情况下元素采用自然顺序升序排序,当然我们也可以通过构造函数来指定Comparator来对元素进行排序。 - PriorityBlockingQueue不能保证同优先级元素的顺序。 代码如下: 用户model: ```java public UserInfo(Int...

java程序员多线常见的代码bug

原创 2022-07-03 09:36 阅读(851)次
**目录** [TOC] #### 前言 这篇文章主要用来记录我所收集的一些多线程环境下,java程序员常见的或者说容易忽视的、重要的、容易产生bug的代码样例,以此来加深自己对这些场景代码的印象,让我们一起少掉坑。文章会陆续更新,尽自己能力收集更多的样例。 #### CountDownLatch的错误使用 ```java CountDownLatch countDownLatch = new CountDownLatch(voGroupByBucketName.size()); for (......) { executorService.submit(() ...

BeanDefinitionRegistryPostProcessor作用及加载顺

原创 2022-02-15 11:53 阅读(879)次
BeanDefinitionRegistryPostProcessor接口常用于给接口动态添加代理类。这个接口中有一个方法如下: ```java public interface BeanDefinitionRegistryPostProcessor extends BeanFactoryPostProcessor { /** * Modify the application context's internal bean definition registry after its * standard initialization. All regular bean ...

安装Hadoop伪分布式模式教,版本为Hadoop3.1.4

原创 2021-05-22 18:33 阅读(900)次
Hadoop有三种安装模式,今天分享其中一种:伪分布式模式。 下载地址:https://hadoop.apache.org/releases.html 安装过程中解决了一些坑点,具体如下: 这种模式只需要一台服务器即可 ##### 1.上传hadoop-3.1.4.tar.gz到服务器中,解压 tar -zxvf hadoop-3.1.4.tar.gz ##### 2.修改机器名 hostnamectl set-hostname hd1 vi /etc/sysconfig/network NETWORKING=yes HOSTNAME=node01 v...

maven deploy新包到私服,别的工不会自动引用新包的问题

原创 2020-04-15 17:41 阅读(2063)次
在idea中将公共jar包maven deploy自动上传私服后,我并没有修改包的版本,同事在别的工程clean install后发现引用的还是原来的包。后来才发现,别人如果想使用这个最新的包,可以在idea的Maven Projects视图中点reimport,就可以了。install为什么不能下载新包呢,原来同样的版本情况下,install默认找本地的,所以才会出现引用的旧包的问题。也可以设置仓库的<updatePolicy>属性,参考https://www.iteye.com/blog/quinnhe-2066831

利用fastJson保证数据字段顺做api数据签名加密

原创 2020-01-08 17:28 阅读(1663)次
我们在开发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...

dubbo项目consumer和provider的启动顺问题

原创 2019-11-11 12:42 阅读(3211)次
dubbo项目服务调用端consumer默认需要服务提供端provider先启动才能启动,否则会报错: Failed to check the status of the service xxxx. No provider available for the service xxxx这是由于consumer端默认会检查项目里服务提供者是否可用,所以这要求dubbo项目之间要有启动顺序,这显然不符合我们日常开发与部署,谁知道微服务中谁调用谁呢,况且项目之间并不是单纯的服务提供者与调用者,可能会杂在一起,不过dubbo已经提供了关闭这个检查的配置它可以配置在@Reference注解上 @...

redis报错远主机强迫关闭了一个现有的连接以及超时问题

原创 2019-10-11 16:37 阅读(15085)次
问题说明:spring boot2.x+redis开发时,总是时不是发生redis超时,时不时报:远程主机强迫关闭了一个现有的连接以及超时问题。这个问题总是偶有出现,烦人。spring boot2.x版本默认redis连接池为lettuce,以前在非spring boot项目中使用jedis连接redis时,好像没有过这种烦人的问题,搞的现在对redis有阴影。。。我的项目也是使用默认的lettuce连接redis。我们先看超时问题的报错:io.lettuce.core.RedisCommandTimeoutException: Command timed out after 5 second...

线安全测试 ArrayList Collections.synchronizedList CopyOnWriteArrayList

原创 2019-05-30 17:08 阅读(1101)次
ArrayList是线程不安全的,因此在并发编程时,经常会使用Collections.synchronizedList与CopyOnWriteArrayList来替代ArrayList,接下来对这3种list进行线程安全测试,以免自己忘记主要测试的是add,get,遍历并发时的情况,代码与结论如下:package test; import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.concurrent.CopyOnWriteArrayList;...

注册微信程序账号遇到的坑

原创 2018-02-01 18:21 阅读(1011)次
公司要做电商,想要开发微信小程序,于是我打开小程序开发平台稍微了解下小程序的开发过程。官方文档地址:https://mp.weixin.qq.com/debug/wxadoc/dev/index.html?t=2018130要开发小程序,首先得有小程序账号。小程序账号注册地址:https://mp.weixin.qq.com/wxopen/waregister?action=step1页面如下:于是我兴致勃勃的注册了起来,发现了个坑:之前我注册过微信公众平台,用的是我平时用的邮箱,想用这个邮箱再注册小程序账号不能用了,好烦,不能共用一个,所以大家注册过公众平台,开放平台,再想注册小程序账号,就...

linux下MySQL5.7.18安装过

原创 2018-01-18 11:22 阅读(1708)次
话说MySQL5.7是之前所有版本都无法比的(好像是废话啊,不然人家更新干嘛),可以说是一个跨时代版本(大家都这么说)。它主要对半同步复制技术多线程复制、主从数据一致性都进行了优化,我主要是奔着这些升级来的,不想再用5.6了。目前我已经把5.7用到我负责开发的网站中了,主要用来主从复制当备份数据库。下载地址:http://downloads.mysql.com/archives/community/也可以在https://dev.mysql.com/downloads/file/?id=469480页面中直接下载环境:CentOS release 6.5 (Final)MySQL:mysql-...

linux下MySQL5.6.2安装过

原创 2018-01-18 10:27 阅读(1571)次
MySQL是一个关系型数据库管理系统,并且又是开源的,现在很多系统和网站都在使用它,今天给大家分享下我在linux下安装MySQL5.6.2的过程以及遇到的问题。环境:CentOS release 6.6 (Final)MySQL:5.6.2MySQL官方下载地址:http://downloads.mysql.com/archives/community/你可以根据自己想要的版本下载,不过每个版本安装时大致相同,偶有不一样的地方。安装前检查机器里是否有安装过mysql或mariadb :rpm -qa|grep mysql -i rpm -qa|grep ...