java线程的创建方式有哪些?
① 继承 Thread 类并重写 run 方法。实现简单,但不符合里氏替换原则,不可以继承其他类。
② 实现 Runnable 接口并重写 run 方法。避免了单继承局限性,编程更加灵活,实现解耦。
③实现 Callable 接口并重写 call 方法。可以获取线程执行结果的返回值,并且可以抛出异常。
这个问题很常见
从浏览器输入URL到展示页面的全流程是怎么样的?
使用js实现数组的冒泡排序
请实现KMP算法?
解释一下TCP的滑动窗口。
这个问题很常见