Chejdj Blog

计算机网络

TCP的三次握手理解 传输层 简介: 客户端向服务器TCP发送一个特殊的TCP报文段,里面SYN标志位置为1,并且随机选择一个初始序号,服务器接收到该报文段,为该tcp连接分配内存和变量,并且向客户端发送允许连接的报文段ACK,同时包里面的SYN置为1,发送自己随机选取的初始序号,客户端接受到ACK,客户端也为该连接分配内存和变量,向服务器发送确认允许连接。 三次握手的意义: TCP...

Java实现单例模式

在面试的时候应该经常会问道的一种题型,使用某种语言实现单例模式,这里就记录一下常见的几种方法。 单例模式:实现一个只能生成一个实例的类。 方法一 1 2 3 4 5 6 7 8 9 public Singleton{ private Singleton instance=null; private Singleton(){} public static Singlet...

View的事件分发机制

再过几天就面试了,现在整理一下View的事件分发机制的整个过程。首先,我们看一下Android UI界面的构架图 ViewGroup的事件分发 每个Activity都包含有一个Window对象,在Android中window的实现类是PhoneWindow来实现,PhoneWindow又将一个DecorView设置为整个应用的窗口的根View,DecorView作为窗口界面的顶层视图,可以理...

利用Github搭建自己专属博客

这是一个在Windows简易的搭建博客的方法,建立使用Jekyll构建自己的博客,所以这一篇文章采用fork别人的模板来构建(“偷懒”),在此之前需要满足一下条件 注册一个Github账号 本地安装Git,并且能实现Git向自己的仓库push文件 教程 第一步:fork别人模板 这里我以自己的博客的模板为例(fork),我自己采用的一款名叫NexT主题,在github上面...

Linux下使用udp协议实现群聊室

这个正好是我的一个课堂上机小练习,为了实现这个功能,我们需要了解一下几个知识点。 udp发送和接受数据的过程 select语句功能 如何开启一个线程 如何传输结构体struct 一.udp发送数据和接受数据流程 无论是客户端还是服务器端,刚开始都需要向系统申请套接字socket,然后通过socket来实现发送和接受消息,只不过服务器端需要把该套接字绑定到某个端口...

源码分析adapter的notifyDataSetChanged

我们在使用listview控件的时候,总是会因为数据的改变,而需要更新listview控件的内容,这时候总是会调用adapter的notifyDataSetChanged()方法,现在分析一下,调用这个方法具体实现了什么步骤。 第一步 首先调用了mDataSetobservable.notifyChanged() (DataSetObservable类)方法 第二步 接着 循环调用了...