随笔分类 -  JAVA

摘要:出处: Java并发工具类之LongAdder原理总结 LongAdder实现原理图 高并发下N多线程同时去操作一个变量会造成大量线程CAS失败,然后处于自旋状态,导致严重浪费CPU资源,降低了并发性。既然AtomicLong性能问题是由于过多线程同时去竞争同一个变量的更新而降低的,那么如果把一个变 阅读全文
posted @ 2024-04-23 18:08 一人一见 阅读(1453) 评论(0) 推荐(0)
摘要:问题分析:Lock wait timeout exceeded; try restarting transaction问题解析 一、mysql死锁及超时的原因 当在业务逻辑中看到这个错误,或者mysql中使用update语句更新数据报错: Lock wait timeout exceeded; tr 阅读全文
posted @ 2023-10-27 00:44 一人一见 阅读(2631) 评论(0) 推荐(0)
摘要:#!/bin/bashjarName=${1}echo "开始操作${jarName}"pid=`ps -aux |grep ${jarName} | grep -v grep | grep -v restart.sh | awk '{print $2}'`if [ ! "$pid" ];thene 阅读全文
posted @ 2023-10-12 09:44 一人一见
摘要:场景开发中经常遇到,把父类的属性拷贝到子类中。通常有2种方法:1、一个一个set2、用BeanUtils.copyProperties很显然BeanUtils更加方便,也美观很多。那么任何情况都能使用BeanUtils么,当然不是。要先了解他。 BeanUtils是深拷贝,还是浅拷贝? 是浅拷贝。浅 阅读全文
posted @ 2023-08-13 18:24 一人一见 阅读(1060) 评论(0) 推荐(0)
摘要:原文: 1 问题背景前面用sql语句演示了MySQL锁导致的现象,从现象去认知了MySQL锁到底是怎么样的。在本博客MySQL高级系列的文章中也有研究过InnoDB引擎的架构。今天来串联一下InnoDB引擎的架构以及MySQL事务、MySQL锁的知识。 参考自:MySQL事务ACID实现原理 2 事 阅读全文
posted @ 2023-07-12 01:24 一人一见
摘要:1 什么是QPS: QPS是每秒钟处理完请求的次数。这里的请求不是指一个查询或者数据库查询,是包括一个业务逻辑的整个流程,也就是说每秒钟响应的请求次数。 2 什么是响应时间(RT): 响应时间即RT,处理一次请求所需要的平均处理时间。对于RT,客户端和服务端是大不相同的,因为请求从客户端到服务端,需 阅读全文
posted @ 2023-03-18 18:13 一人一见 阅读(574) 评论(0) 推荐(0)
摘要:应用架构的本质 什么是架构?十个人可能有十个回答,架构在技术的语境下,就和架构师一样魔幻。我曾经看过一本技术书,用了一章的篇幅讨论架构的定义,最终也没有说明白。 实际上,定义架构也没那么难,如下图所示,架构的本质,简单来说,就是要素结构。所谓的要素(Components)是指架构中的主要元素,结构是 阅读全文
posted @ 2021-09-09 14:39 一人一见 阅读(2005) 评论(0) 推荐(0)
摘要:s原文 CPU 磁盘 内存 GC问题 网络 线上故障主要会包括cpu、磁盘、内存以及网络问题,而大多数故障可能会包含不止一个层面的问题,所以进行排查时候尽量四个方面依次排查一遍。 同时例如jstack、jmap等工具也是不囿于一个方面的问题的,基本上出问题就是df、free、top 三连,然后依次j 阅读全文
posted @ 2021-04-26 18:09 一人一见 阅读(199) 评论(0) 推荐(0)
摘要:ThreadLocal作用和原理分析:ThreadLocal主要为变量在每个线程中都创建了一个副本,那么每个线程可以访问自己内部的副本变量。 要理解ThreadLocal需要理解下面三个问题: ①、每个线程的变量副本是存储在哪里的?(参考ThreadLocal的get()源码) 每个线程都有一个th 阅读全文
posted @ 2021-04-20 16:41 一人一见 阅读(376) 评论(0) 推荐(0)
摘要:启动类注解 @EnableZuulProxy @EnableEurekaClient 配置文件 server.port=1120 #指定服务名 spring.application.name=eureka-client1 #Eureka客户端与Eureka服务端进行交互的地址 eureka.clie 阅读全文
posted @ 2021-02-05 15:42 一人一见 阅读(450) 评论(0) 推荐(0)
摘要:String转java泛型对象 1.javabean对像 public class JavaBean<T>{ private Stirng name; private T test; } String 字符串转类似这样的JavaBean对像 使用 JSON.parseObject方法 JavaBea 阅读全文
posted @ 2020-12-18 11:55 一人一见 阅读(2494) 评论(0) 推荐(1)
摘要:链接:https://www.jianshu.com/p/3a3edbcd8f24 一、什么是SPI SPI ,全称为 Service Provider Interface,是一种服务发现机制。它通过在ClassPath路径下的META-INF/services文件夹查找文件,自动加载文件里所定义的 阅读全文
posted @ 2020-11-20 10:14 一人一见 阅读(529) 评论(0) 推荐(0)
摘要:1、用ps -ef | grep tomcat-v3 查出tomcat运行的进程id 2、用top -Hp pid 查询进程下所有线程的运行情况(shift+p 按cpu排序,shift+m 按内存排序) top -Hp 30316 3、找到cpu最高的pid,用printf ‘%x\n’ pid 阅读全文
posted @ 2020-11-03 14:32 一人一见 阅读(554) 评论(0) 推荐(0)
摘要:https://blog.csdn.net/hongtaq156136/article/details/87708355 jstack可以定位到线程堆栈,根据堆栈信息我们可以定位到具体代码,所以它在JVM性能调优中使用得非常多。下面我们来一个实例找出某个Java进程中最耗费CPU的Java线程并定位 阅读全文
posted @ 2020-10-30 11:05 一人一见 阅读(220) 评论(0) 推荐(0)
摘要:https://www.cnblogs.com/wangzhongqiu/category/1028252.html 阅读全文
posted @ 2020-10-12 14:48 一人一见 阅读(95) 评论(0) 推荐(0)
摘要:Java类加载器(ClassLoader) 双亲委派模式要求除了顶层的启动类加载器外,其余的类加载器都应当有自己的父类加载器,请注意双亲委派模式中的父子关系并非通常所说的类继承关系,而是采用组合关系来复用父类加载器的相关代码,类加载器间的关系如下: TIM截图20190116163949.png 双 阅读全文
posted @ 2020-09-22 10:54 一人一见 阅读(328) 评论(0) 推荐(0)
摘要:一、ThreadPoolExecutor的重要参数 corePoolSize:核心线程数 核心线程会一直存活,及时没有任务需要执行 当线程数小于核心线程数时,即使有线程空闲,线程池也会优先创建新线程处理 设置allowCoreThreadTimeout=true(默认false)时,核心线程会超时关 阅读全文
posted @ 2020-08-20 18:29 一人一见 阅读(1774) 评论(0) 推荐(1)
摘要:定义:在状态模式(State Pattern)中,类的行为是基于它的状态改变的。这种类型的设计模式属于行为型模式。 在状态模式中,我们创建表示各种状态的对象和一个行为随着状态对象改变而改变的 context 对象。 意图:允许对象在内部状态发生改变时改变它的行为,对象看起来好像修改了它的类。 主要解 阅读全文
posted @ 2020-06-24 10:10 一人一见
摘要:定义:在访问者模式(Visitor Pattern)中,我们使用了一个访问者类,它改变了元素类的执行算法。通过这种方式,元素的执行算法可以随着访问者改变而改变。这种类型的设计模式属于行为型模式。根据模式,元素对象已接受访问者对象,这样访问者对象就可以处理元素对象上的操作。 意图:主要将数据结构与数据 阅读全文
posted @ 2020-06-24 09:54 一人一见
摘要:定义:在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。 在策略模式中,我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的 context 对象。策略对象改变 context 对象的执行算法。 优点: 1、算法可以自由 阅读全文
posted @ 2020-06-24 09:52 一人一见