hashMap去重/排序: 1)map集合需要键名唯一,hashmap是通过hashcode和eauals来控制键名唯一; 2)从写Comparable中的compareTo方法来对map集合排序; 1、实体类: 2、测试类; ...
分类:
编程语言 时间:
2019-07-26 01:26:36
阅读次数:
140
1.数据包校验,发送方计算校验和,接收方结算校验和,进行对比2.应答机制,seq序列号与ack确认号 3.超时重传机制,发送后启动定时器,进行重传 4.连接管理,三次和四次5.对失序数据包重排序6.流量控制和拥塞控制,使用滑动窗口协商大小 ...
分类:
其他好文 时间:
2019-07-20 13:19:49
阅读次数:
119
一:数组重构,将返回的数组重构成自己想要的结构; 二:数组去重,排序,获取最大值;三:数组日期处理 ...
分类:
编程语言 时间:
2019-07-13 19:52:39
阅读次数:
107
.sel不会生效,因为css先按权重排序,权重大的样式优先使用,权重一样的才按先后顺序 改成: .flex-item { background-color: red; width: 100px; } .sel { background-color: black; } 或者: .flex-contai ...
分类:
Web程序 时间:
2019-07-03 16:44:11
阅读次数:
134
原文地址:https://www.cnblogs.com/guanghe/p/9206635.html 1. 要想并发程序正确地执行,必须要保证原子性、可见性以及有序性。只要有一个没有被保证,就有可能会导致程序运行不正确。 2. volatile关键字只能保证可见性和有序性,且会禁止指令重排序,vo ...
分类:
其他好文 时间:
2019-07-03 13:27:17
阅读次数:
105
thread的join方法是运行该方法的线程必须等到join方法的线程运行完毕才能让当前线程继续运行。原理是校验join线程是否存活,存活就一直循环等待,直到线程over了,才继续向下运行。volitile 是让线程间进行通讯的,解决了编译器的重排序,是程序按照正常的执行流程运行, jstat 命令 ...
分类:
编程语言 时间:
2019-06-30 22:03:41
阅读次数:
174
1.JVM内存模型 线程独占:栈,本地方法栈,程序计数器线程共享:堆,方法区 回答以上问题是需回答两个要点:1. 各部分功能2. 是否是线程共享 2.JMM与内存可见性JMM是定义程序中变量的访问规则,线程对于变量的操作只能在自己的工作内存中进行,而不能直接对主内存操作.由于指令重排序,读写的顺序会 ...
分类:
编程语言 时间:
2019-06-29 10:49:37
阅读次数:
120
一、基础篇 JVM JVM内存结构 堆、栈、方法区、直接内存、堆和栈区别 Java内存模型 内存可见性、重排序、顺序一致性、volatile、锁、final 垃圾回收 内存分配策略、垃圾收集器(G1)、GC算法、GC参数、对象存活的判定 JVM参数及调优 Java对象模型 oop-klass、对象头 ...
分类:
编程语言 时间:
2019-06-28 21:04:23
阅读次数:
179
本文将从以下几个方面描述java多线程编程相关的内容。 线程简介 线程的状态与上下文切换的概念 线程的监控 synchronize和volatile 多线程的优点和缺点 多线程的设计模式 线程池 线程简介 进程代表运行中的程序。一个运行的java程序就是一个进程。 从操作系统的角度来看,线程是进程中 ...
分类:
编程语言 时间:
2019-06-17 19:03:23
阅读次数:
106
一旦一个共享变量(类的成员变量、类的静态成员变量)被volatile修饰之后,那么就具备了两层语义:1)保证了不同线程对这个变量进行操作时的可见性,即一个线程修改了某个变量的值,这新值对其他线程来说是立即可见的。(读取值时强行获取主内存中的值,设置值时将工作内存的数据刷新到主内存中)2)禁止进行指令重排序。注意:不具备原子性,使用也有很多限制,需要原子性则可以使用juc的锁机制,如:synchro
分类:
其他好文 时间:
2019-06-14 17:55:51
阅读次数:
133