JAVA
文章平均质量分 87
Michael_lcf
向阳而生、随心而动。你对我的百般注解,并不构成万分之一的我,却是一览无余的你。
展开
-
Java并发编程三大神器之Semaphore
1、Semaphore是什么2、Semaphore小试牛刀3、Semaphore和CountDownLatch组合使用4、Semaphore常用方法5、Semaphore 结语原创 2024-06-15 23:52:28 · 867 阅读 · 2 评论 -
Java并发编程三大神器之CyclicBarrier
1、CyclicBarrier是什么2、CyclicBarrier小试牛刀3、CyclicBarrier源码分析4、CountDownLatch和CyclicBarrier对比总结原创 2024-06-15 21:08:15 · 592 阅读 · 0 评论 -
Java并发编程三大神器之CountDownLatch
1、CountDownLatch是什么2、官网应用demo2.1、CountDownLatch 官网demo12.2、CountDownLatch 官网demo23、开发中的应用小栗子3.1、栗子1:【多个线程等待】模拟并发,让并发线程一起执行3.2、栗子2:【单个线程等待】多个线程(任务)完成后,进行汇总合并4、CountDownLatch 实现原理5、CountDownLatch 结语原创 2024-06-15 21:02:16 · 857 阅读 · 0 评论 -
Tomcat同时支持http及https
1、Tomcat同时支持http及https2、Springboot同时支持http及https原创 2024-05-07 11:13:02 · 396 阅读 · 0 评论 -
java中的日期
1、Java中的Date、LocalDate、LocalDateTime互相转换2、Java中的Date、LocalDate、LocalDateTime比较大小原创 2024-04-17 11:29:53 · 330 阅读 · 0 评论 -
Tomcat管理配置
Tomcat管理配置1 host-manager项目2 manager项目原创 2024-04-06 17:15:10 · 541 阅读 · 0 评论 -
01Tomcat工作原理
1、服务器分类2、TCP 协议3、Http 协议4 Tomcat 架构介绍5、Tomcat 组件介绍6、Tomcat 处理请求过程7、Tomcat启动流程原创 2024-04-06 11:09:32 · 695 阅读 · 0 评论 -
java线程监控实践
Attach Listener 线程接收到命令后,会交给 Signal Dispatcher 线程去进行分发到各个不同的模块处理命令,并且返回处理结果。注意:Attach Listener、Signal Dispatcher线程在jvm启动的时候若没有初始化,那么则会在用户第一次执行jvm命令时启动这两个线程。虽然我们只执行了一个main函数的单线程程序,但JVM会启动一些额外的线程,主要包括:Attach Listener。:负责接收外部JVM的命令,而对该命令进行执行的,并且把结果返回给发送者。原创 2024-03-31 21:25:20 · 905 阅读 · 0 评论 -
线程池ThreadPoolExecutor
1、线程池的好处2、Executor 框架3、ThreadPoolExecutor实践4、jdk提供的几种常见线程池5、ScheduledThreadPoolExecutor实践6、线程池大小确定原创 2024-03-01 21:48:32 · 1118 阅读 · 1 评论 -
SpringSecurity实践01_快速入门
我们可以通过Debug查看当前系统中SpringSecurity过滤器链中有哪些过滤器及它们的顺序。原创 2024-02-27 23:10:17 · 398 阅读 · 0 评论 -
java中的线程中断
1、线程中断 即 线程的取消/关闭的机制2、线程对中断interrupt()的反应2.1、RUNNABLE:线程在运行或具备运行条件只是在等待操作系统调度2.2、WAITING/TIMED_WAITING:线程在等待某个条件或超时2.3、BLOCKED:线程在等待锁,试图进入同步块2.4、NEW/TERMINATED:线程还未启动或已结束2.5、IO操作3、关于中断的经验原创 2023-09-05 11:16:27 · 581 阅读 · 2 评论 -
SpringBoot扩展接口总结
1、可扩展接口启动调用概述2、可扩展的点逐个说明3、写在最后原创 2023-08-22 14:15:55 · 300 阅读 · 0 评论 -
Tomcat线程实践
请注意,以上方法都需要对Tomcat实例有一定的访问权限。另外,如果您的Tomcat实例配置了多个连接器,则需要相应地更改命令中的端口号。jstat命令可以用于监视Java虚拟机(JVM)统计信息。是采样间隔(以毫秒为单位)。此命令将返回包括活动连接数在内的多个JVM统计信息。是Tomcat进程的PID。原创 2023-06-09 17:36:24 · 2550 阅读 · 0 评论 -
Java并发协同工具类【锁】
Java并发协作工具【锁】1、可重入锁 ReentrantLock2、读写锁 ReentrantReadWriteLock3、信号量 Semaphore4、倒计时门栓 CountDownLatch5、循环栅栏 CyclicBarrier原创 2023-05-12 21:13:41 · 80 阅读 · 0 评论 -
SpringSecurity和OAuth2认证授权流程
1、SpringSecurity认证授权流程1.1、SpringSecurity认证流程1.2、SpringSecurity授权流程2、SpringSecurityOAuth2认证授权流程2.1、SpringSecurityOAuth2认证流程2.2、刷新token(refresh_token)的流程2.3、SpringSecurityOAuth2授权流程原创 2023-04-24 07:33:13 · 3018 阅读 · 0 评论 -
SpringSecurityOAuth2常用类
AbstractAuthenticationProcessingFilterUsernamePasswordAuthenticationFilterClientCredentialsTokenEndpointFilterOAuth2ClientAuthenticationProcessingFilterOAuth2AuthenticationProcessingFilter原创 2023-04-23 19:58:28 · 113 阅读 · 0 评论 -
第5章 GC日志具体分析篇
工具很强大,但只能打开由以下参数生成的 GC log。HPjmeter集成了以前的HPjtune功能,可以分析在HP机器上产生的垃圾回收日志文件。原创 2023-03-16 23:52:23 · 504 阅读 · 0 评论 -
第3章 JVM监控及诊断工具_GUI篇
01-工具概述02-jConsole03-Visual VM04-eclipse MAT补充1:再谈内存泄漏补充2: 支持使用OQL语言查询对象信息05-JProfiler06-Arthas07-Java Mission Control08-其它工具原创 2023-03-16 23:53:17 · 488 阅读 · 0 评论 -
第4章 JVM运行时参数篇
特点:1、非标准化参数。2、功能还是比较稳定的,但官方说后续版本可能会变更。:混合模式,默认模式,让JIT根据程序运行的情况,有选择地将某些代码编译成本地代码。:设置 Java 线程堆栈大小,一般默认为512k~1024k。:禁用JIT,所有字节码都被解释执行,这个模式的速度最慢的。:设置初始 Java 堆大小,默认物理内存1/64。:设置最大 Java 堆大小,默认为物理内存1/4。:所有字节码第一次使用就都被编译成本地代码,然后再执行。特点:比较稳定、后续版本基本不会变化。可以看到所有的X选项。原创 2023-03-16 23:50:12 · 537 阅读 · 0 评论 -
第2章 JVM监控及诊断工具_COMMAND篇
1 最前面的小尾巴2 jps 查看正在运行的Java进程3 jstat 查看JVM统计信息4 jinfo 实时查看和修改JVM配置参数5 jmap 导出内存像文件&内存使用情况6 jhat JDK自带堆分析工具7 jstack 打印JVM中线程快照8 jcmd 多功能命令行9 jstatd 远程主机信息收集原创 2023-03-16 23:41:38 · 542 阅读 · 0 评论 -
第1章 JVM调优前言篇
1 大厂面试题2 背景说明2.1 生产环境中的问题2.2 为什么要调优?2.3 不同阶段的考虑3 调优概述3.1 监控的依据3.2 调优的大方向4 性能优化的步骤4.1 第1步(发现问题):性能监控4.2 第2步(排查问题):性能分析4.3 第3步(解决问题):性能调优5 性能评价/测试指标5.1 `响应时间(或停顿时间)`5.2 `吞吐量`5.3 并发数5.4 内存占用5.5 相互间的关系原创 2023-03-16 22:17:48 · 471 阅读 · 0 评论 -
短信链接跳转微信小程序
1 实现方案1.1 通过URL Scheme实现1.2 通过URL Link实现1.3 通过云开发静态网站实现2 实现方案对比3 实践 URL Schema 方案3.1 获取微信access_token3.2 获取openlink3.3 H5页面(模拟短信跳转,验证ok)4 反馈问题4.1 ios和Android 对URLSchema兼容性4.2 URL Schema官方变更2022年4月11日4.2.1 调用上限及有效期4.2.2 一个urlSchema只能一个用户访问原创 2023-02-14 18:19:47 · 5277 阅读 · 16 评论 -
分布式事务(1)基本概念
1. 事务基础概念1.1.什么是事务1.2.本地事务1.3.分布式事务1.4 分布式事务产生的场景2.分布式事务基础理论2.1.CAP理论2.1.1.理解CAPC - Consistency:A - Availability :P - Partition tolerance :2.1.2. CAP组合方式2.1.3 总结2.2.BASE理论原创 2019-02-01 17:28:31 · 831 阅读 · 2 评论 -
分布式事务(2)两阶段提交
1.什么是2PC(两阶段提交)2.解决方案2.1 XA方案2.2 Seata方案3.seata实现2PC事务4.2PC解决方案小结原创 2023-02-08 11:09:42 · 1134 阅读 · 0 评论 -
分布式事务(5)最大努力通知
1 最大努力通知的概念2 最大努力通知与可靠消息一致性区别?3 解决方案分析4 RocketMQ最大努力通知型事务4.1 业务说明4.2 程序组成部分4.3 项目源码4.4 测试场景5 最大努力通知小结原创 2023-02-08 11:30:18 · 1301 阅读 · 0 评论 -
分布式事务(4)可靠消息最终一致性
1 可靠消息最终一致性事务的基本概念2 问题产生分析2.1 本地事务与消息发送的原子性问题2.2 事务参与方接收消息的可靠性2.3 消息重复消费的问题3 解决方案3.1 本地消息表方案3.2 RocketMQ事务消息方案4 RocketMQ实现可靠消息最终一致性事务 demo4.1 demo组成说明4.2 创建数据库5.3.4.启动RocketMQ3.3.5 导入distribution-tx5.3.8 测试场景4.2 小结5 可靠消息最终一致性事务应用场景原创 2023-02-08 11:28:47 · 1065 阅读 · 0 评论 -
分布式事务(3)TCC方案
分布式事务(3)TCC原创 2023-02-08 11:27:47 · 760 阅读 · 0 评论 -
Jenkins一站成魔【2】传统项目CI/CD
1、Jenkins项目构建类型 1.1、构建的项目类型 1.2、自由风格项目构建 1.3、Maven项目构建 1.4、Pipeline流水线项目构建 2、Jenkins项目构建细节 2.1、常用的构建触发器 2.2、Git hook自动触发构建 2.3、Jenkins的参数化构建 2.4、配置邮箱服务器发送构建结果 3、Jenkins+SonarQube代码审查 3.1、安装SonarQube 3.2、实现代码审查原创 2022-11-15 00:06:41 · 2146 阅读 · 0 评论 -
Activiti7
Activiti数据库支持:所有表以ACT_开头。 第二部分是表示表的用途的两个字母标识。 用途和服务的API对应。ACT_GE_* : 通用数据, 用于不同场景下,如存放资源文件。ACT_HI_* : HI 表history。 这些表包含历史数据,比如历史流程实例, 变量,任务等等。ACT_RE_* : RE 表repository。 这个前缀的表包含了流程定义和流程静态资源 (图片,规则,等等)。ACT_RU_* : RU 表runtime。 这些运行时的表,包含流程实例,任务,变量,异步任务原创 2019-07-04 08:01:52 · 1748 阅读 · 1 评论 -
服务器分类
塔式服务器机架式服务器刀片服务器原创 2019-02-08 20:43:07 · 449 阅读 · 0 评论 -
git基本使用
1.安装先从Git官网下载源码,然后解压,依次输入:./configmakesudo make install2.配置$ git config --global user.name "Your Name"$ git config --global user.email "email@example.com"...原创 2019-07-09 11:53:45 · 1371 阅读 · 1 评论 -
svn安装及使用
Apache Subversion 通常被缩写成 SVN,是一个开放源代码的版本控制系统.repository(源代码库):源代码统一存放的地方;Checkout(提取):当你手上没有源代码的时候,你需要从repository checkout一份;Commit(提交):当你已经修改了代码,你就需要Commit到repository;Update (更新):当你已经Checkout了一份...原创 2019-02-11 11:32:08 · 1188 阅读 · 0 评论 -
CentOS6.8安装Consul记录
server1consul agent -server -bootstrap-expect=3 -advertise-wan=123.57.215.66 -data-dir=/tmp/consul-data/ -node=server1 -bind=192.168.1.101 -ui -client=0.0.0.0 -advertise=123.57.215.66server2cons...原创 2019-08-14 19:52:13 · 424 阅读 · 0 评论 -
consul配置参数详解
官方文档https://learn.hashicorp.com/consul/https://learn.hashicorp.com/consul/getting-started/install下载consulhttps://releases.hashicorp.com/consul/1.5.1/consul_1.5.1_linux_amd64.zip解压unzip配置环境变量ex...原创 2019-06-18 17:20:30 · 3415 阅读 · 0 评论 -
分布式缓存问题
1 缓存失效问题1.1 缓存穿透1.2 缓存雪崩1.3 缓存击穿2 分布式锁解决方案2.1 redisson原创 2021-12-31 11:37:36 · 236 阅读 · 0 评论 -
redis之基本使用
(该端口用于集群总线,即使用二进制协议的节点到节点通信通道。客户端永远不应尝试与群集总线端口通信,但始终使用正常的Redis命令端口,但请确保在防火墙中打开两个端口,否则Redis群集节点将无法通信。Redis Cluster不使用一致的散列,而是使用不同形式的分片,其中每个键在概念上都是我们称之为散列槽的一部分。Redis集群中有16384个散列槽,为了计算给定密钥的散列槽,我们只需采用密钥模数16384的CRC16。2、Master接到命令启动后台的存盘进程,同时收集所有接收到的用于修改数据集命令,原创 2019-01-16 17:34:49 · 618 阅读 · 0 评论 -
三、SpringMVC之用
看透spring MVC 源代码分析与实践 学习记录原创 2019-06-06 07:40:51 · 145 阅读 · 0 评论 -
二、创建SpringMVC之器
javax.servlet.Servlet.init(ServletConfig)javax.servlet.GenericServlet.init(ServletConfig)org.springframework.web.servlet.HttpServletBean.init()原创 2019-06-06 22:56:48 · 122 阅读 · 0 评论 -
《看透SpringMVC源代码分析与实践》学习笔记
俯视SpringMVC一、SpringMVC初体验待更新二、创建SpringMVC之器学习中三、SpringMVC之用学习中SpringMVC组件分析一、SpringMVC组件概览原创 2019-06-06 23:09:24 · 159 阅读 · 0 评论 -
@Import、@ImportSource、@PropertySource、
@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @interface Import { Class<?>[] value();}@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Documented@Import({ZipkinServerConfiguration.class, BraveCon原创 2020-06-10 10:16:55 · 580 阅读 · 0 评论