自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 多线程(一)

Thread 类是 Java 中用于表示线程的核心类。通过 Thread 类,可以创建新的线程,并控制线程的执行。线程可以通过继承 Thread 类或实现 Runnable 接口来定义。

2024-09-05 17:05:45 778 1

原创 Java并发类API——ScheduledExecutorService

ScheduledExecutorService 是 Java 中用于计划和执行定时任务的接口。它扩展了 ExecutorService 接口,专门用于调度在给定的延迟后运行的任务或定期执行的任务。ScheduledExecutorService 提供了更强大的控制能力和灵活性来处理定时任务,比传统的 Timer 和 TimerTask 更加可靠和高效。它是基于线程池的调度执行器,专门用于管理和执行并发任务。类ScheduledExecutorService的主要作用就是可以将定时任务与线程池功能结合使用。

2024-09-03 21:58:45 1054

原创 Java并发类API——ExecutorService

ExecutorService 是 Java 并发库中一个非常重要的接口,它提供了一种管理和控制线程执行的方法。ExecutorService 是 Executor 接口的扩展,除了 Executor 提供的基础任务执行功能之外,ExecutorService 提供了更强大的功能,如任务提交、任务调度、以及线程池管理等。1.1主要方法和功能1.任务提交• submit(Runnable task): 提交一个不带返回值的任务给线程池执行。

2024-08-21 22:54:28 933

原创 Java并发类API——CompletionService

CompletionService 是 Java 中 java.util.concurrent 包的一部分,用于管理并发任务的执行,并以完成的顺序提供结果。它结合了线程池和阻塞队列的功能,用于提交任务并按照任务完成的顺序来检索结果,而不是按照任务提交的顺序。接口CompletionService的功能是以异步的方式一边生产新的任务,一边处理已完成任务的结果,这样可以将执行任务与处理任务分离开来进行处理。使用submit执行任务,使用take取得已完成的任务,并按照完成这些任务的时间顺序处理它们的结果。

2024-08-18 23:09:05 871

原创 Java并发类API -- Future和Callable

你可以实现 RejectedExecutionHandler 接口来自定义拒绝策略。

2024-08-18 22:09:44 883

原创 安全HTTP——HTTPS

HTTPS安全技术讲解,首先介绍一些SSL和HTTPS用到的加密编码技术的知识,如数字加密、密钥加密、数字签名、数字证书;最后详细介绍了HTTPS安全传输的建立。

2024-08-15 22:42:52 1386

原创 HTTP的认证方式

文章讨论了8种HTTP认证方式,提供了对HTTP认证方式的深入解析,同时还探讨了不同认证方式的适用场景和安全性。

2024-08-15 11:28:52 1734

原创 Java并发类API--Executor与ThreadPoolExecutor

这些工具提供了一些便捷的方法来创建常见类型的线程池,如固定大小的线程池、单线程执行器和缓存线程池。对于简单的线程管理,Executor 或使用 Executors 工具类创建的线程池足够了。: 是一个更高级的实现,允许对线程池的大小、任务队列、线程超时、线程创建工厂等进行更详细的控制,适合需要高度自定义线程池行为的场景。• 我们创建了一个线程池,核心线程数为2,最大线程数为4,使用一个容量为2的阻塞队列来保存任务。这些工具类的简化了线程池的创建和管理,对于简单的线程管理场景,这些方法足够使用。

2024-08-13 22:54:34 855

原创 Java并发类的主要API方法-CountDownLatch和CyclicBarrier

CountDownLatch 是一个计数器,计数器的初始值由创建它时指定。每次调用 countDown() 方法时,计数器会减1,直到计数器值变为0时,所有调用 await() 的线程都会被唤醒继续执行。CyclicBarrier 是 Java 中另一个常用的同步辅助工具,它允许一组线程互相等待,直到所有线程都达到一个共同的屏障点(barrier)。

2024-08-13 22:24:12 702

原创 Java并发类的主要API方法-Semaphore

