这些年背过的面试题——实战算法篇
解决办法是将20亿个数的大文件利用哈希函数分成16个小文件,根据哈希函数可以把20亿条数据均匀分布到16个文件上,同一种数不可能被哈希函数分到不同的小文件上,假设哈希函数够好。然后对每一个小文件用哈希函数来统计其中每种数出现的次数,这样我们就得到16个文件中出现次数最多的数,接着从16个数中选出次数最大的...
Java 21:下一个LTS版本,提供了虚拟线程、记录模式和模式匹配
JEP444(虚拟线程)根据前两轮预览的反馈最终确定了这个特性:JEP436(虚拟线程第二次预览)在JDK20中交付;JEP425(虚拟线程第一次预览)在JDK19中交付。该特性为Java平台提供了虚拟线程。这种轻量级的线程可以显著减少编写、维护和观测高吞吐量并发应用程序的工作量。JEP436最重要的变化是,虚拟线程现在...
还不知道如何在java中终止一个线程?快来,一文给你揭秘
如果此线程在InterruptibleChannel上的I/O操作中处于被阻塞状态,则该channel将被关闭,该线程的中断状态将被设置为true,并且该线程将收到java.nio.channels.ClosedByInterruptException异常。如果此线程在java.nio.channels.Selector中处于被被阻塞状态,则将设置该线程的中断状态为true,并且它将立即从select操作中返回。...
一文带你了解OOM及解决方案!
1.内存不足,无法创建新线程。由于线程在本机内存中创建,报告这个错误表明本机内存空间不足解决方案1.为机器分配更多的内存2.减少Java堆空间3.修复应用程序中的线程泄漏。4.增加操作系统级别的限制ulimit-a用户进程数增大(-u)18001.使用-Xss减小线程堆栈大小7.杀死进程或子进程...
【原创】Java并发编程系列35 | ScheduledThreadPoolExecutor定时器
//1.创建线程池定时器ScheduledExecutorServicetimer=Executors.newScheduledThreadPool(3);//2.提交定时任务:10ms后打印第一次,之后每隔30ms打印一次timer.scheduleAtFixedRate(newRunnable(){@Overridepublicvoidrun(){System.out.println(1);...
CPU100%,CPU飙高,频繁GC,怎么排查?
可以看到,有一个Java程序此时CPU占用量达到了98.8%,此时我们可以复制该进程id9,并且使用如下命令查看呢该进程的各个线程运行情况:top-Hp9该进程下的各个线程运行情况如下:top-08:31:16up30min,0users,loadaverage:0.75,0.59,0.35...
四面阿里余额宝成功拿下offer,2020阿里面试真题
AOP和IOC的原理代码编写:两个线程,一个线程打印奇数,一个打印偶数,控制交替打印奇偶数。(有多种方法实现,最好能比较优劣)余额宝二面查询中哪些情况不会使用索引?数据库索引,底层是怎样实现的,为什么要用B树索引?Mysql主从同步的实现原理?MySQL是怎么用B+树?谈谈数据库乐观锁与悲观锁?有使用过哪些...
深入浅出解析JVM中的Safepoint|调用|线程|代码|jvm_网易订阅
添加JVM打印安全点日志参数-XX:+PrintSafepointStatistics后再执行上面的实例代码,结果如下截图:可以从安全点日志中看到,JVM想要执行novmoperation,这个操作需要线程进入安全点,整个期间有12个线程,正在运行的线程有两个,需要等待这两个线程进入安全点,等待耗时2251ms。