携程一面3.24复盘

135 阅读1分钟

携程面试官很好,在找到我的不足的同时还十分和蔼,十分照顾我的情绪

当然,我不好,背面经的同时对知识没有系统的掌握,很是尴尬

项目

基础

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,发送给客户端 第五次:验证完成握手

其实就是三次加证书