这个代码实现了一个简单的资源池管理系统,其中资源池 (ListPool) 中保存了一些可共享的资源(字符串),并通过并发控制工具 Semaphore 和 ReentrantLock 来控制多个线程对资源的并发访问。—— 如果不限制线程并发的数量,则CPU的资源很快就被耗尽,每个线程执行的任务是相当缓慢,因为CPU要把时间片分配给不同的线程对象,而且上下文切换也要耗时,最终造成系统运行效率大幅降低,所以限制并发线程的数量还是非常有必要的。如果没有可用的许可,则线程会被阻塞,直到有许可被释放为止。

2024-08-12 22:52:02 959

原创 SQL优化

但需要注意的是,不建议一次批量操作太多的数据,如果数据太多数据库响应也会很慢。因为ids太多,即使能快速查出数据,但如果返回的数据量太大了,网络传输也是非常消耗性能的,接口性能始终好不到哪里去。然后在代码中,获取第一个元素的数据,即首单的数据,就能获取首单时间。除非是有些特殊的场景,比如union all之后,结果集中出现了重复数据,而业务场景中是不允许产生重复数据的,这时可以使用union。mysql会查到1000020条数据,然后丢弃前面的1000000条,只查后面的20条数据,这个是非常浪费资源的。

2024-07-30 17:37:49 678

原创 API接口性能提升方法

有时候,只需加个索引就能解决问题。有时候,需要做代码重构。有时候,需要增加缓存。有时候,需要引入一些中间件,比如mq。有时候,需要需要分库分表。有时候,需要拆分服务。等等。导致接口性能问题的原因千奇百怪,不同的项目不同的接口,原因可能也不一样。本文总结了一些行之有效的,优化接口性能的办法,给有需要的朋友一个参考。

2024-07-26 17:04:16 753

原创 Dubbo调用的核心流程

服务注册与发现服务调用结果返回到这终于讲完了一次RPC请求在Dubbo中经历整个核心流程不知道你看完有什么感受这里我再来画一张图总结整个调用过程值得注意是,上面提到的所有调用环节,注意说的是所有,Dubbo都留了对应的扩展点。也就是说,小到一个Filter,大到整个通信协议你都可以进行自定义扩展。从这也可以看出,Dubbo在设计上的优秀之处。

2024-07-25 16:29:20 731

原创 Git 5 条提高效率的命令

本文主要分享了5个在开发中实用的 Git 命令和设置短命令的方式。stash:存储临时代码。:软回溯,回退 commit 的同时保留修改内容。:复制 commit。revert:撤销 commit 的修改内容。reflog:记录了 commit 的历史操作。文中列举的应用场景有部分不太恰当,只是想便于同学们理解,最重要的是要理解命令的作用是什么,活学活用才能发挥最大功效。

2024-07-25 10:51:05 1223

原创 阻止通过 socket 通信使用 Dubbo 命令

通过这些方法,你可以有效地阻止未经授权的 socket 通信访问 Dubbo 服务。在 Dubbo 的配置文件中设置权限控制,限制哪些 IP 地址可以访问 Dubbo 服务。在 Dubbo 服务端的代码中增加对 socket 通信的校验逻辑。例如,检查连接的客户端 IP 地址,或添加简单的认证机制。配置防火墙规则,限制对 Dubbo 服务端口的访问。为 Dubbo 服务增加认证机制,只有通过认证的请求才能执行命令。在 Dubbo 服务接口中添加一个简单的认证 token。假设使用的是 Linux 系统的。

2024-06-25 21:13:46 281

原创 设备绑定关系设计实现

在以上代码中,checkPhoneCanBindDevice()方法用于判断一个手机号是否可以绑定一个设备,而checkDeviceCanBindPhone()方法则用于判断一个设备是否可以绑定一个手机号。手机号与设备号绑定关系的设计与实现:要求一个手机号最多允许与3个设备绑定,一个设备最多允许5个手机号使用。针对手机号和设备号的绑定关系,可以设计两张表:一个是"device"表,用于存储设备信息和绑定的手机号;以下是Java代码示例,用于判断一个手机号最多绑定3个设备,一个设备最多被5个手机号绑定。

