自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

icodeyou的专栏

把编程当做一种 爱

  • 博客(31)
  • 收藏
  • 关注

原创 CopyOnWrite 浅层次总结

同 ConcurrentHashMap 一样,CopyOnWrite 也是一种多线程并发中使用的容器,实现起来要比 ConcurrentHashMap 简单不少。从 JDK1.5 开始 Java 并发包里提供了两个使用 CopyOnWrite 机制实现的并发容器,它们是 CopyOnWriteArrayList 和 CopyOnWriteArraySet。CopyOnWrite 容器非常有用,可以在

2015-11-01 11:12:11 676

原创 Android 开发艺术探索读书笔记

和《Android 群英传》一样,《Android 开发艺术探索》是一本进阶的书,比群英传还要进阶一些,特来拜读。不能在 onPause 中做重量级的操作,因为必须 onPause 执行完成以后新启动的 Activity 才能 onResume。其实 onPause 和 onStop 都不能执行耗时的操作,尤其是 onPause,这也意味着,应当尽量在 onStop 中做操作,从而使得新 Acti

2015-11-01 11:10:55 933

原创 ConcurrentHashMap 浅层次总结

学习了 ConcurrentHashMap 的源码,不由地为设计者的思想点赞,现在时间有限,先总结一些我觉得比较有用的知识点,先占个坑,等有时间再详细分析源码。Java 内存模型重排序编译器生成指令的次序,可以不同于源代码所暗示的“显然”版本处理器可以乱序或者并行的执行指令缓存会改变写入提交到主内存的变量的次序内存可见性执行线程 A 的处理器把变量 V 缓存到寄存器中执行线程 A 的处理

2015-11-01 11:09:51 1269

原创 说说 getMainLooper

关于 Handler、Looper、MessageQueue,我想大家都了解的差不多了,简单来说就是一个 Handler 对应一个 Looper,一个 Looper 对应一个 Message。那么再想个问题,一个 Handler 可以对应多个 Looper 吗? 一个 Looper 可以对应多个 Handler 吗?之所以会提出上面这个问题,主要是因为在看 Looper 的源码时,发现了其中的 ge

2015-11-01 11:08:48 7558

原创 HandlerThread 源码解析

Android 为我们提供好了一个类——HandlerThread,在其内部维护了一个 Looper 对象,通过线程的 start 方法启动后即可创建内部的 Looper 对象,并且此 Looper 对象运行在子线程,我们还可以通过 handlerThread.getLooper() 来取到这个 Looper 对象,免得我们自己创建了。Android 为我们提供好了一个类——HandlerThrea

2015-11-01 11:07:58 932

原创 IntentService 源码解析

