在了解TCP三次握手,前先了解TCP用来确认链接和数据顺序要用到的报文头
序号(seq):表示发送的数据字节流,确保TCP传输有序,对每个字节编号
确认序号(ack):发送方期待接收的下一序列号,接收成功后的数据字节序列号加 1。只有ACK=1时才有效。
ACK(Acknowledge character):确认序号的标志,ACK=1表示确认号有效,ACK=0表示报文不含确认序号信息
SYN(Synchronize Sequence Numbers):连接请求序号标志,用于建立连接,SYN=1表示请求连接
FIN:结束标志,用于释放连接,为1表示关闭本方数据流
继续阅读→

阅读全文

jps : 虚拟机进程状况工具

-q:仅输出VM标识符,不包括classname,jar name,arguments in main method;
-m:输出main method的参数;
-l:输出完全的包名,应用主类名,jar的完全路径名,进程号;
-v:输出jvm参数 ;
-V:输出通过flag文件传递到JVM中的参数(.hotspotrc文件或-XX:Flags=所指定的文件 ;

继续阅读→

阅读全文

迭代算法,也称辗转算法,是一种不断用变量的旧值递推新值的过程。
递归中一定有迭代,但是迭代中不一定有递归,大部分可以相互转换
能用迭代的不用递归,递归调用函数,浪费空间,并且递归太深容易造成堆栈的溢出 继续阅读→

阅读全文

递归调用还是经常用得到的,这里用一个求阶乘的问题来写一个demo。
递归和递推的区别,
递推类似多米诺骨牌,根据前面得到后面
递归类似大事化小
例如
2的阶乘 : 1 * 2
3的阶乘 : 1 * 2 * 3
4的阶乘 : 1 * 2 * 3 * 4 继续阅读→

阅读全文
  • 1.虚拟机运行时运用一种叫做栈桢的数据结构,保存上下文数据。
  • 2.每一个方法的调用都伴随这栈桢的入栈操作,相应的,方法的返回则表示栈桢的出栈操作。
  • 3.如果方法调用时,局部参数相对较多,那么栈桢中的局部变量就大,因此单个方法调用所需的栈空间也会比较多

继续阅读→

阅读全文

docker的常用网络模式
None网络:这种网络模式下容器只有lo回环网络,没有其他网卡。none网络可以在容器创建时通过 –network=none 来指定。这种类型的网络没有办法联网,封闭的网络能很好的保证容器的安全性。
继续阅读→

阅读全文

WebSocket协议是基于TCP的一种新的网络协议,它实现了浏览器与服务器全双工(full-duplex)通信,即运行服务器主动发送消息给客户端,通常我们的http访问,都只能是又客户端访问驱动

下面将演示一下如何使用java spring搭建一个简单的服务端点
如果你对前端如何实现一个websocket客户端感兴趣,作为关联学习你可以查看(http://zengbingo.com/?p=1494)

继续阅读→

阅读全文

在企业的实践生产中,可能需要使用一些定时任务,例如,月报,账单之类的,
除了使用第三方的定时任务例如唯品会提供的开源的分布式任务调度(saturn:https://github.com/vipshop/Saturn),
我们还可以自己在spring中简单的使用定时任务
继续阅读→

阅读全文