- 博客(60)
- 收藏
- 关注
原创 forEach时候,Exception in thread “AWT-EventQueue-0“ java.util.ConcurrentModificat
在很多容器中,都有一个变量记录你从结构上修改,叫做modCount,查看ArrayList的add()和remove()方法就可以发现,每次你调用add方法()向容器里面增加了一个元素,或者你调用Remove()方法删除了其中的某个元素,这个值都会增加1。在对集合进行迭代的时候,这个值不能被改变,否则抛出异常ConcurrentModificationException。
2023-08-18 15:12:00
421
1
原创 【双向链表】数据结构详解
双向链表的应用:linkedList双向链表也叫双链表,是链表的一种,它的每个数据 结点 中都有两个 指针 ,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点。一般我们都构造双向 循环链表。好处:插入、删除的速度比ArrayList扩容来的快的多。缺点:对于随机访问,查询速度慢。
2023-02-21 11:20:36
281
原创 【ReentrantLock】可重入的互斥锁,又被称为“独占锁”
ReentrantLock是一个可重入的互斥锁,又被称为“独占锁”。ReentrantLock锁在同一个时间点只能被一个线程锁持有;可重入表示,ReentrantLock锁可以被同一个线程多次获取。ReentraantLock是通过一个FIFO的等待队列来管理获取该锁所有线程的。在“公平锁”的机制下,线程依次排队获取锁;而“非公平锁”在锁是可获取状态时,不管自己是不是在队列的开头都会获取锁。
2022-12-28 10:42:33
576
原创 【excel导入、导出】pom、实体类、工具类、例子
如果你的导出中,需要将对应图片链接直接显示为图片的话,那么,这里也是可以的,只需要将对应的类型转为 java.net.URL 类型即可(注意:转的时候有异常处理,为了方便演示,我这里直接抛出)除了横向合并,我们还可以进行纵向合并,只需要将合并的单元格设置为 ExcelUtils.ROW_MERGE 即可。比如,我们将表头横向合并,只需要将合并的单元格设置为 ExcelUtils.COLUMN_MERGE 即可。比如,当我们下载一个导入模版的时候,我们可以将性别,城市对应的列设置为下拉选择。
2022-12-15 14:19:15
1124
原创 【算法】对已经排序数组的定位(插入新的元素)和排序
已知有一个从小到大的数组:int[] arr = {10, 12, 45, 90};插入任意int类型的数(当然可以扩展),使其插入之后按从小到大的顺序排序并打印。普通的遍历,对大的数组效率低,使用二分查找法提升效率!
2022-11-14 13:13:22
195
原创 练习:空心金字塔(纯手打玩玩)
目录希望成品:思路: 1. 先搞定(长方形,简单) : 2. 再搞定(三角形,也简单): 3. 再继续增加难度(有点难度了): 4. 再增加难度(最后的效果): 上代码: 方案一: 代码: 效果:因为我用的IDEA 编码(GBK,而我设置的是UTF-8),由于编码问题所以没用cmd 编译,和cmd编译出来的效果不太一样,不太好看,所以方案二改进一下。
2022-11-02 10:43:17
254
原创 算法:【位运算】详解、总结、具体推导过程
0正1负* ② 正数的原码、反码、补码都一样(三码合一)* ③负数的反码 = 原码的符号位不变,其他位取反(0->1、1->0)* ④负数的补码 = 负数的反码 + 1 ,负数的反码 = 负数的补码 - 1* ⑤ 0 的反码、补码都是 0** ⑥ java都是带符号运算,所以 最高位是0就是正、最高位是1就是负* ⑦ 计算机运算都是 以补码的方式进行运算的* ⑧ 我们看到的结果都是原码*
2022-11-01 13:46:46
310
原创 NumberFormat(数字格式化类)+工具类
.##”:整数部分不变,二位小数,四舍五入。“.#”:整数部分不变,一位小数,四舍五入。“#”:无小数,小数部分四舍五入。
2022-10-08 13:47:22
1207
原创 Failed to bind properties under ‘spring.redis.lettuce.pool‘ to org.springframework.boot.autoconfigur
总结,再出现这种问题,去查看配置文件的格式是否正确就能解决。出现上面的问题,就是。
2022-09-06 11:41:58
2808
1
原创 【redis】SpringBoot整合+geo地理位置应用
直接连接的Redis Server,如果在多线程环境下是非线程安全的。每个线程都去拿自己的 Jedis 实例,当连接数量增多时,资源消耗阶梯式增大,连接成本就较高了。所以,一个多线程的应用可以使用同一个连接实例,而不用担心并发线程的数量。当然这个也是可伸缩的设计,一个连接实例不够的情况也可以按需增加连接实例。连接实例可以在多个线程间共享,当多线程使用同一连接实例时,是线程安全的。通过异步的方式可以让我们更好的利用系统资源,而不用浪费线程等待网络或磁盘I/O。解决安全的问题,可以用线程池。...
2022-08-30 15:18:48
2550
2
原创 【Nginx】简介、命令和作用
Nginx(engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,公开版本1.19.6发布于2020年12月15日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、简单的配置文件和低系统资源的消耗而闻名。2022年01月25日,nginx 1.21.6发布。...
2022-08-26 10:30:34
2915
原创 【Redis】Redis配置文件详解
可以通过stream-node-max-bytes选项修改Stream中每个宏节点能够占用的最大内存,或者通过stream-node-max-entries参数指定每个宏节点中可存储条目的最大数量。
2022-08-25 16:21:59
4545
原创 【redis】8数据结构(5种基本+3种特殊)
GEOADD key [NX|XX] [CH] longitude latitude member [longitude latitude member ...] # key地理集合添加一个或多个 经度 维度 成员。排序方式是根据名称按字典由低到高排序。ZADD key score member [score] [member] #添加一个或者多个值(数-成员)注意score是数,不是数不行。ZPOPMIN key [count] #不填count就是从key集合弹出1个最小值,count是弹出几个成员。
2022-08-24 15:44:51
1166
原创 【redis】性能测试、基础知识
redis是将所有的数据全部放在内存中的,所以使用单线程去操作效率就是最高的,多线程(CPU上下文切换:耗时的操作!),对于内存系统来说,如果没有上下文切换效率就是最高的!多次读写都是在一个CPU上的,在内存情况下,这个就是最佳的方案。Redis是基于内存操作,CPU不是redis的性能瓶颈,redis的瓶颈是根据机器的内存和网络带宽,既然可以使用单线程来实现,所以就使用了单线程。redis是C语言写的,官方提供的数据 100000+的QPS,完全不比同样是使用key-value的Memecache差!..
2022-08-14 15:40:18
311
原创 【redis】linux上安装、配置、启动
gcc 版本 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)redis-server redis.conf #启动服务。redis-cli #启动客服端。目标:x86_64-redhat-linux。将redis配置文件拷贝到安装目录中。使用内建 specs。线程模型:posix。
2022-08-14 15:37:16
176
原创 【docker打包】11.SpringBoot微服务打包docker镜像
服务器宕机,服务器重启后,docker自动启动并且自动运行服务。#表示docker容器在停止或服务器开机之后会自动重新启动。把镜像和DockerFile传到服务器上。# 关闭docker 服务开机自启动命令。# docker 服务开机自启动命令。......
2022-08-14 15:31:16
260
原创 【docker网络】8.--link
但tomcat02 ping tomcat01 却ping不通,需要在tomcat02里面配置一下和tomcat03的网络连接。--link 就是我们在hosts配置中增加了一个映射172.17.0.3 tomcat02 89ddafb0d96f。# 建立tomcat03和tomcat02之间的网络连接。可以连通容器之间的网络(只通过服务的名字)...
2022-08-13 20:29:59
165
原创 【docker网络】9.自定义网络
--subnet 192.168.0.0/16 子网 192.168.0.2 ~ 192.168.255.255。指定启动的容器走自己的网络(比docker0好用的多,不用--link也可以ping 名字)#我们直接启动的命令(默认参数) --net bridge,这个就是我们的docker0。#docker0特点,默认,域名不能访问,--link 可以打通连接。# --gateway 192.168.0.1 网关。...
2022-08-13 20:27:35
170
原创 【docker网络】7.网络连通
连通之后就是将tomcat01 放到了 mynet网络下(一个容器两个ip地址!把容器和别的网卡打通,(注:网卡之间是不能打通的)# 连通测试:tomcat01和mynet连通。# 类似于阿里云服务器(公网ip、内网ip)然后再ping一下,发现ping通了。#查看一下连通后的自己创建的网络。...
2022-08-13 20:22:47
123
原创 【dcoker网络】6.基础
所有容器不指定网络的情况下,都是docker0路由的,docker会给我们的容器分配一个默认的可用IP。# veth-pair 就是一对的虚拟设备接口,他们都是成对出现的,一段连接协议,一段彼此相连。·docker使用的是linux的桥接,宿主机中是一个Docker容器的网桥,dcoker0。# OpenStac、Docker容器之间的连接,OVS的连接都是用的veth-pair技术。# 正因为它的特性,我们可以用veth-pair充当一个桥梁,连接各种虚拟网络设备的。# 能不能ping通容器内的ip。..
2022-08-13 20:21:15
118
原创 【docker】5.DockerFile
例子docker run 镜像id -l(这个是追加命令)# Dockerfile 里面的 CMD 和 ENTRYPOINT 区别# ENTRYPOINT 可以追加命令# CMD 是替换掉命令。
2022-08-13 20:16:24
169
原创 【docker】4.初识dockerfile
容器之间配置信息的传递(集群的配置),容器卷容器的生命周期一直持续到没有容器使用为止。假设构建镜像时没有挂载卷,要手动镜像挂载 -v 卷名:容器内路径!这种方式我们未来使用的十分多,因为我们通常会构建自己的镜像。注意:其中停止的容器,再启动后还会同步其他容器的数据,非常的方便了。但是一旦你持久化到了本地,这个时候,本地的数据是不会删除的!停止或删除其中的容器,数据也还在,数据就很安全了(备份):-v 的时候,只写了容器内路径,没有写主机上的路径。:就是正常的2个路径全部写了,用" : "分割。...
2022-08-13 20:11:44
309
原创 【docker】3.挂载
sqlyog 连接到服务器3310端口,3310和容器内的3306映射过了。将数据持久化就不会丢失,这个技术就是一个数据共享的技术。如果数据都在容器中,那么我们容器删除,数据就会丢失!docker容器中的数据,同步到本地,目录的挂载。# 方式一:直接使用命令来挂载 -v。#安装启动mysql,需要配置密码的,这点需要注意。总结:容器的持久化和同步操作!--name 容器名字。...
2022-08-13 20:04:53
245
原创 【docker】2.命令
小结图:查看docker版本查看docker信息,client和server(包括容器里面哪个服务执行、暂停、停止)docker --help(docker 【命令】--help)docker里面所有的命令代码查看cpu和内存的情况。
2022-08-13 19:58:36
117
原创 【docker】 1.提交镜像
2.发现这个默认的tomcat是没有webapps应用的,镜像的原因,官方的镜像默认的webapps下面是没有文件的!# 4.将我们操作过的容器通过commit提交为一个镜像,我们以后就使用我们修改过的镜像即可。#如果你想保存当前容器的状态,就可以通过commit提交,获得一个镜像。docker commit 提交一个镜像成为一个新的副本。# 1.启动一个默认的comcat。# 3.自己拷贝进去了基本的文件。#命令与git原理类似。...
2022-08-13 19:44:04
527
原创 [ERROR] Fatal error compiling: 无效的目标发行版: 1.8.0_321
ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.7.0:compile (default-compile) on project demo: Fatal error compiling: 无效的目标发行版: 1.8.0_321 -> [Help 1]
2022-08-03 17:03:12
1289
原创 JAVA Queue队列:解析与实例用法
增*add增加一个元素如果队列满了,抛出IIIegaISlabEepeplian异常*offer增加一个元素并返回true如果队列满了,则返回false*put增加一个元素如果队列满了,则阻塞**删*remove移除并返回队列头部的元素如果队列为空,抛出NoSuchElementException异常*poll移除并返回队列头部的元素如果队列为空,返回null。...
2022-07-29 11:00:17
565
原创 AtomicInteger类
AtomicInteger类是系统底层保护的int类型,通过提供执行方法的控制进行值的原子操作。AtomicInteger它不能当作Integer来使用从JAVA1.5开始,AtomicInteger属于java.util.concurrent.atomic包下的一个类。
2022-07-29 10:14:49
431
原创 【docker】安装目录和镜像目录变更、更改
1.找出原始路径2.在需要安装的路径创建docker文件夹3.打开管理员命令行,建立两个文件夹的连接PSC为C\programTool\docker创建的符号链接PSC4.创建符号链接后,图一的Docker文件夹会出现快捷方式的标志,证明链接成功5.用安装文件安装docker6.安装完成后去你指定的docker文件中看,发现更改安装路径成功。httpshttpshttpshttps。...
2022-07-26 15:11:18
1979
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人