2023-04-07 10:51:04 220

原创 openAI系列产品-Copilot

openAI系列产品介绍-Copilot

2023-04-04 14:18:56 936

转载 大表建立索引的注意事项

对一大表(百万级以上)建立索引时应当注意的事项及提高性能的手段一、注意事项:1、表空间和磁盘空间是否足够。索引也是一种数据,在建立索引的时候势必也会占用大量表空间。因此在对一大表建立索引的时候首先应当考虑的是空间容量问题。2、在对建立索引的时候要对表进行加锁,因此应当注意操作在业务空闲的时候进行。二、性能调整方面:1、磁盘I/O物理上

2018-01-19 17:15:12 3567

原创 spring事务管理

1.事务管理器和dao的关系    事务管理是保证数据操作的事务性(原子性、一致性、隔离性、持久性),脱离了事物操作,dao照样可以进行数据操作。

2017-09-12 16:53:07 289

原创 测试mapper的工作

package cn.com.cmbc.crud.test;import cn.com.cmbc.crud.bean.Department;import cn.com.cmbc.crud.bean.Employee;import cn.com.cmbc.crud.dao.DepartmentMapper;import cn.com.cmbc.crud.dao.EmployeeMapper

2017-09-12 14:35:46 1628

原创 mybatis generator

mbg.xml:xml version="1.0" encoding="UTF-8"?>generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-c

2017-09-12 14:31:06 267

原创 分页

pom.xml:: com.github.pagehelper pagehelper 5.0.0mybatis-config.xml: interceptor="com.github.pagehelper.PageInterceptor"> name="reasonable" value="true"/> cint

2017-09-12 14:13:47 128

原创 集群与负载均衡

集群是一组协同工作的服务实体。当客户请求到来时,集群内部的负载均衡器会比较均衡的把很多客户的请求分布到集群环境下的计算和网络资源,也就是说,负载均衡是集群的一个重要特性。集群的另外一个特性就是错误恢复的能力,当一个实体中的资源不能工作,另一个实体中的资源透明的继续完成任务的过程叫做错误恢复。集群实体间通过内部的通信网交流信息,这种交流机制一般采用组播协议。支持集群必须保证客户的会话信息是一样的

2017-09-11 10:12:56 287

原创 servlet过滤器和servlet监听器

过滤器使得servlet开发者能够在请求达到servlet之前截获请求,在servlet处理请求之后修改应答。servlet监听器可以监听客户端的请求、服务器的操作,通过监听器可以激发一些操作。如在线监听用户数量。一个过滤器可以被关联到任意多个资源,一个资源也可以关联到任意多个过滤器。实现一个过滤器:Filter 接口含有三个必须执行的方法:Init, dofilter, destro

2017-09-11 10:08:39 350

转载 拦截器、过滤器区别

一、拦截器概念:拦截器,在AOP(Aspect-Oriented Programming)中用于在某个方法或字段被访问之前,进行拦截然后在之前或之后加入某些操作。拦截是AOP的一种实现策略。拦截器是动态拦截Action调用的对象,开发者可以定义在一个action执行的前后执行的代码,也可以在一个action执行前阻止其执行。同时也是提供了一种可以提取action中可重用的部分的方式

2017-08-29 10:00:06 220

原创 Mapper测试;类报错,和分页相关

如果Mybatis-congfig配置文件中有分页配置: -->那么在pom中必须有相应依赖: com.github.pagehelper pagehelper 5.0.0 -->否则,会使Mapper测试类:@RunWith(SpringJUnit4ClassRunne

2017-08-27 19:07:52 487

原创 springMVC mybatis 数据库sql查询有值 但java返回为空

一开始数据库表字段命名和实体属性命名一致,后来改为不一致,在mapper映射中采用 select as 的写法,就把问题解决了。

2017-08-13 23:37:32 2710

空空如也

空空如也

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

TA关注的人

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