携程面试官很好,在找到我的不足的同时还十分和蔼,十分照顾我的情绪
当然,我不好,背面经的同时对知识没有系统的掌握,很是尴尬
项目
基础
map<Integer,Integer> aa;
int a = aa.get(1)
会出什么错误?
一个是未定义aa,加上new以后是空指针异常 这题答不出来不应该,也确实好久没写java代码了
实现一个死锁
class lock1 implements Runnable{
public void run(){
synchronized(Main.l1){
System.out.println("1:我获得了第一个锁");
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
synchronized(Main.l2){
System.out.println("1:我获得了第二个锁");
}
}
}
}
class lock2 implements Runnable{
public void run(){
synchronized(Main.l2){
System.out.println("2:我获得了第一个锁");
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
synchronized(Main.l1){
System.out.println("2:我获得了第二个锁");
}
}
}
}
public class Main {
public static String l1="lock1";
public static String l2="lock2";
public static void main (String[] args) {
Thread lo1=new Thread(new lock1());
Thread lo2=new Thread(new lock2());
lo1.start();
lo2.start();
}
HTTPS和HTTP在三次握手上的不同
第一次:客户端发送自己支持的加密协议,版本,SSL,TLS 第二次:服务器发送自己的证书(私钥加密) 客户端验证证书,生成随机数(对称加密的私钥),生成握手信息,用随机数对握手和握手hash加密,用公钥对随机数加密 第三次:客户端发送(加密过的随机数,握手信息,握手信息的hash) 服务器解密,验证握手信息 第四次:服务器用该随机数加密握手信息和hash,发送给客户端 第五次:验证完成握手
其实就是三次加证书