自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 收藏
  • 关注

原创 两个例子理解主机字节序和网络字节序,不同平台字节序转换

不同平台存储多字节整形数据的内存顺序不同,分为主机字节序和网络字节序分别对应小端字节序和大端字节序Java平台存储多字节整形时是大端字节序,如存储int i=0x01020304 在内存中的顺序是 01 02 03 04。先占位高内存,后占位低内存。即数值的高位存储在低内存上c++ windows平台下是低端字节序 int i=0x01020304 在内存中的顺序是 04 03 02 01。先占位低

2017-09-10 18:53:52 1332

原创 Socket TCP协议 实时通信的粘包处理 Java与C++实现

原理:(经典)tcp粘包分析目的:TCP连接面向流,读取网络的一包数据不一定正好是协议里定义的完整的一包,有可能是多包,有可能是半包,也有可能是一包半,现在要将每次读取的数据进行分包,也就是粘包处理,提取出完整的一包数据供上层使用,上层需要将完整的一包数据里的数据根据协议定义的格式提取出来。实现:将收到的数据copy到缓存区,在缓存区里循环从起始位按照协议找出完整的一包数据提取出来。 关键点在于根

2017-08-12 09:46:45 2388 6

原创 通过keytool获取key发布版、开发版SHA1,用jarsigner工具进行签名

获取key发布版、开发版SHA1 Keytool 是一个Java数据证书的管理工具 ,此工具在JDK中自带发布版SHA1:在cmd下 keytool -list -v -keystore D:\androidTask\keystore\HT.jks (发布版的签名) 开发版SHA1:在cmd下 keytool -list -v -keystore C:\Users\yourname\.and

2017-08-08 14:46:57 1372

转载 深入理解Java类型信息(Class对象)与反射机制

【版权申明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) http://blog.csdn.net/javazejian/article/details/70768369 出自【zejian的博客】关联文章:深入理解Java类型信息(Class对象)与反射机制深入理解Java枚举类型(enum)深入理解Java注解类型(@Annotation)深入理解Java并发之synchronize...

2018-05-07 12:57:46 239

转载 35+ 个 Java 代码性能优化总结

前言代码优化,一个很重要的课题。可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑的,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗?没用,但是,吃的小虾米一多之后,鲸鱼就被喂饱了。代码优化也是一样,如果项目着眼于尽快无BUG上线,那么此时可以抓大放小,代码的细节可以不精打细磨;但是如果有足够的时间开发、维护代码,这时候就必须考虑每个可以优...

2018-04-28 11:16:13 312

转载 多线程的代价及上下文切换

多线程的代价     使用多线程往往可以获得更大的吞吐率和更短的响应时间,但是,使用多线程不一定就比单线程程序跑的快,这取决于我们程序设计者的能力以及应用场景的不同。不要为了多线程而多线程,而应考虑具体的应用场景和开发实力,使用多线程就是希望能够获得更快的处理速度和利用闲置的处理能力,如果没带来任何好处还带来了复杂性和一些定时炸弹,那还傻逼了吗?只有在使用多线程给我们带来的好处远大于我们付出的代价...

2018-04-28 11:05:08 321

原创 c++ 数据解析常用的知识点与方法

###char数组(字符串)转int 这个过程是将每个字节二进制代表的数按照ascll码对应的数组合起来,比如:char c[2] ;ZeroMemory(c,5);c[0]= 49;c[1]= 49;int i = atol(c);i输出是11,因为每个字节存储的是49,对应的字符是1,所以是11###char数组整体看做一个二进制块转成一个intint i =0;char [4];int i...

2018-04-28 10:55:29 1174

原创 Java平台与WindowsMFC平台 通信IO模型

在Java平台与windowsMFC平台下写通信服务,比较一下几种IO模型。在Java平台下,一般用的都是BIO模型,一个TCPsocket连接一个线程处理收到的数据,线程在读取数据read()方法时阻塞,意味着一个TCP连接就需要一个线程异步处理IO操作,多个连接就需要多个线程,如果TCP数据不是实时发送,这个线程就一直在等待数据,耗费资源。而在Windows平台下有AsyncSocket 异步...

2018-04-26 17:58:17 464

原创 在已损坏了程序内部状态的 xxx.exe 中发生了缓冲区溢出。按“中断”以调试程序,或按“继续”以终止程序

bug描述:在协议解析过程中,客户端命令里某一项value值超过了申请的处理字符串buffer的长度,拷贝的时没问题,但在读取的时候编译器是以'\0'结尾标识一个CString,在读取时会从内存起始位向后寻找'\0',此时内存溢出。在已损坏了程序内部状态的XXX.exe 中发生了缓冲区溢出"的一种可能原因 点击打开链接在release模式下调用了 debug 部分的dll出现这个问题.  点击打开...

2018-04-23 16:37:13 4938

原创 不同平台间通信协议转换服务业务流程图

此项目向上提供固定格式协议服务,向下连接设备,作用是多连接协议转换,将流程图画出以总结

