![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 66
崔泡泡—猫
勤能补拙
展开
-
类加载过程
初始化子类静态B之前先初始化父类静态A。原创 2022-09-09 17:41:41 · 321 阅读 · 0 评论 -
jvm中的类加载器
在Java的日常应用程序开发中,类的加载几乎是由上述3种类加载器相互配合执行的,在必要时,我们还可以自定义类加载器,来定制类的加载方式。隔离加载类修改类加载的方式扩展加载源防止源码泄漏开发人员可以通过继承抽象类java.lang.classLoader类的方式,实现自己的类加载器,以满足一些特殊的需求。原创 2022-09-09 17:14:55 · 536 阅读 · 0 评论 -
java中栈的算法
定义两个栈num和min,num栈用来实现入栈出栈,min栈的栈顶一直是num栈中所有数的最小值,当有数据入栈时先向num栈存储该数,接着判断min栈是否为空,如果为空的话就直接存入,如果不为空的话将入栈的数与min栈栈顶元素比较,如果入栈的数更小那么min栈入栈,出栈时判断min栈栈顶与num栈栈顶是否相等,相等的话min出栈,然后让num出栈,不相等的话min不出栈,返回最小值时直接返回min栈的栈顶即可。出栈时判断min栈栈顶与num栈栈顶是否相等,相等的话min出栈,然后让num出栈。...原创 2022-08-30 16:29:51 · 254 阅读 · 0 评论 -
java栈和自定义栈
实质:本质上还是个数组,只不过使用了内部方法让其有了栈的特点。peek():查看栈顶对象,但是不从栈内移除。pop():查看栈顶对象,并且从栈内移除。empty():检测栈是否为空。特点:先入后出,后入先出。push():数据压栈。...原创 2022-08-30 16:05:15 · 632 阅读 · 0 评论 -
多线程与线程池耗时比较
使用多线程向数据库插入20万条数据。使用线程池插入10万条数据。原创 2022-08-16 22:56:51 · 459 阅读 · 0 评论 -
单线程与多线程使用场景
当mysql进程调用磁盘中存储的表文件时,由于磁盘读取速度限制,会消耗大量的时间在上面(通常单个表文件是几十ms),在等待读取的这段时间,CPU在打空转造成了资源浪费,所以如果是单线程调度时每次都要等待,这时使用多线程就可以在CPU等待磁盘调度时去执行其他线程。每个线程在执行时只执行极短的时间,然后去执行其他线程,每次切换之前要记录本次执行的数据,会额外耗费资源和时间,所以会有消耗时间,而每个线程之间切换的速度越快,消耗的时间就越多。网络爬虫,数据库进行批量操作时。......原创 2022-08-16 22:53:07 · 2792 阅读 · 0 评论 -
为什么使用线程池以及线程池工作原理
线程池新建线程的时候,如果当前线程总数小于corePoolSize,则新建的是核心线程,如果超过corePoolSize,则新建的是非核心线程。有工作线程和等待区,在等待区还没满时工作线程只有核心线程,当工作线程排满时,任务进入等待区,等待区是一个队列,作用是实现先入先出的规则。正好,线程池缓存线程,可用已有的闲置线程来执行新任务,避免了T1+T3带来的系统开销,当然一直存活的核心线程也会消耗CPU资源。我们知道线程能共享系统资源,如果同时执行的线程过多,就有可能导致系统资源不足而产生阻塞的情况。...原创 2022-08-16 22:47:52 · 240 阅读 · 0 评论