Java小知识汇总

本文深入探讨了Java中的线程控制方法,包括Thread.yield(), Thread.sleep(), Thread.stop()和Object.wait()等,解释了它们的工作原理及应用场景。同时,文章对比了抽象类与接口的区别,并介绍了在内存限制条件下进行大数据排序的策略,推荐使用归并排序来处理4GB数据。此外,还提供了Linux下检查Tomcat运行状态和端口占用情况的命令。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.Thread相关:

几个方法:Thread.yield(),Thread.sleep(),Thread.stop(),Object.wait()

yield不会造成线程阻塞,重新使线程进入就绪状态。将cpu执行机会让给其他同样优先级或者更高优先级的线程跑任务。可能出现的情况有:调用yield()方法之后,当前没有更高优先级的线程需要执行,然后当前线程被调度器调度执行。通常情况下配合while循环使用。

sleep会阻塞线程但是不会释放锁

wait会阻塞线程并释放锁

二.Java中抽象类和接口中有构造方法吗?

1)接口不能有构造方法,抽象类可以有。 2)接口不能有方法体,抽象类可以有。 3)接口不能有静态方法,抽象类可以有。 4)在接口中凡是变量必须是public static final,而在抽象类中没有要求。

三.接口允许多继承,类是单继承的。接口不允许继承接口(面试题陷阱:java支持多重继承<针对接口>,一个类可以实现多个接口)

四.4g的数据需要排序,计算机内存只有4g,推荐使用归并排序。选择排序、冒泡排序时间复杂度O(N2),插入排序。

详情介绍【简单排序】https://www.cnblogs.com/bjh1117/p/8335628.html

【高级排序】https://www.cnblogs.com/bjh1117/p/8343886.html

冒泡排序:两层循环:内层循环-将相邻的两个值比较,得出最大值放在右侧(升序);内层循环每结束一次,循环范围-1(由外层循环控制)。

选择排序:两层循环:外层循环下标i,每次循环依次找出后续位置比i处数据更小的值,然后两者交换(升序),得出位置i处是后续所有数据中最小的值;外循环每结束一次,内循环次数-1。

插入排序、快速排序、归并排序待补充。

五:linux命令

查看tomcat启动情况:ps -ef|grep tomcat

查看端口占用情况:netstat -anp|grep 8080

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值