java
文章平均质量分 50
啦啦啦咯咯咯
一个默默学习的小程序员
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
java线上项目排查,Arthas简单上手
工具转载 2023-01-29 19:10:14 · 680 阅读 · 0 评论 -
javafx中gif 内存优化
优化原创 2023-01-29 19:05:45 · 898 阅读 · 1 评论 -
提取word中的标题大纲
word工具类原创 2023-01-29 18:58:23 · 2629 阅读 · 0 评论 -
大屏加载速度优化--突破chrome 6个请求线程限制
优化原创 2023-01-29 18:53:16 · 7851 阅读 · 0 评论 -
身份认证对接Filter过滤器
问题在与深证信息职业学院系统身份认证的时候,该系统默认会在我们的回调地址栏加上;jsessionid=6EEB42B0546A1B057BD37A628CAE646F这个参数,导致我们http://10.10.16.172:8080/csos/f/PCRepairsMobile/getRedict;jsessionid=6EEB42B0546A1B057BD37A628CAE646F 我们的回调地址出现400错误,调用不到http://10.10.16.172:8080/csos/f/PCRepairsM原创 2021-12-06 10:54:04 · 506 阅读 · 0 评论 -
Hutool中那些常用的工具类和方法
Hutool是一个Java工具包,它帮助我们简化每一行代码,避免重复造轮子。如果你有需要用到某些工具方法的时候,不妨在Hutool里面找找,可能就有。本文将对Hutool中的常用工具类和方法进行介绍。安装maven项目在pom.xml添加以下依赖即可:<dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <v.原创 2021-01-22 14:53:41 · 720 阅读 · 0 评论 -
Java中跳出多层循环
正常Break只能跳出一层循环public static void main(String[] args) { for (int i3 = 0; i3 < 2; i3++) { System.out.println("最外层------------------"+i3); for (int i = 0; i < 3; i++) { System.out.println("外层******"+i).原创 2021-01-19 11:24:32 · 240 阅读 · 0 评论 -
原子类Atomic的ABA问题
ABA问题解决:原始:解决:atomicStampedReference,带版本号的原创 2021-01-05 15:23:58 · 262 阅读 · 0 评论 -
Linux常见的命令和代码故障分析思路和定位
六大命令使用1.top命令使用红色框分别代表1,5,15平均负载值,如果相加/3*100%高于百分之60,系统压力过重。按1会显示cpu详情2.vmstat查看cpuvmstat -n 2 3mpstat -P ALL 2 idle(cpu空闲率 越高越好)pidstat -u 1 -p3.free -mpidstat -p 进程号 -r 采样间隔数4.硬盘 df -h5.磁盘io iostatiostat -xdk 2 3pidstat原创 2021-01-04 16:37:40 · 247 阅读 · 0 评论 -
Github的一些搜索操作
常用词含义in关键词限制搜索范围:stars和forks的数量关键词查找awesome加强搜索awesome redis高亮显示某一行代码网址后面+#L13(高亮显示13行)项目内搜索按下小写英文t,就会形成列表搜索某个地区的大佬...原创 2021-01-04 15:04:39 · 155 阅读 · 0 评论 -
Jvm-如何判断对象是否可以被回收?
如何判断对象是否可以被回收?引用计数法:枚举跟节点做可达性分析(跟搜索路径)注意:要从GCRoots为启点的才算哪些对象可以作为GC Roots的对象?被static修饰的被加载进方法区,java7叫永久代,java8叫源空间。...原创 2021-01-02 14:29:03 · 291 阅读 · 0 评论 -
JVM内存结构和垃圾回收算法
引用计数法复制算法:优点:没有产生内存碎片。缺点:内存太浪费标记清除优点:没有进行大面积复制,节约了内存空间,缺点:产生内存碎片标记整理优点:不浪费空间,不产生碎片 缺点:耗时最终:复制算法用在新生代, 标记-清除-标记-整理 用在老年代...原创 2021-01-02 09:12:22 · 146 阅读 · 0 评论 -
线程池7大参数详细讲解
源码中7大参数位置:七大参数:拒绝请求执行的runnable的策略。理解图:1. corePoolSize线程池中的常驻核心线程数3. keepAliveTime多余的线程存活核心线程满了,阻塞队列也满了,才会开启max最大线程数,如果还是满了,就会启动拒绝策略。如果流量降下来,就按照设置的时间最大数,慢慢的回到了核心线程数。原理:注意:阿里巴巴规范拒绝策略:public class ThreadPoolDemo { public static void m原创 2020-12-31 16:53:06 · 1269 阅读 · 0 评论 -
Executors三个线程池的使用及场景
好处:底层都是ThreadPoolExecutorExecutors.newFixedThreadPoolpublic class ThreadPoolDemo { public static void main(String[] args) { ExecutorService threadPool = Executors.newFixedThreadPool(5);//一池5个处理线程 try { for (int i原创 2020-12-30 17:50:07 · 510 阅读 · 0 评论 -
线程的第三种创建方式-Callable的使用
线程的第三种创建方式Callable的使用public class MyThread implements Callable { @Override public Integer call() throws Exception { System.out.println(Thread.currentThread().getName()+ ":11111111"); return 1024; }}public class CallableDemo原创 2020-12-30 17:21:57 · 306 阅读 · 0 评论 -
BlockingQueue实现生产者消费者
前提:之前生产者,消费者需要线程自己控制等待,唤醒。现在使用blockingQueue不需要。代码:public class MySource { private volatile boolean isTrue = true; private AtomicInteger atomicInteger = new AtomicInteger(); private BlockingQueue blockingQueue = null; public MySource(Bloc原创 2020-12-30 12:50:19 · 482 阅读 · 0 评论 -
列队,阻塞列队,BlockingQueue的使用
列队/阻塞列队空的话消费者阻塞,因为没有东西可消费。满的话生产者阻塞,因为列队放满了。BlockingQueue有7种列队实现BlockingQueue接口抛出异常element()作用检查队列是否为空,队首元素是谁。特殊值...原创 2020-12-30 08:55:54 · 155 阅读 · 0 评论 -
Semaphore使用
Semaphore就是信号量代码:总结;跟CountDownLatch和CyclicBarrier区别就是,Semaphore可以达到复用,有减,有加,一直使用。而CountDownLatch和CyclicBarrier要一直累加和减,不好达到复用。原创 2020-12-29 10:55:18 · 591 阅读 · 0 评论 -
CyclicBarrier使用
理论:与CountDownLatch相反,CountDownLatch是做减法的,减到0才开始。而CyclicBarrier是做加法,加到一定数值,才开始执行。代码:public class CycllicBarrierDemo{ public static void main(String[] args) { CyclicBarrier cyclicBarrier = new CyclicBarrier(7, new Thread(new Runnable() {原创 2020-12-29 10:45:38 · 192 阅读 · 0 评论 -
CountDownLatch
CountDownLatch使用例子:需要main线程最后一个触发,最后结果是main线程并非最后一个运行,引入countdownlatch加入countdownlatch结果,实现了需求。枚举使用使用枚举线程i被替换成相应的values。...原创 2020-12-29 10:27:28 · 106 阅读 · 0 评论 -
集合类不安全的问题
ArrayList是不安全的第一次运行。数量正确,但是为空第二次运行。数量不对,又为空。线程30个,出现异常:解决方案一 new Vector()可以解决。二 collections 工具类collections 还提供其他很多安全的。三 new CopyOnWriteArrayList原理:源码,参考上面的图:hashSet也是线程不安全的例子:解决方法:一 Collections工具类CopyOnWriteSet()底层是hashMap为什原创 2020-12-28 16:41:08 · 136 阅读 · 0 评论 -
Volatile详解
JMM三大特性:可见性,原子性,有序性.可见性volatile轻量级。保证可见性代码验证:结果:没有输出mission is over。加上volatile结果:有一个线程修改了值,其他的线程会收到通知,立马输出。总结:原子性vlolatile不保证原子性代码验证:如果正常能保证原子性,结果应该为20000,运行多次都没达到20000。1.因为每个线程初始都是把开始值为0放入自己的工作内存,线程1把值增加为2写入主内存,线程2把值增加成1也写回主内存,就原创 2020-12-28 11:18:34 · 207 阅读 · 0 评论
分享