一.2022.1北京中煤电器有限公司:
1.自我介绍+项目描述
2.tcp的三次握手
首先我简单说一下TCP协议的几个特点:
1、TCP是面向连接的协议(这就好比我要给你打电话,咱们俩之间的通讯路线必须是连接状态)
2、TCP连接是点对点的
3、TCP连接提供可靠交付
4、TCP连接是双向的通信
5、TCP是面向字节流传输数据
其次是三次握手的过程:TCP是面向连接的,所以每次传输数据之前,必须要建立TCP连接,在TCP建立时主要解决三个问题:1、使连接的每一方都确认对方的存在 2、协商连接中的参数,比如各方窗口值,时间戳等 3、各方对运输资源如缓存大小、连接表等进行分配
总结起来看,TCP三次握手过程就是client与service在相互确认各自发送和接收是否正常的过程:
第一次握手:client-->server,server确认了client的发送能力和自己的接收是否正常的过程
第二次握手: server-->client,client确认了自己的发送能力和server的接收能力是正常的,但是server此时不清楚自己的发送能力是否正常
第三次握手:client--->server,server确定了自己的发送能力正常,同时也表明双方也都确认完毕,可以开始传输数据。
2.java面向对象有哪些特征?
1.封装(可以在不影响使用的情况下,改变类内部的结构,只要对外接口不变,内部类随便,同时也保护了数据,提高代码复用性) 2.继承(提高代码的复用性) 3.多态(多态第一要有继承,第二要有重写,第三父类对象指向子类对象,增加了代码的可移植性,灵活性 )
3.Arraylist和Linkedlist的区别?
Arraylist和Linkedlist本身都实现了list接口,但是底层实现的数据结构是不一样的,ArrayList底层是用数组来实现的,一个数据一个数据是挨着的,下面是带索引的,而链表是构成数据的链条,每个节点除了存储数据以外,还要存储指向下一个数据的指针。插入数据和删除数据多的时候用Linkedlist。如果访问数据较多的时候用Arraylist较多
4.高并发中的集合有哪些问题?******
第一代线程安全集合类是通过synchronized修饰方法来保证线程安全的(Vector HashTable)
第二代线程非安全集合类:线程不安全,但是性能较好(用Arraylist、HashMap代替了Vector HashTable),需要线程安全的时候用可以用collections.synchronized(list);collection
collections.synchronizedMap(m);
5.JDKHWDAWDWAAWD