
java
yaobo2816
这个作者很懒,什么都没留下…
展开
-
Java 深拷贝和浅拷贝
c1和c2是同一个对象吗false。c1和c2是同一个对象吗false。c1和c2是同一个对象吗false。p1和p2是同一个对象吗false。p1和p2是同一个对象吗true。具体原型对象创建成功。具体原型对象创建成功。原创 2024-07-22 11:37:13 · 290 阅读 · 0 评论 -
springboot3 集成GraalVM
看见target 如下文件,执行exe,可以启动。console界面会显示一下信息,证明打包成功。插件在IDEA 会使用不然会找不到。执行native:build 命令。Jave_home 和 path。能看见红色框的证明你引用成功。设置setting.xml。版本和JDK需要自己选择。原创 2024-07-11 10:40:22 · 787 阅读 · 0 评论 -
Log 利用装饰模式 打印增强
增强型Log 打印原创 2022-10-18 11:18:10 · 405 阅读 · 0 评论 -
web 责任链 简码
责任链简码原创 2022-10-18 11:05:39 · 102 阅读 · 0 评论 -
Cglib 代理
为了深入研究spring aop 动态代理打下基础。cglib必须实现的类。原创 2022-09-20 09:39:12 · 137 阅读 · 0 评论 -
JDK动态代理用法
比较好的写法是写在接口实现类里,这样测试JDK代理比较干净,整洁。JDK 动态代理必须实现的接口。最后测试类比较简单,明了。原创 2022-09-20 09:16:26 · 174 阅读 · 0 评论 -
StampedLock 使用案例
【代码】StampedLock 使用案例。原创 2022-08-30 13:53:52 · 305 阅读 · 0 评论 -
ReentrantReadWriteLock 写锁降级成为读锁
上面的例子oracle 官方的例子,当在多线程并发的时候,如果写锁处理完业务后,直接释放, 会有其他write锁锁定资源并修改,如果想在写锁释放完以后,还想用修改后的数据, 需要把写锁降级为readlock,继续使用。...原创 2022-08-29 11:24:30 · 381 阅读 · 0 评论 -
java 强引用和弱引用
4)如果一个对象,没有一个引用来指向他,那么这个引用可以被垃圾回收。(1)创建一个对象,并将对这个对象的引用赋值给o,这样就是强引用了。(2)当内存空间不足的时候,虚拟机宁愿抛出错误,也不愿意回收内存。(3)可以使用 o = null;(1)弱引用和软引用的区别在于其拥有更短的生命周期。(2)不管当前的内存空间是否足够,都会回收他的内存。(3)偶尔才使用到的对象,我们使用弱引用的机制。(2)当内存空间不足的时候,就回收这些对象。(1)软引用可以实现内存敏感的高速缓存。...原创 2022-08-08 10:49:24 · 1706 阅读 · 0 评论 -
JUC LongAdder高性能
LongAdder基本思路就是分散热点,将value分散到各自cell里面,不同线程会命中不同槽中,每一个槽中都是cas乐观锁,达到分而治之。核心思想就是把之前的AtomicLong一个value更新压力分散到不同槽里面。在Jdk8以后推荐使用LongAdder替代AtomicLong,减少等待。为什么LongAdder这么快。......原创 2022-08-01 11:20:03 · 171 阅读 · 0 评论 -
乐观锁 ABA问题及解决方案
乐观锁ABA问题及解决方案。原创 2022-07-26 11:31:53 · 1011 阅读 · 0 评论 -
自旋锁 自己实现 CAS
自己手写代码实现自旋锁。原创 2022-07-26 09:48:56 · 152 阅读 · 0 评论 -
线程等待和唤醒 用法总结
wait notify原创 2022-07-05 22:27:42 · 159 阅读 · 0 评论 -
ReentrantLock 公平锁和非公平锁。
买票程序 ReentrantLock lock = new ReentrantLock(true); 公平锁 ReentrantLock lock = new ReentrantLock(); 非公平锁原创 2022-07-04 19:42:23 · 500 阅读 · 0 评论 -
异步编程CompletableFuture系列2 计算结果进行消费
代码原创 2022-07-04 07:52:46 · 152 阅读 · 0 评论 -
CompletableFuture 案例分享
CompletableFuture stream 用法原创 2022-07-03 16:00:17 · 212 阅读 · 0 评论 -
异步编程CompletableFuture实现高并发系统优化之请求合并
高并發請求 請求合并一个用户请求到后台,没有立即去处理,而是把请求堆积到队列中,堆积10毫秒的时间,由于是高并发场景,就堆积了一定数量的请求。定义一个定时任务,把队列中的请求,按批处理的方式,向后端的Redis缓存,或者数据库发起批量的请求,拿到批量的结果,再把结果分发给对应的请求用户。对于单个用户而言,他的请求变慢了10毫秒是无感知的。但是对于我们系统,却可以提高几倍的抗并发能力。这个请求合并,结果分发的功能,就要用到一个类CompletableFuture 实现异步编程,不同线程之间.原创 2021-03-10 09:40:00 · 1404 阅读 · 2 评论 -
HashMap 红黑树
一、前言在jdk1.8版本后,Java对HashMap做了改进,在链表长度大于8的时候,将后面的数据存在红黑树中,以加快检索速度。二、红黑树回顾红黑树的英文是“Red-Black Tree",简称R-B Tree。它是一种不严格的平衡二叉查找树,我前面说了,它的定义是不严格符合平衡二叉查找树的定义的。那红黑树空间是怎么定义的呢?顾名思义,红黑树中的节点,一类被标记为黑色,一类被标记为红色除此之外,一棵红黑树还需要满足这样几个要求:根节点是黑色的; 每个叶子节点都是黑色的空节点(NIL)原创 2021-02-24 18:39:12 · 2536 阅读 · 0 评论 -
Java协程
Java 多线程测试for (int i = 0; i < 1000000; i++) { new Thread(() -> { try { Thread.sleep(100000); } catch (InterruptedException e) { e.printStackTrace();原创 2021-02-05 14:31:48 · 263 阅读 · 1 评论 -
LockSupport 线程打印
package com.gauravg.controller;import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.LockSupport;import java.util.concurrent.locks.ReentrantLock;public class Main { static Thread a=.原创 2021-01-15 10:16:00 · 97 阅读 · 0 评论 -
idea 设置热部署启动
pom.xml 添加配置<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional></dependency>idea设置Ctrl+shift+areg...原创 2021-01-05 22:10:38 · 437 阅读 · 0 评论 -
粗糙的ThreadLocal
package com.pancm;import java.util.Collections;import java.util.HashMap;import java.util.Map;public class MyThreadLocal { private Map valueMap = Collections.synchronizedMap(new HashMap()); public void set(Object newValue) { valueMap..原创 2021-01-05 18:43:57 · 76 阅读 · 0 评论 -
线程ThreadPoolExecutor 创建 线程数怎么设置
线程池创建 ExecutorService threadPool =new ThreadPoolExecutor( 2, 5, 1l, TimeUnit.SECONDS, new LinkedBlockingQueue<>(3), Executors.defaultThreadFactory(),原创 2020-12-27 00:49:07 · 591 阅读 · 0 评论 -
初始化为0的变量,两个线程对它操作,一个加一 一个减一
import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;import java.util.concurrent.locks.ReentrantReadWriteLock;public class ShareData { int number; Lock lock = new .原创 2020-12-26 17:42:45 · 705 阅读 · 0 评论 -
自旋锁
import java.util.concurrent.TimeUnit;import java.util.concurrent.atomic.AtomicInteger;public class Test { AtomicInteger a = new AtomicInteger(0); public void addPlus(){ a.getAndAdd(1); } public static void main(String[] args.原创 2020-12-21 22:51:49 · 83 阅读 · 0 评论 -
volatile 可见性代码示例
public class Test { public volatile int a =0; public void add(){ this.a = 20; }}import java.util.concurrent.TimeUnit;public class Main { public static void main(String[] args) { Test test = new Test(); ne.原创 2020-12-21 22:32:08 · 312 阅读 · 0 评论 -
java 读写锁 java5特有的 多线程
<br />import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.locks.ReadWriteLock; import java.util.concurrent.locks.ReentrantReadWriteLock; /** * Java线程:锁 * * @author leizhimin 2009-1原创 2010-12-09 15:11:00 · 713 阅读 · 0 评论 -
jsp免费虚拟空间 jhost邀请码
<br />jhost 是免费的虚拟空间 支持java所有流行框架 邀请码为20100704112643_704547 ,通过邀请码可以开通空间 有效期为2010-07-04原创 2010-06-04 11:33:00 · 583 阅读 · 0 评论 -
分层架构下的纯JDBC事务控制简单解决方案
1. 事务回调接口(回调方法有返回值):TransactionCallback.java package com.tjitcast.common;import com.tjitcast.dao.DaoException;/** * 事务回调接口 * @author qiujy */public interface TransactionCallback {原创 2010-05-11 09:00:00 · 385 阅读 · 0 评论 -
分层架构下的纯JDBC事务控制简单解决方案
1. 事务回调接口(回调方法有返回值):TransactionCallback.java package com.tjitcast.common;import com.tjitcast.dao.DaoException;/** * 事务回调接口 * @author qiujy */public interface TransactionCallback {原创 2010-04-29 13:02:00 · 623 阅读 · 1 评论 -
读取人人页面用httpclient
import java.util.ArrayList;import java.util.List;import org.apache.http.Header;import org.apache.http.HttpResponse;import org.apache.http.NameValuePair;import org.apache.http.client.Re原创 2010-04-12 09:36:00 · 861 阅读 · 0 评论 -
解压缩文件
ZipInputStreamimport java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.util.ArrayList;import java.util.zip.ZipEntry;import java.util.zip.ZipInputStrea原创 2010-04-12 09:31:00 · 472 阅读 · 0 评论 -
研究tomcat和apache的整合成功例子
首先介绍一下 tomcat 5.5.25 apache 2.0.58jdk1.6这是我的配置 apache 文件中httpd.conf加上一下代码LoadModule jk_module modules/mod_jk.so JkWorkersFile conf/workers.properties JkMount /*.jsp ajp13 JkMount /*原创 2009-09-03 16:39:00 · 445 阅读 · 0 评论 -
apache 2.0.58 和tomcat整合
Apache和Tomcat的整合,原理及例子 --copy liang blog这类文档很多很多,但是大多是由不明原理的人拘泥于具体版本写出来的,有很多错漏或多余的部分。 最后找到一篇写得很很不错的,http://macawspark.spaces.live.com/blog/ 我修正了其中的错误然后加了一些自己的理解 原理 tomcat 为一个jsp的容器,apache为一个web serv转载 2009-09-03 16:38:00 · 643 阅读 · 0 评论