![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
1.1_java
nmgyangguangyuan
这个作者很懒,什么都没留下…
展开
-
ActiveMQ的传输协议
基本概念官网:协议介绍ActiveMQ支持的client-to-broker的通信协议如下:TCP,NIO,UDP,SSL,Http(s),VM.其中配置Transport Connector的文件在activemq.xml中的的标签之内.协议类别TCP(默认)NIOAMQP协议stomp协议SSLmqttws(前端)TCP默认的Broker配置,TCP的Cli...原创 2019-07-01 22:46:58 · 248 阅读 · 0 评论 -
互联网并发编程
1. 并发编程1.1并发编程学习目的1.2线程安全1.7 volatile关键字2. 线程通信2.1线程之间通信2.2 使用wait和notify模拟queue2.3ThreadLocal2.3单例&多线程3.1 同步类容器3.2 并发类容器4.1ConcurrentMap4.2Copy-On-Write容器6.1多线程设计模式6.2Future模式6...原创 2018-04-24 18:49:32 · 187 阅读 · 0 评论 -
20-Spring Boot AOP
AOP开发流程spring-boot-starter-aop加入依赖,默认开启了aop的支持 写一个Aspect,封装横切关注点,需要配置通知(前置通知,后置通知等)和切入点(切入点表达式) 这个Aspect需要纳入spring容器管理,并且需要加入@Aspect spring.aop.auto配置项决定是否启用AOP,默认启用 默认使用基于JDK的动态代理来实现...原创 2018-04-15 21:08:56 · 97 阅读 · 0 评论 -
17-Spring Boot Web
拦截器的使用步骤写一个拦截器,实现HandlerInterceptor接口 写一个类,集成WebMvcConfigurationSupport类,重写addInterceptors方法,并调用registry.addInterceptor,把上一步的拦截器加进去 HandlerInterceptor preHandle:controller执行之前调用 postHandle:co...原创 2018-04-14 17:10:28 · 93 阅读 · 0 评论 -
14-Spring Boot运行流程分析
Spring Boot运行流程分析 spring boot的启动实例化SpringApplication,然后调用run SpringApplication app = new SpringApplication(App.class);ConfigurableApplicationContext context = app.run(args); 直...原创 2018-04-12 22:19:14 · 298 阅读 · 0 评论 -
GC算法分析
文章目录GCjdk1.7jdk1.8堆内存调优自动触发垃圾回收GC三大算法复制算法优势劣势使用场景组成部分标记清除优势劣势使用场景组成部分标记整理优势劣势使用场景组成部分相似对比GC频繁收集Young区,较少收集Old区,基本不动Perm区jdk1.7新生代:-Xmn新生代+旧生代:-Xms -Xmx永久代:-XX:PermSize,-XX:MaxPermSizejdk1.8jdk...原创 2019-06-27 17:16:03 · 128 阅读 · 0 评论 -
jvm
文章目录JVM解决问题Stack 栈栈存储什么栈的运行原理Heap 堆新生区养老区永久区常量池概念内存划分总结一总结二JVM解决问题问题 冯·诺依曼体系结构中,指出计算机处理的数据和指令都是二进制数,采用存储程序方式不加区分的存储在同一个存储器里,并且顺序执行,指令由操作码和地址码组成,操作码决定了操作类型和所操作的数的数字类型,地址码则指出地址码和操作数。从dos到window8,...原创 2019-06-27 17:17:06 · 115 阅读 · 0 评论 -
JVM_1_如何盘点查看jvm系统默认值
文章目录JVM_1_如何盘点查看jvm系统默认值jvm参数类型XX参数Boolean类型公式示例一示例二KV设置类型公式示例jinfo公式示例例题查看JVM默认值-XX:+PrintFlagsInitial-XX:+PrintFlagsFinalJVM_1_如何盘点查看jvm系统默认值jvm参数类型标配参数-version-helpjava -showversionX参数...原创 2019-06-28 15:20:25 · 490 阅读 · 0 评论 -
JVM_2_常用的基本配置参数
文章目录JVM_2_常用的基本配置参数-Xms-Xmx-Xss-Xmn-XX:MetaspaceSize典型设置案例未配置参数前配置参数之后-XX:+PrintGCDetails收集GC日志-XX:SurvivorRatio-XX:NewRatio-XX:MaxTenuringThresholdJVM_2_常用的基本配置参数-Xms初始大小内存,默认为物理内存的1/64等价于-XX:In...原创 2019-06-28 15:20:55 · 226 阅读 · 0 评论 -
JVM_3_强引用,软引用,弱引用,虚引用分析
文章目录JVM_3_强引用,软引用,弱引用,虚引用分析强引用概念示例软引用概念示例弱引用概念示例应用WeakHashMap虚引用概念示例引用队列demo对比JVM_3_强引用,软引用,弱引用,虚引用分析强引用概念当内存不足,JVM开始垃圾回收,对于强引用对象,就算出现OOM,也不会对该对象回收.强引用是造成java内存泄漏的主要原因之一示例package top.ygy....原创 2019-06-28 15:22:09 · 138 阅读 · 0 评论 -
ActiveMQ基础分析
文章目录解决问题优势劣势优势劣势适用场景组成部分概念定义ActiveMQ安装和控制台Linux安装控制台编码实现maven工程目的地Destination生产者消费者两种模式比较底层原理JMS规范概念组成结构JMS的可靠性PERSISTENT:持久性transaction:事务Acknowledge:签收JMS的点对点总结JMS的发布订阅总结ActiveMQ的Broker概念嵌入式Broker相似...原创 2019-06-30 20:09:11 · 139 阅读 · 0 评论 -
volatile分析
volatile分析解决问题问题:多线程编程,共享变量需要多个线程可见,需要保证线程的执行顺序解决:禁止编译器优化而重排序指令。对 volatile 修饰的变量值,保证线程读取到的值是最新的,而不是寄存器中缓存的值。优势劣势优势轻量级锁劣势不保证原子性适用场景适用条件对变量的写操作不依赖于当前值。该变量没有包含在具有其他变量的不变式中。实例开销较...原创 2019-06-15 14:48:51 · 128 阅读 · 0 评论 -
CAS
CAS分析解决问题多线程自增计算,count++,出现丢失值问题,可用synchronized加锁解决,但是影响性能较大,使用原子类,可提高性能,原子类的底层原理就是CASpackage top.ygy.thread;import java.util.concurrent.atomic.AtomicInteger;/** * @Description: TODO(原子类解决自增...原创 2019-06-15 20:59:13 · 148 阅读 · 0 评论 -
ABA问题分析与解决
ABA问题分析产生原因CAS会导致ABA问题CAS算法实现一个重要的前提是需要取出内存中某时刻的数据并在当下时刻比较并替换,那么在这个时间差类会导致数据的变化.比如说一个线程one从内存位置V中取出A,线程Two也执行,将A–>B–>A,这时one进行CAS操作发现内存仍是A,然后one操作成功.one操作成功,但是在这个过程中线程two可能操作了其它数据,产生问题.pac...原创 2019-06-16 17:10:05 · 6946 阅读 · 0 评论 -
ActiveMQ消息存储和持久化
文章目录问题分析解决官网类型AMQ Message Store(了解)kahaDB消息存储(默认)说明kahaDB的存储原理LeveDB消息存储(了解)JDBC消息存储过程总结注意JDBC Message store with ActiveMQ Journal说明总结问题MQ服务器宕机了,消息丢失怎么解决?分析为了避免意外宕机以后丢失信息,需要做到重启后可以恢复消息队列,消息系统一般都会采...原创 2019-07-02 22:15:10 · 191 阅读 · 0 评论 -
GC Root分析
文章目录GC Root分析解决问题适用场景组成部分定义可作为GC Root的对象示例GC Root分析解决问题问题java语言自动执行垃圾回收,但什么是垃圾呢?简单来说就是内存中已经不在被使用到的空间就是垃圾,那么又如何判断一个对象是否可以被回收呢?这时,出现了引用计数法,但是这种方法难以解决循环引用问题,那么又如何解决这个问题呢?解决枚举根节点做可达性分析(跟搜索路径)...原创 2019-06-27 16:21:49 · 804 阅读 · 0 评论 -
死锁编码及定位分析
文章目录死锁编码及定位分析是什么产生原因解决死锁编码及定位分析是什么 死锁是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力干涉,他们都将无法进行下去,如果系统资源充足,进行的资源请求都能够得到满足,死锁出现的可能性就很低,否则就回因争夺有限的资源而陷入死锁.package top.ygy.thread;public class DeadLockDe...原创 2019-06-25 15:55:04 · 116 阅读 · 0 评论 -
线程池分析
文章目录线程池分析解决问题优势劣势适用场景组成部分线程池使用技术架构编码实现ThreadPoolExecutor拒绝策略问题解决类型自定义线程池问题解决代码最优参数底层原理七个参数原理线程池分析解决问题问题为每个请求创建一个新线程的开销很大活动的线程也消耗系统资源解决 线程池为线程生命周期开销问题和资源不足问题提供了解决方案,线程池做的工作主要是控制运行的线程的数量,处...原创 2019-06-25 14:49:43 · 116 阅读 · 0 评论 -
Callable和FutureTask分析
文章目录Callable和FutureTask分析解决问题优势劣势应用场景组成部分FutureTask使用底层原理相似对比Callable和FutureTask分析解决问题问题 创建线程的2种方式,一种是直接继承Thread,另外一种就是实现Runnable接口,这2种方式都有一个缺陷就是:在执行完任务之后无法获取执行结果。 如果需要获取执行结果,就必须通过共享变量或者使用线程通...原创 2019-06-24 15:17:58 · 268 阅读 · 0 评论 -
阻塞队列分析
文章目录阻塞队列分析解决问题优势劣势适用场景组成部分阻塞队列类型核心方法底层原理相似对比非阻塞队列实现生产者-消费者模式(Object)非阻塞队列实现生产者-消费者模式(Lock)阻塞队列实现的生产者-消费者模式(BlockingQueue)阻塞队列分析解决问题问题在concurrent包发布之前,程序员需要自己去控制线程的阻塞和唤醒,同时兼顾效率和线程安全,这给程序带来了不小的复杂度...原创 2019-06-21 17:08:47 · 277 阅读 · 0 评论 -
synchronized与Lock比较
synchronized与Lock区别原始构成synchronized是关键字属于JVM层面monitorenter(底层通过monitor对象来完成,起始wait/notify等方法也依赖于monitor对象,只有在同步块和方法中才能调用wait/notify等方法)monitorexitLock是具体类(java.util.concurrent.locks.lock)是a...原创 2019-06-21 16:06:02 · 199 阅读 · 0 评论 -
CountDownLatch与CyclicBarrier与Semaphore比较并分析
CountDownLatch概念一种线程的辅助,允许一个操作等待直到某个或某组操作执行完成倒数,计数为0时执行代码demo1package top.ygy.thread;import java.util.concurrent.CountDownLatch;import java.util.concurrent.TimeUnit;/** * @Description: TOD...原创 2019-06-20 09:13:20 · 129 阅读 · 0 评论 -
java锁分析
Java不可重入锁和可重入锁理解公平锁与非公平锁概念公平锁多个线程按照申请锁的顺序来获取锁,类似排队打饭,先来后到.非公平锁多个线程获取锁的顺序并不是按照申请锁的顺序,有可能后申请的线程比先申请的线程优先获取锁,在高并发的情况下,有可能出现优先级反转或饥饿的现象公平锁:ReentrantLock设置为true为公平锁非公平锁:ReentrantLock默认非公平锁,synchron...原创 2019-06-19 10:04:28 · 107 阅读 · 0 评论 -
集合不安全问题
ArrayList问题线程不安全,报错:java.util.ConcurrentModificationExceptionpackage top.ygy.thread;import java.util.ArrayList;import java.util.List;import java.util.UUID;/** * @Description: TODO(集合类不安全问题)...原创 2019-06-18 14:43:29 · 232 阅读 · 0 评论 -
javaweb各种技术解决的问题
文章目录javaweb各种技术解决的问题技术点servletrequest和responsejsp会话技术CookieSession监听器ajaxjqueryFilter过滤器工具apijavaweb各种技术解决的问题技术点servlet作用:运行在服务器上,为页面提供动态数据request和response作用:Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于...原创 2019-08-04 21:07:56 · 327 阅读 · 0 评论