2018-04-19 21:14:02 785

转载 Java并发编程:volatile关键字解析

volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatile关键字是与Java的内存模型有关的,因此在讲述volatile关键之前,我们先来了解一下...

2018-04-17 16:20:52 217

转载 ATL字符串转换宏

有比MultiByteToWideChar和WideCharToMultiByte更简单的字符串转换宏,你相信吗?头文件d:/program files/microsoft visual studio 8/vc/atlmfc/include/atlconv.h如果要使用ATL字符串转换宏,请先定义USES_CONVERSION;  // 只需要调用一次,就可以在函数中进行多

2017-12-28 12:23:43 334

转载 对 c\c++ char类型的理解

字符字面值一般是用一对单引号来表示。char类型一般就是用字符字面值来初始化、赋值。由于char类型的是单字节长度,当给char类型的变量用字符字面值赋值时,当单引号里面的内容超过一个字节时,系统会自动截取一个字节的内容给char变量,忽略其他的字节内容。比如char a='1234';c++会认为单引号里的每一个数值都看做一个字符字面值,也就是说1 2 3 4各占一个字节,'1234

2017-08-25 10:13:41 629

翻译 A-simple-IOCP-Server-Client-Class完成端口

本文介绍一个可以在客户端和服务器代码中使用的类。该类使用以后解释的IOCP(输入输出完成端口)和异步(非阻塞)函数调用。源代码基于许多其他源代码和文章:[1,2和3]。使用这个简单的源代码,您可以:●服务或连接到多个客户端和服务器。 ●异步发送或接收文件。 ●创建和管理逻辑工作线程池以处理较重的客户机/服务器请求或计算。很难找到一个全面但简单的源代码来处理客户端/服务器通信。在网络上找到的源代码太复杂(20+以上),或者没有提供足够的效率。该源代码设计为尽可能简单和文档化。在本文中,我们将简要介绍Wi

2017-08-20 16:41:18 875

原创 实现listview手指快速滑动后抬起状态下图片数据加载优化

手指快速滑动后抬起,在listview自由滑动状态下不对图片进行网络请求与绘制手指拖拽滑动,正常请求图片并绘制- 用户快速滑动listview,说明用户对这部分数据不关心,对于用户不关心的数据不进行网络请求,节省流量。setOnScrollListener listView.setOnScrollListener

2017-08-07 13:29:59 524

转载 单例模式还是静态类

转载自http://raychase.iteye.com/blog/1471015.单例模式还是静态类,这是一个老话题了,从我刚开始接触Java的时候就看到这样的讨论。在这里我总结一下,也添加一点点新东西。首先要澄清和区别一些概念,“静态类”和“所有方法皆为静态方法的类”。 严格说来,Java中的静态类,指的是“static class”这样修

2017-08-04 11:06:58 524

转载 UML常用图的几种关系的总结

在UML的类图中,常见的有以下几种关系: 泛化(Generalization),  实现(Realization), 关联(Association), 聚合(Aggregation), 组合(Composition), 依赖(Dependency)1.       泛化(Generalization)【泛化关系】:是一种继承关系, 表示一般与特殊的关系, 它指定了子类如

2017-08-04 10:05:28 360

原创 android.view.InflateException: Binary XML file line自定义view的构造函数引起

自定义view的构造函数问题

2017-07-24 22:30:34 385

原创 反转字符串、整形数组某个数字出现的次数、排序

反转字符串://三种实现方式public String reverse1(String str){ return new StringBuilder(str).reverse().toString(); }public String reverse2(String str) { StringBuilder sb = new StringBuilder();

2017-07-15 15:57:32 586

转载 安卓开发规范

Android开发规范

2017-07-11 22:58:17 443

转载 时间复杂度计算

时间复杂度

2017-07-11 10:17:07 449

原创 Android ListView 常见问题记录

滑动listview图片位置,CheckBox复选框错乱,Item中的CheckBox屏蔽了item的点击事件

2017-07-06 14:38:43 404

原创 Retrofit+Rxjava+okhttp基本使用

Retrofit+Rxjava+okhttp基本使用

2017-07-06 13:51:35 951

转载 java回调机制

转自http://blog.csdn.net/xiaanming/article/details/17483273以前不理解什么叫回调,天天听人家说加一个回调方法啥的,心里想我草,什么叫回调方法啊?然后自己就在网上找啊找啊找,找了很多也不是很明白,现在知道了,所谓回调:就是A类中调用B类中的某个方法C,然后B类中反过来调用A类中的方法D,D这个方法就叫回调方法,这样子说你是不是有点晕晕

2016-02-26 15:29:13 515

转载 Fragment用app包还是v4包解析

转自:http://www.it165.net/pro/html/201411/26897.html1)问题简述相信很多的朋友在调用Fragment都会遇到下面的情况:这个时候问题来了...到底是用android.app下的Fragment还是用的android.support.v4.app包下的Fragment?答:其实都可以,没错,都可以!!!我

2016-02-23 10:59:57 3694

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除