快手Java开发 一二面面经(转载)1
答案我自己看着写的,未必一定对,希望有个offer吧,不想去某个坑逼辣鸡公司。
二面部分还没写完,差不多了吧。。。
作者:GuiStarLee
链接:https://www.nowcoder.com/discuss/417783?type=post&order=time&pos=&page=1&channel=
来源:牛客网




java内存通常被划分为5个区域:程序计数器(Program Count Register,指向当前线程要执行的下一段指令代码)、本地方法栈(Native Stack,为 JVM 使用到的 Native 方法服务。也就是直接和底层交互的代码)、方法区(Methon Area,静态变量+常量+类信息(版本、方法、字段等)+运行时常量池存在方法区中。)、栈(Stack,为 JVM 执行 Java 方法服务)、堆(Heap,堆是Java虚拟机所管理的内存中最大的一块存储区域。堆内存被所有线程共享。主要存放使用new关键字创建的对象。所有对象实例以及数组都要在堆上分配。)






1)继承Thread类创建线程 编写简单,直接使用this即可获得当前线程。
2)实现Runnable接口创建线程 编程复杂,如果要访问当前线程,则必须使用Thread.currentThread()方法。线程类只是实现了Runnable接口或Callable接口,还可以继承其他类,
3)使用Callable和Future创建线程
作者:GuiStarLee
链接:https://www.nowcoder.com/discuss/417783?type=post&order=time&pos=&page=1&channel=
来源:牛客网
(2)
(3) 
方法:一个栈存储元素,一个栈辅助
维护两个栈,第一个栈存储元素,第二个栈用于辅助操作。
根据栈的特性,第一个栈的底部元素是最后插入的元素,第一个栈的顶部元素是下一个被删除的元素。为了维护队列的特性,每次插入的元素应该在第一个栈的底部。因此每次插入元素时,若第一个栈内已经有元素,应将已有的全部元素依次弹出并压入第二个栈,然后将新元素压入第一个栈,最后将第二个栈内的全部元素依次弹出并压入第一个栈。经过上述操作,新插入的元素在第一个栈的底部,第一个栈内的其余元素的顺序和插入元素之前保持一致。
删除元素时,若第一个栈非空,则直接从第一个栈内弹出一个元素并返回,若第一个栈为空,则返回 -1。
另外维护队列的元素个数,用于判断队列是否为空。初始元素个数为 0。每次插入元素,元素个数加 1。每次删除元素,元素个数减 1。
作者:LeetCode-Solution
链接:https://leetcode-cn.com/problems/yong-liang-ge-zhan-shi-xian-dui-lie-lcof/solution/mian-shi-ti-09-yong-liang-ge-zhan-shi-xian-dui-l-3/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
class CQueue {
Stack<Integer> stack1;
Stack<Integer> stack2;
int size;
public CQueue() {
stack1 = new Stack<Integer>();
stack2 = new Stack<Integer>();
size = 0;
}
public void appendTail(int value) {
while (!stack1.isEmpty()) {
stack2.push(stack1.pop());
}
stack1.push(value);
while (!stack2.isEmpty()) {
stack1.push(stack2.pop());
}
size++;
}
public int deleteHead() {
if (size == 0) {
return -1;
}
size--;
return stack1.pop();
}
}
/**
* Your CQueue object will be instantiated and called as such:
* CQueue obj = new CQueue();
* obj.appendTail(value);
* int param_2 = obj.deleteHead();
*/
作者:LeetCode-Solution
链接:https://leetcode-cn.com/problems/yong-liang-ge-zhan-shi-xian-dui-lie-lcof/solution/mian-shi-ti-09-yong-liang-ge-zhan-shi-xian-dui-l-3/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

浙公网安备 33010602011771号