Service 运行在主线程,IntentService 运行在子线程并且可以在执行完 onHandleIntent 方法后自动结束,下面通过分析 Android 源码分析下上述的原理。IntentService 代码量不大,下面来看一下主要的变量和几个函数:public abstract class IntentService extends Service { // 保存从 Handle

2015-11-01 11:07:16 1065

原创 Android 群英传读书笔记

偶然在知乎上看到了关于《Android 群英传》的介绍,感觉还不错,尤其是作者前言中写的内容和我简直心照不宣——Android 学习的瓶颈与进阶,读了快半本了,感觉非常不错,不合适初学者,但绝对适合学习到了瓶颈期,想要突破自我的 Android 开发者,比如我。View 通过刷新来重绘视图,系统通过发出 VSYNC 信号来进行重绘,刷新间隔为16ms。当如游戏刷新频繁时,会频繁阻塞主线程,导致画面

2015-11-01 11:05:54 1167

原创 单链表逆置

明天阿里面,并无卵用的假装复习一下数据结构,总结一下单链表的逆置算法,包括 复制逆置 和 就地逆置。复制逆置所谓复制逆置,就是再开一个同样的空间,用于存储新的单链表,空间复杂度为O(n)。具体做法:从原链表顺序取元素,采用头插法插入到新的空链表中,完成逆置。复制逆置没有什么难度,主要考的还是 就地逆置。就地逆置就地逆置要保证时间复杂度为O(n) && 无辅助空间。总的来说:设置一指针p总是指向第一个

2015-11-01 11:05:07 1214

原创 Java 字符集与编码

读《Java 特种兵》总结之前不会的相关知识。Java 中的 char 是 UTF-16 编码,每个字符占两个字节的宽度。例如发送 2 个汉字,用 UTF-8 编码发送后会占用 6 个字节,对方若知道传来的数据是 UTF-8 编码,便知道这 6 个字节代表哪 2 个汉字,就自然能得到正确的 char 字符了。但是如果对方用 GBK 来编码,则可能会认为有 3 个字符,若按照每 2 个字节计算 1 个

2015-11-01 11:04:17 552

原创 Java 基础知识 - 知识导图

Java 基础知识

2015-11-01 11:03:07 952

原创 Android 进阶 - 知识导图

Android 进阶

2015-11-01 11:02:26 988

原创 数据结构 - 知识导图

数据结构

2015-11-01 11:01:45 1154

原创 设计模式 - 知识导图

个人GitHub: http://github.com/icodeu个人网站: http://icodeyou.com个人微信号:qqwanghuan 技术交流

2015-11-01 11:00:56 739

原创 《第一行代码》 - 知识导图

强制自己使用思维导图,收益匪浅。最近复习 Android 相关知识,涉及 Java 基础知识, 《第一行代码》, Android 进阶, 数据结构, 设计模式。《第一行代码》个人GitHub: http://github.com/icodeu个人网站: http://icodeyou.com个人微信号:qqwanghuan 技术交流

2015-11-01 11:00:09 1033 2

原创 Android开发中的大坑

在Android开发的过程中,有哪些坑是值得你放在checklist中警示自己的?1、TextView(往往 TextView 派生子类同样适用)调用 setText 方法设置一个 int 型的数据,千万要将该值转为 String,否则在某些设备中它会默认去查询 R 文件中定义的资源。2、上线之前一定要使用正式签名打包3、在 Activity 中尽可能少的创建 Handler 对象,创建一个主线程

2015-11-01 10:59:08 766

原创 mac抓包工具--Charles

上篇文章介绍了 Mac 中 Debookee 抓局域网数据包的使用方法,主要是基于 ARP 欺骗。这次将要介绍的 Charles 的原理是设置中间代理来完成抓包的工作。Charles 的安装与破解(都是程序员,女人何必为难女人)下载原版 Charles 路径:我的七牛云存储 or 官网,并正常安装(此版本为 3.10.2,目前为官网最新)下载破解 jar 包:我的七牛云存储显示 Charles

2015-11-01 10:58:05 2096

原创 mac工具--通过 arp 欺骗抓取局域网内设备数据包

使用 Debookee 抓取同局域网内设备数据包,太神奇了。因为有个需求,就是想看某手机app内部网络部分是如何实现的,所以要抓取其数据包(主要是 Http 协议部分),Windows 下可以用 Fidder 为手机设置代理实现,Mac 下有一款 Debookee 的软件可以实现同样的功能,但是原理不同 Fidder 设置代理。首先先看截图:这是扫出来的局域网内所有主机情况:将目标主机设置为 tar

2015-11-01 10:56:27 8819

原创 Ubuntu 下安装好 Wireshark 却找不到 Interface 的解决办法

今天在做网络攻防时需要在 Ubuntu 中使用 Wireshark 来抓取观察网络数据包,也就有了这篇文章。注:本篇文章非原创,部分内容参考:http://www.94cat.com/blog/?p=11071.安装 Wireshark Ubuntu 下安装 Wireshark 的话直接从软件中心搜索安装即可2.启动 Wireshark 直接启动 Wireshark 的话会发现

2015-11-01 10:54:26 2400

原创 【视频教程】典型 TCP 攻击实验

记录典型 TCP 攻击实验的原理及操作步骤。在本次实验中,启用了三个虚拟机,处于同一子网中。同时使用了 Wireshark 来进行网络抓包分析,使用 netwox 工具箱来进行攻击实验。1.ARP缓存中毒(ARP cache poisoning)ARP 缓存是 ARP 协议的重要组成部分。ARP 协议运行的目标就是建立 MAC 地址和 IP 地址的映射,然后把这一映射关系保存在 ARP 缓存中,使得

2015-11-01 10:52:42 3997 2

原创 数字签名的编程使用

数字签名算法是公钥基础设施(PKI)以及许多网络安全机制(SSL/TLS、VPN等)的基础,能够验证数据完整性、认证数据来源、并起到抗否认的作用。同时,数字签名算法可以看做是一种带有密钥的消息摘要算法,并且这种密钥包含了公钥和私钥,也就是说,数字签名算法是非对称加密算法和消息摘要算法的结合体

2015-06-03 08:10:49 712

原创 非对称密码的编程使用

非对称密码的编程使用课程地址极客学院 – 非对称密码的编程使用课程背景相比于对称密码算法的的单钥体系,非对称密码算法的双钥体系更为安全,且不再存在密钥管理问题,往往应用在一些安全性要求相当高的领域,比如 B2C、B2B 等电子商务平台。核心内容非对称密码概述DH 算法的编程使用RSA 算法的编程使用课程地址极客学院 – 非对称密码的编程使用

2015-05-21 15:30:47 460

原创 Octopress 搭建静态博客网站

极客学院:在IT领域,很多大牛通过写博客来分享自己的成果,让更多的人能够学习;在面试时,一个有高质量博客的程序员也会更加受到青睐。对于IT人来说,写博客这件事很重要,同时用什么方式来写更能体现一个人的水平。在此,我们弃用传统的 Wordpress,而真正使用程序员的方式来写属于我们自己的博客。

2015-05-13 17:51:36 542 1

原创 Fedora 升级 Kernel 的视频教程

Fedora 升级 Kernel 的视频教程

2015-03-15 21:53:26 1061

原创 Python安装第三方库时提示找不到python安装路径 出错信息为 Python version 2.7 required, which was not found in the registry

今天在使用python第三方库时,出现了问题,安装PIL这个用于图片处理的库的时候提示我 “Python version 2.7 required, which was not found in the registry”,但是我确实把python加入到环境变量PATH当中了,在CMD当中输入python也是可以的,但安装第三方库时就是找不到python路径。查了一下,问题在于,当python的版

2015-02-22 16:07:04 3739

原创 Android 扫描二维码实现网页登录

本套课程讲解了如何用Android 扫描二维码实现网页登录视频地址http://www.jikexueyuan.com/course/420.html

2014-12-24 20:26:46 1191 1

原创 编程实现可靠数据传输原理Go-Back-N

有一个计算机网络的实验,需要模拟GBN的过程,即在本地条件下模拟丢包重传机制。刚看到这个实验时有些不知所措,因为不知道怎样能实现丢包,在本地编程,即使是使用不可靠数据传输UDP的DatagramSocket,由于localhost到localhost走的是回环链路,也就是从客户机的应用层--传输层--网络层 到 服务器的网络层--传输层--应用层,这个肯定无法丢包,也用实验进行验证了(比如连续发送

2014-11-29 16:49:00 12273 3

原创 编程实现路由算法——迪杰斯特拉算法

路由算法有很多,本篇采用迪杰斯特拉最短路径法实现简单的路由算法。可能很多人一看到这个就会想到数据结构了,想到数据结构中必须要建立图的结构就很头疼,今天这种写法可以先不采用数据结构书上的写法,也可以实现相同的功能,毕竟,咱们的重点是要学习使用迪杰斯特拉算法,而不是构建图结构。 首先先来说一下迪杰斯特拉算法,从大概念上来说,该方法属于一种贪心算法,即当加进一个点后,算其相邻所有点的最短路径。详细过程

2014-11-27 16:15:14 9438 4

原创 用java实现AES加解密算法

密码学课上学习了AES算法,balabala原理上有些听不懂,如果是日常应用,可以用java实现好的东西来搬过来用。首先建了一个自己的AES工具类,里面写上了静态的加密和解密函数供之后使用。AES工具类和加解密函数如下:public class MyAESUtils { public static byte[] encrypt(String content, String pa

2014-10-31 21:39:19 2942 1

原创 使用wireshark抓包分析的思考

上一篇文章提到了一个问题,即为什么telnet登陆pop邮箱的时候用的是明文,至今不解,为了打消telnet会帮我进行加密传输的小疑问,所以就使用wireshark来看一下数据包的内容。依旧使用163邮箱作为实验。打开wireshark,让其抓取我本机网卡的数据包,开始抓包后,通过在cmd中 telnet pop.163.com 110 登陆163服务器,在wireshark里设置过滤规则: 

2014-10-25 17:57:22 11921 2

原创 再谈用java实现Smtp发送邮件之Socket编程

前几天利用Socket实现了用java语言搭建web服务器,全程下来应该会对Socket这个东西已经使用的非常熟悉了,虽然抽象,但是使用过一次之后就会感受到它在网络通信上的作用是多么的强大!正好,今天就继续用Socket来练习使用以下Smtp协议发送一封简单的电子邮件。今天的故事呢,是我要约我女神出去吃饭啦啦啦~~~所以,面对Smtp,只许成功,不许失败! 全局假定我的邮箱为cnsmtp01@1

2014-10-20 23:18:16 14886 18

原创 浅谈用java搭建web服务器之Socket编程——更好的理解Apache、Tomcat等软件的工作模式

之前做web应用一直是在本地装个Apache、Tomcat之类的软件,然后把做好的网页文件放在他们的工作目录下(如Apache的htdocs),然后打开浏览器输入127.0.0.1或localhost就可以直接访问了,好神奇,可是为什么,怎么实现的呢,早就知道有Socket(套接字)这个东西,可之前就是没有把这两方面结合起来,今天我们就一起来看一看这究竟是为什么。 有同学说还不懂Socket是什

2014-10-18 21:00:40 7609 6

空空如也

空空如也

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

TA关注的人

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