![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
红豆和绿豆
这个作者很懒,什么都没留下…
展开
-
IO多路复用的原理以及高性能的实现
2、实现上面的这个网络的模型,可以学习netty,里面封装了IO多路复用。1、Scalable IO in Java--原理。原创 2024-07-11 23:52:16 · 87 阅读 · 0 评论 -
IO模型理论学习
1、什么是IO计算机视角下的ioAIO。原创 2024-07-11 23:46:42 · 263 阅读 · 0 评论 -
jdk中自带的并发类
countDownLaunch:等待所有线程都完成,主线程在执行。CyclicBarrirer 内存屏障。exchanger 线程之间交换数据。1、seamplore 信号量。phaser 阶段协同器。原创 2024-07-10 23:35:56 · 187 阅读 · 0 评论 -
java中的线程
主要是为了可见性能,cpu每次执行缓存行 是64个字节,一个long是8个字节,因此定义7个long占满缓存行,这样就不会因为其他的字节变化导致替换缓存行了。4.1原子性:保证多线程同时访问成员变量时候,并发出现问题;可见性:就是要保证cpu在执行线程中获取的数据与jvm主内存中数据是一致性的。CAS是一种自旋锁方式,优点就是可以不释放cpu,不做线程上下文切换。缺点:cpu一直在执行,浪费cpu。还可以出现aba的问题,可以是用版本的方式进行控制。3、sleep和wait的区别。4、并发编程的三大特点。原创 2024-07-07 21:48:57 · 194 阅读 · 0 评论 -
java中AQS的原理
获取锁,cas获取锁,如果获取锁失败,那么则加入队列,加入队列之后,通过再次自旋获取锁,还是获取不到,那么则进行阻塞。那么就根据双向链表中的waitStatus,0,-1,1。在了解AQS之后,对于线程池中的Worker实现aqs的tryAcquire,tryRelease方法 实现锁不能重入。以及一个work线程在操作的时候 可能会被中断,因此使用同步阻塞的方式进行阻塞,阻塞之后使用队列的方式进行唤醒,或者回收。CAS的原理,就是使用操作系统的一个原子操作保证对一个字段更新的原子性。原创 2024-07-07 00:26:34 · 213 阅读 · 0 评论 -
java线程池的使用
/ThreadPoolExecutor.DiscardOldestPolicy 丢弃执行队列最老的任务,尝试为当前提交的任务腾出空间。// ThreadPoolExecutor.CallerRunsPolicy 直接有提交任务这执行这个任务。//向线程池提交的2种类型的任务 Runnable,Callable。//创建一个不限线程上限的线程池,任何提交的任务度可以立刻执行。//创建只有1个线程的线程池。//创建固定大小的线程池。//线程池的工作顺序。//线程池的拒绝策略。原创 2024-07-02 07:49:02 · 354 阅读 · 0 评论 -
java学习资料
SonarQube:通过插件集成分析组件,提供评估最终报告。checkstyle:对编程规范和标准进行静态分析。findbugs:通过字节码静态分析找出潜在bug。GO:thoughtWork开源持续集成方案。Bamboo Atlassian的继续集成。Travis:提供托管服务,常用于开源。pmd:对源代码不良编程习惯进行分析。asm:通用底层字节码操作以及分析。javasisit:简化字节码编辑。Jenkins:基于服务器部署服务。CircleCI :托管服务。Codeship:托管服务。原创 2024-06-28 08:45:10 · 278 阅读 · 0 评论 -
ittools工具箱自己搭建
【好用的个人工具】搭建一款实用的个人IT工具箱——it-tools-CSDN博客转载 2024-06-04 08:33:47 · 28 阅读 · 0 评论 -
java实现将HSL转换为RGB
package com.example.scheduler.util;import java.awt.*;public class HsfUtil { public static Color toRGB(float h,float s,float l){ return toRGB(h,s,l,1.0f); } private static Color toRGB(float h, float s, float l, float alpha) { .原创 2021-09-10 08:46:18 · 38 阅读 · 0 评论 -
javaagent一般使用在哪些软件中
目前java中支持java1.5 必须使用premain的方式-javaagent方式进行实现,启动的时候静态加载。1、arthas是一款jvm的诊断软件,其中使用了类加载器、agent代理方式,源码值得研究一下。后来1.6的时候,支持动态加载。2、chaosblade 故障注入平台。原创 2024-03-31 19:26:14 · 185 阅读 · 0 评论 -
数据结构与算法之美
其实在实际的工作当中,一直在使用数据结构,算法到是很少在使用,看过王峥同学的极客的课程,还是有所收获的,个人觉得还是比较值得的。由于不能引导广告,就是这次记录一下,花钱学习还是值得的。原创 2024-03-31 18:30:42 · 107 阅读 · 0 评论 -
网络数据包的构建疑问
只是需要三次握手,三次握手需要先经过网络传输,建立连接之后,然后在发送应用程序的数据包,这样每次在发送数据的时候,都是由网络设备和路由器进行处理的,不是由操作系统发起的多次网络请求。1、构建数据包的过程中,应用程序需要向操作系统发起网络请求,操作系统调用网络协议栈,封装成应用程序要发送的数据,然后通过网络接口发送出去。数据包的构建是在本地进行的,并不需要发起多次网络请求。原创 2023-08-24 23:31:43 · 56 阅读 · 0 评论 -
如何解析很大的excel文件
如果面对这个问题使用springmvc的方式文件上传组件,然后使用流读取,然后使用esxyexcel开源方式进行读取,全部读取之后然后在处理。目前处理过上传30w的文件,但是最好不要多列,如何建立文件id和文件明细也是比较重要的,可以先把文件id落下,以及把数据写到公司内部文件系统,然后在慢慢解析,或者,解析的过程中,将数据写入到数据库,但是这个有点慢。总之 easyexcel真的是比较好用的。原创 2023-08-17 15:00:42 · 50 阅读 · 0 评论 -
如何实现链接的通用
链接参数自动替换原创 2023-06-23 08:11:52 · 72 阅读 · 0 评论 -
如何使用类加载器进行业务开发
类加载器原创 2023-02-10 20:43:52 · 125 阅读 · 0 评论 -
配置中心的简单实现
配置系统原创 2023-02-10 20:36:52 · 223 阅读 · 0 评论 -
流水可重试回滚框架
ss原创 2023-02-10 20:24:18 · 181 阅读 · 0 评论 -
简易数据库连接池子实现
数据库连接池原创 2023-02-08 21:43:12 · 153 阅读 · 0 评论 -
基于顺序日志kv数据库实现
kv数据库原创 2023-02-08 21:39:01 · 93 阅读 · 0 评论 -
简单网关demo
代理原创 2022-12-23 17:18:57 · 314 阅读 · 0 评论 -
通用http的请求访问
http原创 2022-12-22 22:32:56 · 198 阅读 · 0 评论 -
html代码如何转换为一个图片
截图原创 2022-09-02 08:38:18 · 1286 阅读 · 0 评论 -
如何在一个工具的类中注入Spring的bean
静态方法注入springbean原创 2022-04-12 21:48:12 · 730 阅读 · 0 评论 -
简单的使用google的EventBus观察者设计模式
eventbus原创 2022-04-12 21:38:38 · 602 阅读 · 0 评论 -
如何使用groovy脚本
groovy原创 2022-03-14 21:52:36 · 284 阅读 · 0 评论 -
事物与异步线程的问题
@Transaction注解在方法上,导致整个方法都在事物内部有一个逻辑 就是在这个方法内部,先delete数据库表中的数据,然后在启动异步线程,内部去查询当前数据库表中的数据是否存在,由于数据库事务还没有提交,导致 异步线程在查询的时候,就会出现脏数据,导致异步线程中业务逻辑出现问题。问题二:在服务端使用异步线程执行是有问题的,如果服务器重启,就会导致异步线程生效,导致异步线程的逻辑执行中断。所以应该落任务,然后在使用定时任务执行任务。保证业务逻辑执行...原创 2021-12-11 23:47:24 · 1448 阅读 · 0 评论 -
mybatis批量查询1w数据需要10s
(1)mybatis批量插入的写法<insert id="insertAccountabilityUsers" parameterType="AccountabilityUsersModel" useGeneratedKeys="false"> INSERT INTO accountability_users ( accountability_user_id, accountability_id, to_username,原创 2021-11-06 13:07:18 · 1134 阅读 · 0 评论 -
ThreadPoolExecutor如果用做局部变量会有问题吗
(1)如果创建一个ThreadPoolExecutor的局部变量 创建几个核心线程数,如果不使用shutdown,那么线程池是不会被gc进行回收的(2)如果想要gc回收线程池,以及对应的线程,那么需要使用shutdown还是建议使用成员变量线程池,不同的业务共享线程...原创 2021-10-30 13:22:55 · 390 阅读 · 0 评论 -
Spring如何接入多数据源进行配置
@Configuration@MapperScan(basePackage={},sqlSessionFactoryRef="asqlSessionFactory"sqlSessionTemplateRef="aSqlSessionTemplate")public class ADataSourceConfiguration(){@Bean(name="aDataSource")@ConfigurationProperties(prefix="spring.datas...原创 2021-10-10 14:42:36 · 419 阅读 · 0 评论 -
CompletableFuture踩坑
简单记录一个基本的问题private List<String> fetchResult(List<String> request){...........}List<String> ids=new ArrayList<String>();//假设有10w个List<List<String>> patitionList=Lists.partition(ids,100);List<String> resu原创 2021-10-10 14:31:19 · 1018 阅读 · 0 评论 -
zookeeper学习
下载安装单机zookeeper的serverzookeeper的操作zookeeper的数据结构服务端常用命令客户端常用命令临时节点,客户端关闭,服务端创建的节点则会删除不能重复创建节点不能删除带子节点的ZNodejavaAPI操作Zookeeper的节点操作curator的增删改查连接基本操作package curator;import org.apache.curator....原创 2021-08-03 21:14:58 · 416 阅读 · 1 评论 -
java网络编程netty实现rpc
常见的rpc框架流程基本rpc实现流程基于Spring版本https://my.oschina.net/huangyong/blog/361751https://www.cnblogs.com/luxiaoxun/p/5272384.html?spm=ata.13261165.0.0.190a1c7bi0WmY0具体的代码就不贴了具体涉及到:netty的rpc,注册中心,编码和解码,动态代理 ,协议定义...原创 2021-07-31 19:29:51 · 158 阅读 · 0 评论 -
java网络编程netty的tcp粘包和拆包
tcp出现粘包和拆包的一个基本的demopackage io.netty.tcp;import io.netty.channel.ChannelInitializer;import io.netty.channel.ChannelPipeline;import io.netty.channel.socket.SocketChannel;public class MyServerInitializer extends ChannelInitializer<SocketChan...原创 2021-07-31 18:49:27 · 519 阅读 · 0 评论 -
java网络编程netty的编码与解码
package io.netty.inboundAndoutboundHandler;import io.netty.buffer.ByteBuf;import io.netty.channel.ChannelHandlerContext;import io.netty.handler.codec.ByteToMessageDecoder;import java.util.List;public class MyByteToLongDecoder extends ByteToMessage.原创 2021-07-31 12:46:07 · 376 阅读 · 0 评论 -
java网络编程NIO之protobuf
针对prototobuf的操作(1)引入protobuf的mvn配置<dependency><groupId>com.google.protobuf</groupId><artifactId>protobuf-java</artifactId><version>2.6.1</version></dependency>(2)编写*.proto文件syntax="proto3";//原创 2021-07-29 17:49:27 · 205 阅读 · 0 评论 -
java网络编程NIO的websocket长链接
import io.netty.bootstrap.ServerBootstrap;import io.netty.channel.ChannelFuture;import io.netty.channel.ChannelInitializer;import io.netty.channel.ChannelPipeline;import io.netty.channel.EventLoopGroup;import io.netty.channel.nio.NioEventLoopGroup;..原创 2021-07-29 16:25:02 · 490 阅读 · 0 评论 -
java网络编程NIO的心跳检测
import io.netty.bootstrap.ServerBootstrap;import io.netty.channel.ChannelFuture;import io.netty.channel.ChannelInitializer;import io.netty.channel.EventLoopGroup;import io.netty.channel.nio.NioEventLoopGroup;import io.netty.channel.socket.SocketCha...原创 2021-07-29 11:45:27 · 554 阅读 · 0 评论 -
java网络编程netty实现群聊
package io.netty.groupchat;import io.netty.bootstrap.ServerBootstrap;import io.netty.channel.*;import io.netty.channel.nio.NioEventLoopGroup;import io.netty.channel.socket.SocketChannel;import io.netty.channel.socket.nio.NioServerSocketChannel;impo.原创 2021-07-27 09:41:36 · 206 阅读 · 0 评论 -
java网络编程netty的api
package io.netty.buf;import io.netty.buffer.ByteBuf;import io.netty.buffer.Unpooled;import io.netty.util.CharsetUtil;import java.nio.charset.Charset;public class NettyByteBufTest { public static void main(String[] args) { ...原创 2021-07-26 19:04:57 · 196 阅读 · 0 评论 -
java网络编程netty实现接收http请求
package io.netty.http;import io.netty.bootstrap.ServerBootstrap;import io.netty.channel.ChannelFuture;import io.netty.channel.EventLoopGroup;import io.netty.channel.nio.NioEventLoopGroup;import io.netty.channel.socket.nio.NioServerSocketChannel;pu.原创 2021-07-26 18:25:29 · 1564 阅读 · 0 评论