网络
文章平均质量分 77
网络知识
false…
这个作者很懒,什么都没留下…
展开
-
TCP连接问题
链接:https://www.nowcoder.com/questionTerminal/4048c3110222428d8fa3b66bba429345?toCommentId=77653来源:牛客网【问题1】为什么连接的时候是三次握手,关闭的时候却是四次握手?答:因为当Server端收到Client端的SYN连接请求报文后,可以直接发送SYN+ACK报文。其中ACK报文是用来应答的,SYN报文是用来同步的。但是关闭连接时,当Server端收到FIN报文时,很可能并不会立即关闭SOCKET,所以只能原创 2021-08-21 01:26:23 · 363 阅读 · 0 评论 -
个人博客测试用例
个人博客项目测试测试顺序:单元测试、集成测试、系统测试、验收测试等1、测试用例的编写测试用例分别从界面、功能、性能、易用性、安全性、兼容性等方面进行分析原创 2021-08-03 20:14:32 · 665 阅读 · 0 评论 -
JUC底下的常用类和ConcurrentHashMap
JUC:1、ReentrantLocka)lock 写在try之前b)一定要记得在final里面进行unlock()。2、信号量(1)acquire()void:尝试获取锁,如果可以正常获取到,则执行后面的业务逻辑,如果获取失败,则阻塞等待。(2)release()void:释放锁。/** * 信号量演示程序 */public class ThreadDemo98 { public static void main(String[] args) { //创建信号原创 2021-06-03 00:54:09 · 151 阅读 · 2 评论 -
走进JVM
1、JVM组成的五部分2、类加载机制3、垃圾回收a):判断什么是垃圾?b):垃圾算法c):垃圾处理器(7种 -> CMS/GI)4、JMM(让JVM高速运行的一种技术)JVM布局(hotspot):JDK1.81、堆:(线程共享)new Object()的所有对象都是存在此区域,此区域也是JVM中最大的一块区域JVM的垃圾回收就是针对此区域的。2、JVM 栈 (Java虚拟机栈)(线程私有)a):局部变量:八大基础数据类型,对象的引用;b):操作栈:每个方法都会对应一个操作原创 2021-06-02 20:56:10 · 165 阅读 · 1 评论 -
常见的锁策略
乐观锁/悲观锁:一、乐观锁:它认为一般情况下不会发生并发冲突,所以只有在进行数据更新的时候,才会检测并发冲突,如果没有冲突则执行修改,如果有冲突则返回失败CAS(乐观锁):(Compare And Swap,比较并且交换)V(内存值) A(旧值) B(新值)乐观锁的实现:Atomic*:乐观锁性能比较高。问:CAS底层实现原理?答:Java层面cas的实现是Usafe类 Usafe类调用了c++的本地方法,通过调用操作系统的Atomic::cmpxchgCAS的缺原创 2021-05-29 23:28:50 · 173 阅读 · 1 评论 -
分析内存溢出问题和简单的单例模式
分析内存溢出:线程池是长生命周期,问:Hashmap和ThreadLocalMap处理哈希冲突的区别?答:Hashmap使用的链表发,而ThreadLocalMap使用的是开放寻址法。为什么要这样实现?答:开放寻址法它的特点和使用场景是数据量比较少的情况下性能更好;而HashMap里面存储的数据通常情况下是比较多的,这个时候使用开放寻址法效率就比较低了,这个时候最好使用链式法...原创 2021-05-27 12:52:05 · 112 阅读 · 0 评论 -
线程池
线程池的创建方式1.线程池的创建方式1:创建固定个数的线程池//创建固定个数的线程池 ExecutorService service = Executors.newFixedThreadPool(10); for (int i = 0; i < 2 ; i++) { //执行任务 service.execute(new Runnable() { @Override原创 2021-05-23 17:23:19 · 239 阅读 · 1 评论 -
线程安全问题
线程安全的概念想给出一个线程安全的确切定义是复杂的,但我们可以这样认为:如果多线程环境下代码运行的结果是符合我们预期的,即在单线程环境应该的结果,则说这个程序是线程安全的。线程不安全的五个因素:1、CPU抢占执行2、内存可见性问题 volatile3、指令重排序问题 volatile4、原子性问题5、多个线程同时修改同一个变量线程安全问题解决方案:1、锁(让多线程排队执行)2、每个线程使用自己的私有变量(可能可以解决问题)锁(分两种)1、synchrinized实现原理:原创 2021-05-22 15:15:49 · 456 阅读 · 1 评论 -
线程的简单操作
线程的休眠import java.util.Date;import java.util.concurrent.TimeUnit;public class ThreadDemo10 { public static void main(String[] args) throws InterruptedException { System.out.println("开始时间:" + new Date()); /*//休眠1s Thread.sleep原创 2021-04-27 00:39:49 · 157 阅读 · 1 评论 -
创建线程的三类方式
多线程的优势—增加运行速度多线程和单线程的比较:public class ThreadDemo3 { //执行循环的次数 private static final Long count = 5_0000_0000L; public static void main(String[] args) throws InterruptedException { //调用多线程的方法 concorrency(); //调用单线程的方法原创 2021-04-26 21:27:43 · 829 阅读 · 0 评论 -
TCP/IP协议
TCP/IP协议八大特性:a):确认应答:b) : 超时重传linux默认超时时间:500ms超时重传策略:1:消息重试时间以指数的形式增加的2:重试一定的次数如果还发送失败,就会强制关闭此连接c) :连接管理:三次握手: syn/syn+ack/ack四次挥手:fin/ack/fin/ack(三次挥手行不行?)答: 有可能可以 ,接收缓冲区如果没有任务就可以d) :滑动窗口【目的是提高传输性能】e) :流量控制【以接收缓冲区的结果大小为导向进行数据的传递】f)原创 2021-04-22 01:48:22 · 124 阅读 · 0 评论