- 博客(22)
- 问答 (2)
- 收藏
- 关注
原创 TCP/IP复习总结
总算是把TCP协议这些东西复习的差不多,就把复习过程中的一些问题用QA的方式来一个总结。TCP协议与UDP协议主要区别UDP是面向数据封包的,封包之间没有相互关系,并且也不提供可靠传输等功能。 TCP是面向数据流的,报文段之间有次序关系,并且会提供可靠传输、流量控制、拥塞控制等功能。举个例子: UDP只关心把这个数据封包发送出去完事儿,至于对方收没收到就不关心了。 TCP不仅关心报文段发没发出
2016-04-17 15:41:03 607
原创 TCP/IP复习笔记(四)之拥塞控制
什么是拥塞我们都知道计算机网络中的资源是有限的。某段时间内网络中对资源的需求超过了网络中的可用部分,而导致网络性能下降的情况就是拥塞。通俗点说就是发送的数据包太多网络中的设备处理不过来,而导致网络性能下降的情况。拥塞控制的方法慢开始拥塞窗口拥塞窗口(cwnd)是指发送方维护的一个根据网络状况动态变化的窗口。一般来说,发送方会让自己的发送窗口等于拥塞窗口的大小。 如果考虑到流量控制的话,发送窗口也
2016-04-17 13:41:41 751 1
原创 TCP/IP复习笔记(三)之流量控制
TCP数据包头复习还记得TCP的数据包头中有个窗口大小的字段吗?在TCP/IP复习笔记(一)中是这样写它的作用的: 窗口(2字节):表示从确认号开始,本报文的源方可以接收的字节数,即源方接收窗口大小。用于流量控制。现在是时候来好好复习一下这个字段了。首先,窗口字段的单位是字节。窗口字段指示的是本方的接收窗口的大小。比如,A给B发送数据,A的发送窗口时20, 接收窗口是30,那么A发送给B的数据
2016-04-10 12:28:37 477
原创 TCP/IP复习笔记(二)
啰嗦一下上一次算是复习了一下TCP协议的大体原理。由于TCP中的内容实在繁杂,光是其中的一个功能的实现原理就足够写一篇博客。于是也只好分成好几篇复习笔记分别来完成,算是复习结果的一个检验。大厦基石–超时重传在上篇中,就复习到TCP可靠传输的实现原理,那就是超时重传。那么什么是超时重传呢?举个栗子,A向B发送数据,A向B发送完一个数据封包完毕后就立即设置一个定时器,在定时器的时间内若未收到B发送回来的
2016-03-27 22:03:49 379
原创 TCP/IP复习笔记(一)
最近又重温了TCP/IP的知识,果然比第一次看的时候有感悟多了,那就写一点东西来总结一下。网络模型现在我们主要了解计算机网络的两种模型:OSI模型和TCP/IP模型。需要注意的是由于OSI模型过于复杂导致难以实现,因此导致TCP/IP模型更早地应用在现实中。这也使得TCP/IP模型成为事实上的标准,而OSI仅仅是纸面上的标准。在OSI模型中,将计算机网络分成了7层,而在TCP/IP模型中则分成了4层
2016-03-14 01:11:30 565
原创 为什么浮点数不能精确表示?
我们知道,在编写程序时,两个浮点数(float或double)不能直接进行大小比较。 当然,我们也都知道,不能直接进行大小比较的原因是因为浮点数在计算机内部不能精确的表示。可是,为什么在计算机内部浮点数不能够精确地表示呢?这还得从IEEE 754标准说起。
2015-11-20 16:53:50 10958 2
原创 git分支管理策略
git是一款优秀的版本控制软件。相比于其他的版本控制软件而言,git分支切换的速度十分迅速,因此,git也鼓励用户多使用分支。然而,版本分支的功能如若使用不慎的话,会造成分支混乱,难以发挥git的真正威力。因此,如果我们要真正发挥git的威力使之有效的管理软件的迭代过程的话,就需要一种靠谱的分支管理策略。下面就来谈谈一种由Vincent Driessen提出的简洁方便的分支管理策略。
2015-11-18 11:25:13 301
原创 UIScrollView和AutoLayout
UIScrollView及其AutoLayout之所以要把UIScrollView单独拿出来说,是因为UIScrollView在AutoLayout时是一个比较特殊的视图。它特殊就特殊在它的Top、Trailing、Head、Bottom是相对于它的ContentSize来设置的,而不是它的bounds来设置的。同时,要实现视图的滚动,UIScrollView就得先知道要滚动的视图(UIScroll
2015-11-15 21:02:13 307
原创 Objective-C实现对象复用
在实际编程中,有许多对象创建时的代价比较昂贵,我们应该尽量避免产生新的实例,然而,我们又会频繁的使用到这些对象。那我们应该如何才能既尽量少的实例化新对象又能物尽其用多次使用呢?这篇文章中的使用对象复用池的方法或许是一个能做到以上几点、行之有效的提高程序性能的方法。
2015-11-09 17:31:39 321
原创 JDBC查询性能优化之批量查询
问题在很多时候,我们需要使用如下SQL语句进行查询操作:SELECT * FROM table1 WHERE id IN (1,2,3);然而,PreparedStatement不支持把语句把语句写成如下形式SELECT * FROM table1 WHERE id IN ? 那么,我们又应该如何实现查询又兼顾性能呢?
2015-10-28 17:24:23 1722
原创 Objective-C对象初始化小结
关于Objective-C对象初始化方法需要格外注意一些问题才能保证对象初始化的正确。这篇博文就需要注意的一些问题进行一个小小得总结,以便编写正确的代码。
2015-10-17 20:06:58 321
原创 应用Master定理求解递归方程
Master定理也叫主定理,它提供了一种通过渐近符号表示递推关系式的方法。应用Master定理可以很简便的求解递归方程。然而又应该如何应用Master快速求解递归方程式并且避开Master定理的坑呢?本文中将会对这些问题进行详细描述。
2015-10-04 15:33:02 3621 3
原创 理解Objective-C中的类与对象
前言Objective-C是一门十分动态的语言。为什么会体现出动态性呢?是因为Objective-C将许多工作放在了运行时去完成,例如Objective-C中的类与对象就是在运行时动态创建和绑定的。因此,理解好Objective-C中的类与对象模型对于理解好Objective-C的运行期系统有很大帮助。而运行期系统又是Objective-C的核心,因此,理解好oc中的类与对象模型对整体理解oc这门语
2015-09-20 16:47:12 966
原创 iOS Core Data框架使用
什么是Core Data简单来说,Core Data就是一个面向对象的持久化数据管理框架。使用Core Data可以将数据持久化的保存在存储设备中,也可以在适当的时候将其取出来。Core Data底层的存储方式既可以是SQLite数据库也可以是XML文档甚至都可以将数据保存在内存中。使用Core Data的好处是可以以面向对象的方式进行数据操作避免了直接与SQL语句接触,简化了操作步骤,提升程序开发效率。
2015-09-13 21:10:33 303
原创 IOS中GCD使用简介
什么是GCDGrand Central Dispatch (GCD)是Apple推出的一项多线程编程的方法以用来替代NSThread, NSOperationQueue, NSInvocationOperation 等技术。GCD配合block使用时同时也明显降低了多线程编程的复杂性使程序员能够轻松绕过多线程编程的一些坑。
2015-09-06 21:45:23 372
原创 坚若磐石——浅谈防御性编程
程序的健壮性是评价软件质量的方面之一,也应是程序员们不断的努力目标。那么我们应该如何提高我们的程序的健壮性让我们的程序坚若磐石呢?我想防御性编程就是措施之一,下面是我的一些感悟和总结,欢迎阅读并指教。
2015-08-06 21:36:25 721
原创 二叉树递归遍历与非递归遍历
二叉树递归遍历与非递归遍历二叉树递归遍历与非递归遍历引言递归式遍历前序遍历中序遍历后序遍历非递归式遍历前序遍历中序遍历后序遍历一种更简单的非递归式遍历前序遍历中序遍历后序遍历引言由于二叉树是由递归定义的一种数据结构,因此递归式遍历也就是最符直觉的一种遍历方式。此外,由于递归的简洁性以及三种递归的高度统一,因此递归式遍历也是容
2015-07-23 21:10:11 2477
转载 数据库写入性能优化
数据库写入性能优化标签(空格分隔):数据库 java sqlserver数据库写入性能优化两个实例example1example2Statement PreparedStatement关闭自动提交感谢两个实例最近因为比赛缘故,频繁使用java操作数据库,由于要写入的数据量比较庞大(大约100w左右),故往数据库里写入数据的性能一直不能令人满意(简直就是慢的飞起)。最近两天一直在研究如
2015-05-09 21:25:56 1699
空空如也
Objective-C 关于super的问题
2015-10-16
java大批量数据导入数据库
2015-05-07
TA创建的收藏夹 TA关注的收藏夹
TA关注的人