
java
优秀的佐同学
新人佐先生,坚持每日记录自己的学习经验(争取一天一更)
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
一 JVM对象创建
1 对象创建过程1.1 class loading(类加载)1.jvm使用类加载器,通过包名+类名,加载二进制流文件到内存中(matespace);此时仅仅转变了数据结构,并未合并数据2.生成一个class对象,作为这个类各种数据访问的入口,这个Class对象并未规定是在Java堆内存中,它比较特殊,虽为对象,但存放在方法区中注意:类加载器可以使用默认的,也可以使用自己定义的(特殊逻辑)1.2 class linking(类链接)1.结构话类信息,将二进制对象合并到jre中1.2.1 ve原创 2021-05-12 20:22:24 · 323 阅读 · 0 评论 -
jstack+top 定位占用资源的进程
cpu占用过高引起报警,使用top命令查看占用系统资源的进程第一步:top,寻找cpu占用率较高的进程第二步:top -pid 13213,寻找该进程中各线程的资源占用情况第三步:jstack 13213 > jstack.log,将线程堆栈信息输出到指定文件里对于多线程情况堆栈信息,可以使用printf ‘%x\n’ pid 将线程id转为16进制使用jstack pid | grep -A 20 pid(16进制)命令将堆栈信息进行筛选...原创 2021-04-27 20:57:24 · 455 阅读 · 0 评论 -
粗略计算最佳线程数
最佳线程数目 = ((线程等待时间+线程CPU时间)/线程CPU时间 )* CPU数目比如平均每个线程CPU运行时间为0.5s,而线程等待时间(非CPU运行时间,比如IO)为1.5s,CPU核心数为8,那么根据上面这个公式估算得到:((0.5+1.5)/0.5)*8=32。这个公式进一步转化为:最佳线程数目 = (线程等待时间与线程CPU时间之比 + 1)* CPU数目...原创 2020-12-31 13:55:43 · 1204 阅读 · 0 评论 -
idea 本地远程debug服务器项目
2020.2.4版本第1步第2步第3步综合原创 2020-12-25 17:34:19 · 268 阅读 · 0 评论 -
线程队列
线程队列有两种,concurrentLinkedQueue,非阻塞队列,内部使用锁实现BlockingQueue,阻塞队列,满了就等待package learn.thread0301;import java.util.Queue;import java.util.concurrent.ConcurrentLinkedQueue;public class Concurrent...原创 2020-03-12 10:43:50 · 971 阅读 · 0 评论 -
常见的6种线程池及简单使用
jdk8线程池一共有6种,分别是CachedThreadPool(cached线程池,当有任务进来的时候如果有空闲的线程则直接利用,如果无空闲线程,则新创建一个线程出来使用),ScheduleThreadPool(schedule线程池,定时线程池,指定一个线程什么时候开始执行),SingleThreadPool(single单例线程池,保只有一个线程,保证数据先后执行的顺序一致),F...原创 2020-03-12 10:33:04 · 546 阅读 · 0 评论 -
java生成图片验证码
2019年8月29日17:52:34 public class CodeUtil { private static int width = 90;// 定义图片的width private static int height = 15;// 定义图片的height private static int codeCount = 6;// 定义图片上显示验证码的个...原创 2019-09-03 09:39:11 · 450 阅读 · 1 评论